File evolve_density.hxx#
Defines
-
EVOLVE_DENSITY_H#
-
struct EvolveDensity : public Component#
- #include <evolve_density.hxx>
Evolve species density in time
Mesh inputs
N<name>_src A source of particles, per cubic meter per second. This can be over-ridden by the
sourceoption setting.Public Functions
-
EvolveDensity(std::string name, Options &options, Solver *solver)#
Inputs
<name>
charge Particle charge e.g. hydrogen = 1
AA Atomic mass number e.g. hydrogen = 1
bndry_flux Allow flow through radial boundaries? Default is true.
poloidal_flows Include poloidal ExB flows? Default is true.
density_floor Minimum density floor. Default is 1e-5 normalised units
low_n_diffuse Enhance parallel diffusion at low density? Default false
hyper_z Hyper-diffusion in Z. Default off.
evolve_log Evolve logarithm of density? Default false.
diagnose Output additional diagnostics?
N<name> e.g. “Ne”, “Nd+”
source Source of particles [/m^3/s] NOTE: This overrides mesh input N<name>_src
source_only_in_core Zero the source outside the closed field-line region?
neumann_boundary_average_z Apply Neumann boundaries with Z average?
-
virtual void transform(Options &state) override#
This sets in the state
species
<name>
AA
charge
density
-
virtual void finally(const Options &state) override#
Calculate ddt(N).
Requires state components
species
<name>
density
Optional components
species
<name>
velocity If included, requires sound_speed or temperature
density_source
fields
phi If included, ExB drift is calculated
-
virtual void outputVars(Options &state) override#
Add extra fields for output, or set attributes e.g docstrings.
Private Functions
-
void updateSource(BoutReal time)#
Modifies the
sourcemember variable.
Private Members
-
std::string name#
Short name of species e.g “e”.
-
BoutReal charge#
Species charge e.g. electron = -1.
-
BoutReal AA#
Atomic mass e.g. proton = 1.
-
Field3D N#
Species density (normalised, evolving)
-
bool bndry_flux#
Allow flows through boundaries?
-
bool poloidal_flows#
Include ExB flow in Y direction?
-
bool neumann_boundary_average_z#
Apply neumann boundary with Z average?
-
BoutReal density_floor#
-
bool low_n_diffuse#
Parallel diffusion at low density.
-
bool low_n_diffuse_perp#
Perpendicular diffusion at low density.
-
BoutReal pressure_floor#
When non-zero pressure is needed.
-
bool low_p_diffuse_perp#
Add artificial cross-field diffusion at low pressure?
-
BoutReal hyper_z#
Hyper-diffusion in Z.
-
bool evolve_log#
Evolve logarithm of density?
-
Field3D logN#
Logarithm of density (if evolving)
-
Field3D source#
-
Field3D final_source#
External input source.
-
Field3D Sn#
Total density source.
-
bool source_only_in_core#
Zero source where Y is non-periodic?
-
bool source_time_dependent#
Is the input source time dependent?
-
BoutReal source_normalisation#
Normalisation factor [m^-3/s].
-
BoutReal time_normalisation#
Normalisation factor [s].
-
FieldGeneratorPtr source_prefactor_function#
-
bool diagnose#
Output additional diagnostics?
-
Field3D flow_xlow#
-
Field3D flow_ylow#
Particle flow diagnostics.
-
EvolveDensity(std::string name, Options &options, Solver *solver)#