GLM module implementation. More...
#include "pluto.h"
Functions | |
void | GLM_Solve (const State_1D *state, double **VL, double **VR, int beg, int end, Grid *grid) |
void | GLM_Source (const Data_Arr Q, double dt, Grid *grid) |
void | EGLM_Source (const State_1D *state, double dt, int beg, int end, Grid *grid) |
void | GLM_Init (const Data *d, const Time_Step *Dts, Grid *grid) |
Variables | |
double | glm_ch = -1.0 |
Contains functions for the GLM module.
Add source terms to the right hand side of the conservative equations, momentum and energy equations only. This yields the extended GLM (EGLM) given by Eq. (24a)–(24c) in
"Hyperbolic Divergence cleaning for the MHD Equations" Dedner et al. (2002), JcP, 175, 645
Initialize the maximum propagation speed glm_ch.
void GLM_Solve | ( | const State_1D * | state, |
double ** | VL, | ||
double ** | VR, | ||
int | beg, | ||
int | end, | ||
Grid * | grid | ||
) |
Solve the 2x2 linear hyperbolic GLM-MHD system given by the divergence cleaning approach. Build new states VL and VR for Riemann problem. We use Eq. (42) of
Dedner et al. "Hyperbolic Divergence Cleaning for the MHD equations", JCP 175, 645 (2002)
[in,out] | state | pointer to a State_1D structure |
[out] | VL | left-interface state to be passed to the Riemann solver |
[out] | VR | right-interface state to be passed to the Riemann solver |
[in] | beg | starting index of computation |
[in] | end | final index of computation |
[in] | grid | pointer to array of Grid structures |
The purpose of this function is two-fold:
The following MAPLE script has been used
void GLM_Source | ( | const Data_Arr | Q, |
double | dt, | ||
Grid * | grid | ||
) |
Include the parabolic source term of the Lagrangian multiplier equation in a split fashion for the mixed GLM formulation. Ref. Mignone & Tzeferacos, JCP (2010) 229, 2117, Equation (27).
double glm_ch = -1.0 |
The propagation speed of divergence error.