File relax_potential.hxx#
Defines
-
RELAX_POTENTIAL_H#
-
struct RelaxPotential : public Component#
- #include <relax_potential.hxx>
Evolve vorticity and potential in time.
Uses a relaxation method for the potential, which is valid for steady state, but not for timescales shorter than the relaxation timescale.
Public Functions
-
RelaxPotential(std::string name, Options &options, Solver *solver)#
Options
<name>
diamagnetic
diamagnetic_polarisation
average_atomic_mass
bndry_flux
poloidal_flows
split_n0
laplacian Options for the Laplacian phi solver
-
virtual void transform(Options &state) override#
Optional inputs
species
pressure and charge => Calculates diamagnetic terms [if diamagnetic=true]
pressure, charge and mass => Calculates polarisation current terms [if diamagnetic_polarisation=true]
Sets in the state
species
[if has pressure and charge]
energy_source
fields
vorticity
phi Electrostatic potential
DivJdia Divergence of diamagnetic current [if diamagnetic=true]
Note: Diamagnetic current calculated here, but could be moved to a component with the diamagnetic drift advection terms
-
virtual void finally(const Options &state) override#
Optional inputs
fields
DivJextra Divergence of current, including parallel current Not including diamagnetic or polarisation currents
-
virtual void outputVars(Options &state) override#
Add extra fields for output, or set attributes e.g docstrings.
Private Members
-
Field3D Vort#
-
Field3D phi1#
-
Field3D phi#
-
bool exb_advection#
-
bool diamagnetic#
-
bool diamagnetic_polarisation#
-
bool boussinesq#
Use the Boussinesq approximation?
-
BoutReal average_atomic_mass#
-
bool poloidal_flows#
Include poloidal ExB flow?
-
bool bndry_flux#
Allow flows through radial boundaries?
-
bool sheath_boundary#
Set outer boundary to j=0?
-
Field2D Bsq#
SQ(coord->Bxy)
-
Vector2D Curlb_B#
Curvature vector Curl(b/B)
-
BoutReal lambda_1#
-
BoutReal lambda_2#
Relaxation parameters.
-
RelaxPotential(std::string name, Options &options, Solver *solver)#