59 void solve_poisson_turb(
const Simulation<DeviceType>& sml,
const MagneticField<DeviceType>&
magnetic_field,
const Grid<DeviceType>& grid,
const DomainDecomposition<DeviceType>& pol_decomp,
Smoothing& smoothing,
Plasma&
plasma,
const Charges& charges,
int ipc,
SolverSetting solver_setting,
const ElectricField<DeviceType>& electric_field,
const PerturbedBField<DeviceType>& perturbed_B_field)
const;
65 void solve_ampere(
const Simulation<DeviceType>& sml,
const MagneticField<DeviceType>&
magnetic_field,
const Grid<DeviceType>& grid,
const DomainDecomposition<DeviceType>& pol_decomp,
Plasma&
plasma,
const Charges& charges,
Smoothing& smoothing,
int ipc,
bool is_cv_solve,
ElectricField<DeviceType> &electric_field,
const PerturbedBField<DeviceType>& perturbed_B_field)
const;
67 void solve(
const Grid<DeviceType>& grid,
const DomainDecomposition<DeviceType>& pol_decomp,
const MagneticField<DeviceType>&
magnetic_field,
Smoothing& smoothing,
const View<double*,CLayout,HostType>& rhs,
const View<double*,CLayout,HostType>& rhs2,
const View<double*,CLayout,HostType>& dpot_double,
bool is_cv_solve)
const;
Definition: bias_potential.hpp:7
Definition: magnetic_field.hpp:12
Definition: NamelistReader.hpp:199
Definition: perturbed_B_field.hpp:12
Definition: plasma.hpp:13
Definition: simple00_solver.hpp:7
Definition: solvers.hpp:15
bool heuristic_priv_pot
Definition: solvers.hpp:20
std::unique_ptr< Solver > ampere
Definition: solvers.hpp:40
void solve_for_fields(int ipc, Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, Charges &charges, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, Smoothing &smoothing, const PerturbedBField< DeviceType > &perturbed_B_field) const
Definition: solve_algorithm.cpp:170
std::unique_ptr< Solver > turb_poisson
Definition: solvers.hpp:39
std::unique_ptr< Solver > axisym_poisson
Definition: solvers.hpp:38
Solvers()
Definition: solvers.hpp:43
bool poisson_0m_full_geo
Definition: solvers.hpp:22
void solve_algorithm(int ipc, Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, Charges &charges, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, Smoothing &smoothing, const PerturbedBField< DeviceType > &perturbed_B_field) const
Definition: solve_algorithm.cpp:105
Simple00Solver simple00
Definition: solvers.hpp:28
void solve_poisson_turb(const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, Smoothing &smoothing, Plasma &plasma, const Charges &charges, int ipc, SolverSetting solver_setting, const ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field) const
Definition: solve_poisson_turb.cpp:255
void solve_ampere(const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, Plasma &plasma, const Charges &charges, Smoothing &smoothing, int ipc, bool is_cv_solve, ElectricField< DeviceType > &electric_field, const PerturbedBField< DeviceType > &perturbed_B_field) const
Definition: solve_ampere.cpp:206
void init_solvers(const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, Plasma &plasma)
Definition: solvers.cpp:9
BiasPotential bias_potential
Definition: solvers.hpp:31
void control_variate(int ipc, Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const MagneticField< DeviceType > &magnetic_field, ElectricField< DeviceType > &electric_field, Charges &charges, Plasma &plasma, const VelocityGrid &vgrid, const DomainDecomposition< DeviceType > &pol_decomp, Smoothing &smoothing, const PerturbedBField< DeviceType > &perturbed_B_field) const
Definition: solve_algorithm.cpp:73
View< double *, CLayout, DeviceType > get_initial_guess_axisym(const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const View< double *, CLayout, DeviceType > &cden00_1d) const
Definition: solve_poisson_axisym.cpp:46
bool use_pade
Use Pade approximation for short wavelengths.
Definition: solvers.hpp:25
void solve_poisson_axisym(const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, Smoothing &smoothing, Plasma &plasma, const Charges &charges, SolverSetting solver_setting, ElectricField< DeviceType > &electric_field) const
Definition: solve_poisson_axisym.cpp:440
std::unique_ptr< Solver > ampere_cv
Definition: solvers.hpp:41
bool poisson_use_bc
(XGCa only) False: 00-bc is phi=0 everywhere; true: 00-boundary
Definition: solvers.hpp:23
void update(const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, Plasma &plasma)
Definition: solvers.cpp:57
bool helmholtz_spectral
Whether to solve Helmholtz-type equations with toroidally spectral solver.
Definition: solvers.hpp:24
bool poisson_adia_wall
EXPERIMENTAL! DON'T USE UNLESS ADVISED BY AN EXPERT.
Definition: solvers.hpp:16
void solve(const Grid< DeviceType > &grid, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, Smoothing &smoothing, const View< double *, CLayout, HostType > &rhs, const View< double *, CLayout, HostType > &dpot_double) const
Definition: solve.cpp:13
View< double *, CLayout, HostType > solve_for_E(const Simulation< DeviceType > &sml, const DomainDecomposition< DeviceType > &pol_decomp, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, Plasma &plasma, Smoothing &smoothing, const Charges &charges, SolverSetting solver_setting) const
Definition: solve_poisson_axisym.cpp:287
Definition: magnetic_field.F90:1
subroutine plasma(grid, itr, p, dene_out, deni_out, Te_out, Ti_out, Vparai_out, ignore_vacuum)
Calculate the plasma density, temperature, and parallel velocity for a point in triangle itr using pl...
Definition: neutral_totalf.F90:1541
SolverSetting
Definition: solver_settings.hpp:4
Definition: charge.hpp:66
Definition: electric_field.hpp:76
Definition: smoothing.hpp:10
Definition: velocity_grid.hpp:8