File evolve_pressure.hxx#

Defines

EVOLVE_PRESSURE_H#
struct EvolvePressure : public Component#
#include <evolve_pressure.hxx>

Evolves species pressure in time

Mesh inputs

P<name>_src A source of pressure, in Pascals per second This can be over-ridden by the source option setting.

Public Functions

EvolvePressure(std::string name, Options &options, Solver *solver)#

Inputs

  • <name>

    • bndry_flux Allow flows through radial boundaries? Default is true

    • density_floor Minimum density floor. Default 1e-5 normalised units.

    • diagnose Output additional diagnostic fields?

    • evolve_log Evolve logarithm of pressure? Default is false

    • hyper_z Hyper-diffusion in Z

    • kappa_coefficient Heat conduction constant. Default is 3.16 for electrons, 3.9 otherwise

    • kappa_limit_alpha Flux limiter, off by default.

    • poloidal_flows Include poloidal ExB flows? Default is true

    • precon Enable preconditioner? Note: solver may not use it even if enabled.

    • p_div_v Use p * Div(v) form? Default is v * Grad(p) form

    • thermal_conduction Include parallel heat conduction? Default is true

  • P<name> e.g. “Pe”, “Pd+”

    • source Source of pressure [Pa / s]. NOTE: This overrides mesh input P<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#

Inputs

  • species

    • <name>

      • density

Sets

  • species

    • <name>

      • pressure

      • temperature Requires density

virtual void finally(const Options &state) override#

Optional inputs

  • species

    • <name>

      • velocity. Must have sound_speed or temperature

      • energy_source

      • collision_rate (needed if thermal_conduction on)

  • fields

    • phi Electrostatic potential -> ExB drift

virtual void outputVars(Options &state) override#

Add extra fields for output, or set attributes e.g docstrings.

virtual void precon(const Options &state, BoutReal gamma) override#

Preconditioner

Private Members

std::string name#

Short name of the species e.g. h+.

Field3D P#

Pressure (normalised)

Field3D T#
Field3D N#

Temperature, density.

bool bndry_flux#
bool neumann_boundary_average_z#

Apply neumann boundary with Z average?

bool poloidal_flows#
bool thermal_conduction#

Include thermal conduction?

std::vector<std::string> collision_names#

Collisions used for collisionality.

std::string conduction_collisions_mode#

Collision selection, either multispecies or braginskii.

Field3D nu#

Collision frequency for conduction.

BoutReal kappa_coefficient#

Leading numerical coefficient in parallel heat flux calculation.

BoutReal kappa_limit_alpha#

Flux limit if >0.

bool p_div_v#

Use p*Div(v) form? False -> v * Grad(p)

bool evolve_log#

Evolve logarithm of P?

Field3D logP#

Natural logarithm of P.

BoutReal density_floor#

Minimum density for calculating T.

bool low_n_diffuse_perp#

Cross-field diffusion at low density?

BoutReal temperature_floor#

Low temperature scale for low_T_diffuse_perp.

bool low_T_diffuse_perp#

Add cross-field diffusion at low temperature?

BoutReal pressure_floor#

When non-zero pressure is needed.

bool low_p_diffuse_perp#

Add artificial cross-field diffusion at low electron pressure?

bool damp_p_nt#

Damp P - N*T. Active when P < 0 or N < density_floor.

Field3D kappa_par#

Parallel heat conduction coefficient.

Field3D conduction_div#

Divergence of heat conduction flux.

Field3D source#
Field3D final_source#

External pressure source.

Field3D Sp#

Total pressure source.

FieldGeneratorPtr source_prefactor_function#
BoutReal hyper_z#

Hyper-diffusion.

BoutReal hyper_z_T#

4th-order dissipation in T

bool diagnose#

Output additional diagnostics?

bool enable_precon#

Enable preconditioner?

BoutReal source_normalisation#

Normalisation factor [Pa/s].

BoutReal time_normalisation#

Normalisation factor [s].

bool source_time_dependent#

Is the input source time dependent?

Field3D flow_xlow#
Field3D flow_ylow#

Energy flow diagnostics.

Field3D flow_ylow_conduction#

Conduction energy flow diagnostics.

Field3D flow_ylow_advection#

Advection energy flow diagnostics.

Field3D flow_ylow_viscous_heating#

Flow of kinetic energy due to numerical viscosity.

bool numerical_viscous_heating#

Include heating due to numerical viscosity?

bool fix_momentum_boundary_flux#

Fix momentum flux to boundary condition?

Field3D Sp_nvh#

Pressure source due to artificial viscosity.

Field3D E_PdivV#
Field3D E_VgradP#

Diagnostic energy source terms for p*Div(V) and V*Grad(P)