|
criptic v1
Cosmic Ray Interstellar Propagation Tool using Itô Calculus
|
A simple powerlaw CR propagation model. More...
#include <PropPowerlaw.H>
Public Member Functions | |
| PropPowerlaw (const ParmParser &pp) | |
| Constructor: reads the parameters from the input deck. | |
| virtual | ~PropPowerlaw () |
| Empty virtual destructor. | |
| virtual FieldQtyNeedType | fieldQtyNeed () const |
| What field quantities need to be computed? | |
| virtual PropagationData | operator() (const RealVec &x, const Real t, const gas::GasData &gd, const CRPacket &packet, const FieldQty &qty, const FieldQtyGrad &qtyGrad) const |
| Return the propagation data. | |
Public Member Functions inherited from criptic::propagation::Propagation | |
| Propagation (const ParmParser &pp) | |
| Constructor. | |
| virtual | ~Propagation () |
| Empty virtual destructor. | |
| void | applyLimits (const gas::GasData &gd, const CRPacket &packet, PropagationData &pd) const |
| Apply the Bohm limit and manually-set limits. | |
Private Attributes | |
| Real | kPar0 |
| Real | kParIdx |
| Real | kPerp0 |
| Real | kPerpIdx |
| Real | kPP0 |
| Real | kPPIdx |
| Real | vStr0 |
| Real | vStrIdx |
| bool | varStreamDir |
| bool | vAStream |
A simple powerlaw CR propagation model.
This class defines a propagation model in which the parallel diffusion coefficient, perpendicular diffusion coefficient, momentum diffusion coefficient, and streaming velocity (expressed relative to the ion Alfven speed) are all powerlaw functions of the CR kinetic energy, of the form kPar = kPar0 * (p/m_p*c)^kParIdx, and similarly for the other quantities. The values of kPar0 and kParIdx, and the analogous quantities for the other propagation coefficients, are read from the input deck. The user can also control whether the streaming vStr0 should be interepreted as the absolute streaming speed or the speed relative to the ion Alfven speed (via the parameter vAStream – defaults to true) and whether the streaming direction should be relative to the CR pressure gradient (parameter varStreamDir = true, default value) or relative to the magnetic field vector direction (varStreamDir = false); note that, if varStreamDir is true, then a positive value of vStr0 corresponds to streaming down the pressure gradient, and if varStreamDir is false, a positive value of vStr0 corresponds to streaming in a direction aligned with the local magnetic field vector.
| PropPowerlaw::PropPowerlaw | ( | const ParmParser & | pp | ) |
Constructor: reads the parameters from the input deck.
| pp | criptic::ParmParser containing the input deck |
|
inlinevirtual |
Empty virtual destructor.
|
inlinevirtual |
What field quantities need to be computed?
This function returns the level of field quantity computation needed; this is no field quantities at all unless streaming is in a variable direction, in whcih case gradients of field quantities are needed.
Implements criptic::propagation::Propagation.
|
inlinevirtual |
Return the propagation data.
| x | Position |
| t | Time |
| gd | Data on background gas state |
| packet | Packet data |
| qty | Field quantities at the specified (x,t) |
| qtyGrad | Gradients of field quantities at specified (x,t) |
Implements criptic::propagation::Propagation.
|
private |
Parallel diffusion coefficient at p = m_p c
|
private |
Powerlaw index of parallel diffusion coefficient
|
private |
Perpendicular diffusion coefficient at p = m_p c
|
private |
Powerlaw index of perpendicular diffusion coefficient
|
private |
Momentum diffusion coefficient at p = m_p c
|
private |
Powerlaw index of momentum diffusion coefficient
|
private |
Does streaming direction vary?
|
private |
Is vStr0 relative to ion Alfven speed (true) or absolute (false)
|
private |
Streaming velocity at p = m_p c
|
private |
Powerlaw index of streaming velocity