METHOD
REGIME.h
Go to the documentation of this file.
1 #ifndef REGIME_H
2 #define REGIME_H
3 
4 #include "modelExtension.h"
5 #include "flux.h"
6 
7 // Macros for accessing matricies
8 // dwdsb
9 #define IDWS(ldx, mdx, idx, jdx, kdx) ((ldx)*(3)*(d->Nx)*(d->Ny)*(d->Nz) + (mdx)*(d->Nx)*(d->Ny)*(d->Nz) + (idx)*(d->Ny)*(d->Nz) + (jdx)*(d->Nz) + (kdx))
10 // dfxdw, dfydw, dfzdw
11 #define IDFW(ldx, mdx, idx, jdx, kdx) ((ldx)*(12)*(d->Nx)*(d->Ny)*(d->Nz) + (mdx)*(d->Nx)*(d->Ny)*(d->Nz) + (idx)*(d->Ny)*(d->Nz) + (jdx)*(d->Nz) + (kdx))
12 // Mx, My, and Mz matrix
13 #define IDM(ldx, mdx, idx, jdx, kdx) ((ldx)*(3)*(d->Nx)*(d->Ny)*(d->Nz) + (mdx)*(d->Nx)*(d->Ny)*(d->Nz) + (idx)*(d->Ny)*(d->Nz) + (jdx)*(d->Nz) + (kdx))
14 
15 
17 
81 class REGIME : public ModelExtension
82 {
83  public:
84 
85  double
86  //{
87  *dfxdw, *dfydw, *dfzdw,
88  //}
89  *dwdsb,
90  *E,
91  *q,
92  *K,
93  //{
94  *Mx, *My, *Mz,
95  //}
96  //{
97  *fbx, *fby, *fbz,
98  //}
99  //{
100  *diffuX, *diffuY, *diffuZ,
101  //}
102  *alpha;
103 
105 
106  REGIME();
107 
109  REGIME(Data * data, FluxMethod * fluxMethod);
110 
112  virtual ~REGIME();
113 
115 
126  void sourceExtension(double * cons, double * prims, double * aux, double * source);
127 
129  void set_vars(double * cons, double * prims, double * aux);
130 
131  //{
133  void set_Dx(double * cons, double * prims, double * aux);
134  void set_Dy(double * cons, double * prims, double * aux);
135  void set_Dz(double * cons, double * prims, double * aux);
136  //}
137 
139 
147  void set_K(double * cons, double * prims, double * aux);
148 
149  //{
151  void set_dfxdw(double * cons, double * prims, double * aux);
152  void set_dfydw(double * cons, double * prims, double * aux);
153  void set_dfzdw(double * cons, double * prims, double * aux);
154  //}
155 
157  void set_dwdsb(double * cons, double * prims, double * aux);
158 
159 };
160 
161 #endif
double * dwdsb
Derivative of primitive vector wrt stiff source.
Definition: REGIME.h:87
FluxMethod * fluxMethod
Pointer to the flux method class.
Definition: REGIME.h:104
void set_dwdsb(double *cons, double *prims, double *aux)
Sets the derivative of the primitive vector wrt the stiff source vector.
Data * data
Pointer to Data class containing global simulation data.
REGIME: Resistive extension upgrade for ideal MHD
Definition: REGIME.h:81
double * diffuZ
Diffusion vector.
Definition: REGIME.h:87
void set_dfxdw(double *cons, double *prims, double *aux)
Sets the derivative of the non-stiff flux wrt the primitive vector.
Extension to the base physics model
void set_Dz(double *cons, double *prims, double *aux)
void set_dfzdw(double *cons, double *prims, double *aux)
double * dfzdw
Derivative of flux vector wrt to primitive variables.
Definition: REGIME.h:87
double * fbx
Definition: REGIME.h:87
double * dfydw
Definition: REGIME.h:87
double * dfxdw
Definition: REGIME.h:87
void set_Dy(double *cons, double *prims, double *aux)
double * alpha
Prefactor for dwdsb.
Definition: REGIME.h:87
void set_Dx(double *cons, double *prims, double *aux)
Set the diffusion vector. Method assumes K and dwdsb are set.
void set_K(double *cons, double *prims, double *aux)
Determines the RHS bracket of the diffusion terms.
double * fby
Definition: REGIME.h:87
double * diffuX
Definition: REGIME.h:87
void sourceExtension(double *cons, double *prims, double *aux, double *source)
Main user function for the modified source.
double * Mx
Definition: REGIME.h:87
void set_dfydw(double *cons, double *prims, double *aux)
double * diffuY
Definition: REGIME.h:87
Abstract base class for flux reconstruction methods
Definition: flux.h:17
double * E
Electric field vector.
Definition: REGIME.h:87
double * My
Definition: REGIME.h:87
virtual ~REGIME()
Destructor.
double * K
partial_a fbar^a
Definition: REGIME.h:87
Data object
Definition: simData.h:49
double * q
Charge density.
Definition: REGIME.h:87
void set_vars(double *cons, double *prims, double *aux)
Sets up variables including the electric field and charge density.
double * Mz
Directional matrices multiplying K. Dot prod(partial_w f^a, partial_sbar w)
Definition: REGIME.h:87
double * fbz
Stiff flux vector.
Definition: REGIME.h:87