|
METHOD
|
#include <hybrid.h>


Public Member Functions | |
| Hybrid () | |
| Hybrid (Data *data, double sigmaCrossOver=150, double sigmaSpan=50, bool useREGIME=true) | |
| virtual | ~Hybrid () |
| void | setupREGIME (FluxMethod *fluxMethod) |
| void | sourceTermSingleCell (double *cons, double *prims, double *aux, double *source, int i=-1, int j=-1, int k=-1) |
| void | sourceTerm (double *cons, double *prims, double *aux, double *source) |
| void | getPrimitiveVarsSingleCell (double *cons, double *prims, double *aux, int i=-1, int j=-1, int k=-1) |
| void | getPrimitiveVars (double *cons, double *prims, double *aux) |
| void | primsToAll (double *cons, double *prims, double *aux) |
| void | fluxVector (double *cons, double *prims, double *aux, double *f, const int dir) |
| void | finalise (double *cons, double *prims, double *aux) |
Public Member Functions inherited from Model | |
| Model () | |
| Model (Data *data) | |
| virtual | ~Model () |
Public Attributes | |
| double * | icons |
| double * | iprims |
| double * | iaux |
| double * | sicons |
| double * | siprims |
| double * | siaux |
| double * | iflux |
| double * | rflux |
| double * | isource |
| double * | rsource |
| double * | regimeSource |
| double | sigmaCrossOver |
| double | sigmaSpan |
| bool | useREGIME |
| SRRMHD * | resistiveModel |
| SRMHD * | idealModel |
| REGIME * | subgridModel = NULL |
| int * | mask |
Public Attributes inherited from Model | |
| Data * | data |
| int | Ncons |
| int | Nprims |
| int | Naux |
Private Member Functions | |
| double | idealWeight (double *cons, double *prims, double *aux) |
| double | idealWeightID (double *cons, double *prims, double *aux, int i, int j, int k) |
| bool | useResistive (double *cons, double *prims, double *aux) |
| void | setIdealCPAs (double *cons, double *prims, double *aux) |
| void | setIdealCPAsAll (double *cons, double *prims, double *aux) |
| void | setMasks (double *cons, double *prims, double *aux) |
Hybrid model
| Hybrid::Hybrid | ( | ) |
Default constructor.
| Hybrid::Hybrid | ( | Data * | data, |
| double | sigmaCrossOver = 150, |
||
| double | sigmaSpan = 50, |
||
| bool | useREGIME = true |
||
| ) |
Parameterized constructor.
|
virtual |
Destructor.
|
virtual |
Finalise the simulation variables.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\) |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\) |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\) |
Reimplemented from Model.
|
virtual |
Flux vector.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\) |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\) |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\) |
| [in,out] | f | pointer to flux vector work array. Size is \(N_{cons}*N_x*N_y*N_z\) |
| dir | direction in which to generate flux vector. \((x, y, z) = (0, 1, 2)\) |
Implements Model.
|
virtual |
Conservative to primitive transformation for all cells.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\) |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\) |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\) |
Implements Model.
|
virtual |
Single cell conservative to primitive transformation.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}\) |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}\) |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}\) |
| i | int cell number in x-direction (optional) | |
| j | int cell number in y-direction (optional) | |
| k | int cell number in z-direction (optional) |
Implements Model.
|
private |
Penalty function: ideal contribution.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}\). |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}\). |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}\). |
|
private |
Penalty function: ideal contribution.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\). |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\). |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\). |
| i | int x-coordinate of cell to get weighting for. | |
| j | int y-coordinate of cell to get weighting for. | |
| k | int z-coordinate of cell to get weighting for. |
|
virtual |
Primitive-to-all transformation.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\) |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\) |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\) |
Implements Model.
|
private |
Set ideal cons, prims and aux vectors for a single cell.
| [in] | cons | pointer to resistive conserved vector. Size is \(N_{cons}\). |
| [in] | prims | pointer to resistive primitive vector. Size is \(N_{prims}\). |
| [in] | aux | pointer to resistive auxiliary vector. Size is \(N_{aux}\). |
| [out] | sicons | pointer to ideal conserved vector. Size is \(N_{cons}\). |
| [out] | siprims | pointer to ideal primitive vector. Size is \(N_{prims}\). |
| [out] | siaux | pointer to ideal auxiliary vector. Size is \(N_{aux}\). |
|
private |
Set ideal cons, prims and aux vectors for all cells.
| [in] | cons | pointer to resistive conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\). |
| [in] | prims | pointer to resistive primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\). |
| [in] | aux | pointer to resistive auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\). |
| [out] | icons | pointer to ideal conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\). |
| [out] | iprims | pointer to ideal primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\). |
| [out] | iaux | pointer to ideal auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\). |
|
private |
Set the REGIME source mask.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\). |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\). |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\). |
| [out] | mask | pointer to mask array. |
| void Hybrid::setupREGIME | ( | FluxMethod * | fluxMethod | ) |
Setup the REGIME model.
| [in] | fluxMethod | pointer to simulations FluxMethod |
|
virtual |
Source term contribution.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\) |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\) |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\) |
| [in,out] | source | pointer to source vector. Size is \(N_{cons}*N_x*N_y*N_z\) |
Implements Model.
|
virtual |
Single cell source term contribution.
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}\) |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}\) |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}\) |
| [in,out] | source | pointer to source vector. Size is \(N_{cons}\) |
| i | int cell number in x-direction (optional) | |
| j | int cell number in y-direction (optional) | |
| k | int cell number in z-direction (optional) |
Implements Model.
|
private |
Use resistive C2P?
| [in] | cons | pointer to conserved vector. Size is \(N_{cons}*N_x*N_y*N_z\). |
| [in] | prims | pointer to primitive vector. Size is \(N_{prims}*N_x*N_y*N_z\). |
| [in] | aux | pointer to auxiliary vector. Size is \(N_{aux}*N_x*N_y*N_z\). |