Class used to implement "vacuum radiation", i.e., radiation that is large where density is less than user-specified vacuum density de/dt = - C f_vacrad where f_vacrad = 0.5 * (1 - cos((T - T0) / (T1 - T0))) : T0 > T > T1 f_vacrad = 1 : T >= T1 f_vacrad = 0 : T <= T0.
More...
Class used to implement "vacuum radiation", i.e., radiation that is large where density is less than user-specified vacuum density de/dt = - C f_vacrad where f_vacrad = 0.5 * (1 - cos((T - T0) / (T1 - T0))) : T0 > T > T1 f_vacrad = 1 : T >= T1 f_vacrad = 0 : T <= T0.
Here, T0 and T1 are user-specified temperature values, and the cos function provides a smooth transition of f_vacrad from 0 to 1.
The value of f_vacrad above is applied in regions with n < n_vac. The value is modified in a transition region between n_vac and n_vac * 2, by linearly ramping (in density space) from f_vacrad to 0 between n_vac and n_vac * 2. This ramp is intended to provide a gradual variation in physical space from a location with full vacuum radiation to a location with zero vacuum radiation, providing better numerical properties than a sudden transition in vacuum radiation.
The intent is that the plasma temperature can be kept below T1. However, if the value of the user-specified constant "C" is too small, the temperature may climb above T1.
|
| VacuumRadiation () |
|
| ~VacuumRadiation () override |
|
void | setup (const WxCryptSet &wxc) override |
|
const std::vector< int > & | getInputVariableIndexes (int flag) const override |
|
const std::vector< int > & | getOutputVariableIndexes (int flag) const override |
|
real | source (const real *q, const real *aux, const elementGeometry_t *pEG, real *source) const override |
|
| WmApplication () |
|
virtual | ~WmApplication ()=default |
|
virtual void | setup (const WxCryptSet &wxc) |
|
virtual const std::vector< int > & | getAuxiliaryVariableIndexes (int flag=WMAPPLICATIONFLAG_NONE) const |
|
virtual const std::vector< int > & | getCrossVariableIndexes (int flag=WMAPPLICATIONFLAG_NONE) const |
|
const std::vector< std::string > & | getBoundaryNames () const |
|
bool | isOnBoundary (const std::string &boundaryName) const |
|
bool | has (int flag) const |
|
virtual real | numerical_flux (const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const |
|
virtual real | internal_flux (const real *q, const real *aux, const solverVariables_t *pSV, std::vector< std::vector< real > > &internalFlux) const |
|
virtual real | source (const real *q, const real *aux, const elementGeometry_t *pEG, real *source) const |
|
virtual void | bc_q (const real *q_in, const real *aux_in, const real *aux_out, const solverVariables_t *pFV, real *q_out) const |
| Boundary Condition Application which sets the boundary condition on ghost nodes.
|
|
virtual real | bcNumericalFlux (const real *q_l, const real *q_r, const real *aux_l, const real *aux_r, const solverVariables_t *pFV, real *numericalFlux) const |
|
virtual void | conserved_to_primitive (const real *q, const real *aux, real *w) const |
|
virtual void | primitive_to_conserved (const real *w, const real *aux, real *q) const |
|
virtual void | evaluate_function (const real *q, const real *aux, const solverVariables_t *pSV, real *result) const |
|
virtual void | bc_q_kinetic (const real *q_in, const real *aux_in, const solverVariables_t *pFV, real *q_out) const |
|
std::shared_ptr< std::string > | app_name () |
|
virtual const std::vector< int > & | getInputVariableIndexes (int flag=0) const |
|
virtual const std::vector< int > & | getOutputVariableIndexes (int flag=0) const |
|