|
XGC1
|
#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.