METHOD
srmhd.h
Go to the documentation of this file.
1 #ifndef SRMHD_H
2 #define SRMHD_H
3 
4 #include "model.h"
5 
6 
7 /*
8 This is the human readable description of this models variables.
9 
10  SRMHD has nine conserved variables:
11  D, Sx, Sy, Sz, tau, Bx, By, Bz, phi
12  Eight primitive variables:
13  rho, vx, vy, vz, p, Bx, By, Bz
14  Thirteen auxiliary variables:
15  h, W, e, c, b0, bx, by, bz, bsq, vsq, BS, Bsq, Ssq
16 */
17 
18 
19 
21 
93 class SRMHD : public Model
94 {
95 
96  public:
97 
99 
100  double * solution;
101 
102 
103  SRMHD();
104 
106 
112  SRMHD(Data * data);
113 
114  virtual ~SRMHD();
115 
116 
118 
136  void sourceTermSingleCell(double *cons, double *prims, double *aux, double *source, int i=-1, int j=-1, int k=-1);
137 
139 
150  void sourceTerm(double *cons, double *prims, double *aux, double *source);
151 
153 
169  void getPrimitiveVarsSingleCell(double *cons, double *prims, double *aux, int i=-1, int j=-1, int k=-1);
170 
172 
187  void getPrimitiveVars(double *cons, double *prims, double *aux);
188 
190 
201  void primsToAll(double *cons, double *prims, double *aux);
202 
204 
222  void fluxVector(double *cons, double *prims, double *aux, double *f, const int dir);
223 
225 
230  void finalise(double *cons, double *prims, double *aux) { };
231 
232 };
233 
234 
235 
237 
254 int residual(void *p, int n, const double *x, double *fvec, int iflag);
255 
256 
257 
259 
269 typedef struct
270 {
271  double
272  D,
273  g,
274  Bsq,
275  Ssq,
276  BS,
277  tau;
278  int i;
279 } Args;
280 
281 
283 
292 typedef struct
293 {
294  // Store coordinates of the failed cell
295  int
297  x, y, z;
298 
299 } Failed;
300 
301 #endif
void getPrimitiveVars(double *cons, double *prims, double *aux)
Spectral decomposition.
Special Relativistic MagnetHydroDynamics
Definition: srmhd.h:93
void getPrimitiveVarsSingleCell(double *cons, double *prims, double *aux, int i=-1, int j=-1, int k=-1)
Single cell cons2prims conversion.
Stores data of the failed cons2prims rootfinder
Definition: srmhd.h:292
int i
Definition: srmhd.h:278
Additional arguments for the SRMHD residual function
Definition: srmhd.h:269
int z
Cell number of failed C2P conversion.
Definition: srmhd.h:297
int residual(void *p, int n, const double *x, double *fvec, int iflag)
Residual function for spectral analysis
void sourceTermSingleCell(double *cons, double *prims, double *aux, double *source, int i=-1, int j=-1, int k=-1)
Single cell source term contribution.
void finalise(double *cons, double *prims, double *aux)
Finalise the simulation variables.
Definition: srmhd.h:230
SRMHD()
Default constructor.
Physics model that we want to use
Definition: model.h:15
void fluxVector(double *cons, double *prims, double *aux, double *f, const int dir)
Flux vector.
int smartGuesses
Number of smart guess required.
Definition: srmhd.h:98
Data * data
Pointer to Data class containing global simulation data.
Definition: model.h:19
virtual ~SRMHD()
Destructor.
void sourceTerm(double *cons, double *prims, double *aux, double *source)
Source term contribution.
double * solution
Pointer to array to hold solution of C2P for every cell. Size is 2*Nx*Ny*Nz.
Definition: srmhd.h:100
Data object
Definition: simData.h:49
double tau
Kinetic energy for a single cell.
Definition: srmhd.h:272
void primsToAll(double *cons, double *prims, double *aux)
Primitive-to-all transformation.