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::PropPowerlaw Class Reference

A simple powerlaw CR propagation model. More...

#include <PropPowerlaw.H>

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

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
 

Detailed Description

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.

Constructor & Destructor Documentation

◆ PropPowerlaw()

PropPowerlaw::PropPowerlaw ( const ParmParser pp)

Constructor: reads the parameters from the input deck.

Parameters
ppcriptic::ParmParser containing the input deck

◆ ~PropPowerlaw()

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

Empty virtual destructor.

Member Function Documentation

◆ fieldQtyNeed()

virtual FieldQtyNeedType criptic::propagation::PropPowerlaw::fieldQtyNeed ( ) const
inlinevirtual

What field quantities need to be computed?

Returns
Level of field quantity information required

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.

◆ operator()()

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

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

Implements criptic::propagation::Propagation.

Member Data Documentation

◆ kPar0

Real criptic::propagation::PropPowerlaw::kPar0
private

Parallel diffusion coefficient at p = m_p c

◆ kParIdx

Real criptic::propagation::PropPowerlaw::kParIdx
private

Powerlaw index of parallel diffusion coefficient

◆ kPerp0

Real criptic::propagation::PropPowerlaw::kPerp0
private

Perpendicular diffusion coefficient at p = m_p c

◆ kPerpIdx

Real criptic::propagation::PropPowerlaw::kPerpIdx
private

Powerlaw index of perpendicular diffusion coefficient

◆ kPP0

Real criptic::propagation::PropPowerlaw::kPP0
private

Momentum diffusion coefficient at p = m_p c

◆ kPPIdx

Real criptic::propagation::PropPowerlaw::kPPIdx
private

Powerlaw index of momentum diffusion coefficient

◆ varStreamDir

bool criptic::propagation::PropPowerlaw::varStreamDir
private

Does streaming direction vary?

◆ vAStream

bool criptic::propagation::PropPowerlaw::vAStream
private

Is vStr0 relative to ion Alfven speed (true) or absolute (false)

◆ vStr0

Real criptic::propagation::PropPowerlaw::vStr0
private

Streaming velocity at p = m_p c

◆ vStrIdx

Real criptic::propagation::PropPowerlaw::vStrIdx
private

Powerlaw index of streaming velocity


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