14#ifndef _SPLITMONOPOLE_H_
15#define _SPLITMONOPOLE_H_
18#include "../IO/ParmParser.H"
77 gd.
B =
B0 / (rfac * rfac) * rhat;
78 if (x[2] < 0) gd.
B = -gd.
B;
117 if (x[2] < 0) tnb.
eT = -tnb.
eT;
118 if (tnb.
eT[0] == 0 && tnb.
eT[1] == 0) {
Interface used to describe background gas.
Class to parse the criptic input deck.
Definition ParmParser.H:37
void get(const std::string &name, int &val) const
Return an integer-valued keyword.
Definition ParmParser.cpp:129
bool query(const std::string &name, T &val) const
Return a keyword, or return false if not available.
Definition ParmParser.cpp:299
Real mag() const
Computes the magnitude of the vector.
Definition Vec3.H:470
auto cross(const Vec3< U > &a) const -> Vec3< decltype(this->v[0]+a[0])>
Returns the cross product of this vector with another vector.
Definition Vec3.H:585
Vec3< Real > unit() const
Returns a unit vector parallel to the vector.
Definition Vec3.H:478
Trivial class to hold gas data.
Definition GasData.H:29
Real den
Definition GasData.H:36
void setAtomicComposition()
Set reasonable abundances for atomic ISM.
Definition GasData.H:175
RealVec v
Definition GasData.H:38
RealTensor2 vGrad
Definition GasData.H:44
Real dx
Definition GasData.H:33
RealVec B
Definition GasData.H:39
RealVec denGrad
Definition GasData.H:42
RealVec ionDenGrad
Definition GasData.H:43
Real ionDen
Definition GasData.H:37
RealTensor2 BGrad
Definition GasData.H:45
Interface class to describe background gas.
Definition Gas.H:44
A class to describe a gas with a split monopole field.
Definition SplitMonopole.H:33
Real chi
Definition SplitMonopole.H:133
virtual void frame(const RealVec &x, const Real t, RealVec &v, TNBBasis &tnb) const
Compute the comoving TNB frame for the gas.
Definition SplitMonopole.H:111
virtual ~SplitMonopole()
Virtual destructor – does nothing.
Definition SplitMonopole.H:57
Real B0
Definition SplitMonopole.H:134
virtual GasData gasData(const RealVec &x, const Real t) const
Return background gas state.
Definition SplitMonopole.H:65
SplitMonopole(const ParmParser &pp)
Construct a split monopole gas from the input deck.
Definition SplitMonopole.H:41
Real r0
Definition SplitMonopole.H:129
Real rho0
Definition SplitMonopole.H:131
Real rFlat
Definition SplitMonopole.H:130
Real krho
Definition SplitMonopole.H:132
The primary namespace for criptic objects.
Definition AdvancePacket.H:25
static const RealVec yHat(0, 1, 0)
static const criptic::RealTensor2 identityTensor(1, 0, 0, 0, 1, 0, 0, 0, 1)
static const RealVec xHat(1, 0, 0)
criptic::RealTensor2 outer(const criptic::RealVec &v1, const criptic::RealVec &v2)
Compute the outer product of two RealVec objects.
Definition RealTensor2.H:887
double Real
Definition Types.H:38
static const criptic::RealTensor2 zeroTensor(0, 0, 0, 0, 0, 0, 0, 0, 0)
static const RealVec zeroVec(0, 0, 0)
Structure to hold TNB basis data.
Definition RealTensor2.H:898
RealVec eB
Definition RealTensor2.H:901
RealVec eN
Definition RealTensor2.H:900
RealVec eT
Definition RealTensor2.H:899