criptic v1
Cosmic Ray Interstellar Propagation Tool using Itô Calculus
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
criptic::propagation::Propagation Class Referenceabstract

Interface to describe the CR propagation model. More...

#include <Propagation.H>

Inheritance diagram for criptic::propagation::Propagation:
criptic::propagation::NoPropagation criptic::propagation::PropPowerlaw

Public Member Functions

 Propagation (const ParmParser &pp)
 Constructor.
 
virtual ~Propagation ()
 Empty virtual destructor.
 
virtual FieldQtyNeedType fieldQtyNeed () const =0
 Access to field quantities needed?
 
virtual PropagationData operator() (const RealVec &x, const Real t, const gas::GasData &gd, const CRPacket &packet, const FieldQty &qty, const FieldQtyGrad &qtyGrad) const =0
 Return the propagation data.
 
void applyLimits (const gas::GasData &gd, const CRPacket &packet, PropagationData &pd) const
 Apply the Bohm limit and manually-set limits.
 

Private Attributes

int enforceBohmLimit
 
Real kParMax
 
Real kPerpMax
 
Real kPPMax
 
Real vDriftMax
 

Detailed Description

Interface to describe the CR propagation model.

This is a virtual base class that defines and interface through which the user describes the CR propagation model to criptic. Users can describe arbitrary propagation models by deriving a specialized class from this interface.

Constructor & Destructor Documentation

◆ Propagation()

criptic::propagation::Propagation::Propagation ( const ParmParser pp)
inline

Constructor.

Parameters
ppcriptic::ParmParser containing the input deck

◆ ~Propagation()

virtual criptic::propagation::Propagation::~Propagation ( )
inlinevirtual

Empty virtual destructor.

Member Function Documentation

◆ applyLimits()

void criptic::propagation::Propagation::applyLimits ( const gas::GasData gd,
const CRPacket packet,
PropagationData pd 
) const
inline

Apply the Bohm limit and manually-set limits.

Parameters
gdData on background gas state
packetPacket data
pdPropagation data

This routine applies the Bohm limit, limits the drift speed, and applies any user-set limits to a set of CR propagation parameters.

◆ fieldQtyNeed()

virtual FieldQtyNeedType criptic::propagation::Propagation::fieldQtyNeed ( ) const
pure virtual

Access to field quantities needed?

Returns
Level of field quantity information required

This is a pure virtual function that is left to be implemented in derived classes. The function can return noFieldQty, needFieldQty, or needFieldQtyGrad, which indicates that the propagation model does not need any field quantities, needs field quantities, or needs field quantities and their gradients, respectively.

Implemented in criptic::propagation::NoPropagation, and criptic::propagation::PropPowerlaw.

◆ operator()()

criptic::propagation::Propagation::operator() ( const RealVec x,
const Real  t,
const gas::GasData gd,
const CRPacket packet,
const FieldQty qty,
const FieldQtyGrad qtyGrad 
) const
pure virtual

Return the propagation data.

Parameters
xPosition
tTime
gdData on background gas state
packetPacket data
qtyField quantities at the specified (x,t)
qtyGradGradients of field quantities at specified (x,t)
Returns
The propagation data for the specified CR and point

Implemented in criptic::propagation::NoPropagation, and criptic::propagation::PropPowerlaw.

Member Data Documentation

◆ enforceBohmLimit

int criptic::propagation::Propagation::enforceBohmLimit
private

Enforce Bohm limit or not

◆ kParMax

Real criptic::propagation::Propagation::kParMax
private

Maximum parallel diffusion coefficient

◆ kPerpMax

Real criptic::propagation::Propagation::kPerpMax
private

Maximum perpendicular diffusion coefficient

◆ kPPMax

Real criptic::propagation::Propagation::kPPMax
private

Maxmimum momentum diffusionn coefficient

◆ vDriftMax

Real criptic::propagation::Propagation::vDriftMax
private

Maximum drift speed, in units of c


The documentation for this class was generated from the following file: