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
source
option 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
source
member 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)