XGCa
|
#include <solvers.hpp>
Public Member Functions | |
Solvers () | |
Solvers (NLReader::NamelistReader &nlr, const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, ElectricField< DeviceType > &electric_field, Plasma &plasma) | |
void | update (const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, Plasma &plasma) |
View< double *, CLayout, DeviceType > | get_initial_guess_axisym (const Simulation< DeviceType > &sml, const Grid< DeviceType > &grid, const View< double *, CLayout, DeviceType > &cden00_1d) const |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
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 |
Public Attributes | |
Solver | axisym_poisson |
Solver | turb_poisson |
Solver | ampere |
Solver | ampere_cv |
Private Member Functions | |
void | init_solvers (const Simulation< DeviceType > &sml, const MagneticField< DeviceType > &magnetic_field, const Grid< DeviceType > &grid, Plasma &plasma) |
Private Attributes | |
bool | initialized |
bool | poisson_0m_full_geo |
bool | helmholtz_spectral |
Whether to solve Helmholtz-type equations with toroidally spectral solver. More... | |
bool | use_pade |
Use Pade approximation for short wavelengths. More... | |
Simple00Solver | simple00 |
BiasPotential | bias_potential |
|
inline |
Solvers::Solvers | ( | NLReader::NamelistReader & | nlr, |
const Simulation< DeviceType > & | sml, | ||
const MagneticField< DeviceType > & | magnetic_field, | ||
const Grid< DeviceType > & | grid, | ||
ElectricField< DeviceType > & | electric_field, | ||
Plasma & | plasma | ||
) |
void Solvers::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 |
View< double *, CLayout, DeviceType > Solvers::get_initial_guess_axisym | ( | const Simulation< DeviceType > & | sml, |
const Grid< DeviceType > & | grid, | ||
const View< double *, CLayout, DeviceType > & | cden00_1d | ||
) | const |
|
private |
void Solvers::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 |
void Solvers::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 |
void Solvers::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 |
void Solvers::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 |
View< double *, CLayout, HostType > Solvers::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 |
void Solvers::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 |
void Solvers::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 |
void Solvers::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 |
void Solvers::update | ( | const Simulation< DeviceType > & | sml, |
const MagneticField< DeviceType > & | magnetic_field, | ||
const Grid< DeviceType > & | grid, | ||
Plasma & | plasma | ||
) |
Solver Solvers::ampere |
Solver Solvers::ampere_cv |
Solver Solvers::axisym_poisson |
|
private |
|
private |
Whether to solve Helmholtz-type equations with toroidally spectral solver.
|
private |
|
private |
|
private |
Solver Solvers::turb_poisson |
|
private |
Use Pade approximation for short wavelengths.