Kariba
Loading...
Searching...
No Matches
kariba::Powerlaw Class Reference

#include <Powerlaw.hpp>

Inheritance diagram for kariba::Powerlaw:
kariba::Particles

Public Member Functions

 Powerlaw (size_t size)
 Class constructor to initialize object.
 
virtual void set_p (double min, double ucom, double bfield, double betaeff, double r, double fsc)
 Methods to set momentum/energy arrays.
 
virtual void set_p (double min, double gmax)
 
virtual void set_ndens ()
 
virtual void set_pspec (double s1)
 methods to set the slope and normalization
 
virtual void set_norm (double n)
 
virtual bool get_Efficiency () const
 
virtual void cooling_steadystate (double ucom, double n0, double bfield, double r, double tshift)
 
virtual double max_p (double ucom, double bfield, double betaeff, double r, double fsc)
 
virtual void test ()
 simple method to check quantities.
 
- Public Member Functions inherited from kariba::Particles
 Particles (size_t size)
 
int get_cutoff_type () const
 
virtual void set_cutoff_type (int t)
 
virtual void set_mass (double m)
 
virtual void initialize_gdens ()
 
virtual void initialize_pdens ()
 Same as above but the other way around.
 
virtual void differentiate ()
 
virtual const std::vector< double > & get_p () const
 
virtual const std::vector< double > & get_pdens () const
 
virtual const std::vector< double > & get_gamma () const
 
virtual const std::vector< double > & get_gdens () const
 
virtual const std::vector< double > & get_pdensp2_diff_logp () const
 
virtual double count_particles ()
 Simple numerical integrals /w trapeze method.
 
virtual double count_particles_energy ()
 
virtual double av_p ()
 
virtual double av_gamma ()
 
virtual double av_psq ()
 
virtual double av_gammasq ()
 
virtual void test_arrays ()
 simple method to check arrays; only meant for debugging
 

Protected Attributes

double pspec
 
double plnorm
 
double pmin
 
double pcut
 
bool isEfficient
 Proton acceleration.
 
- Protected Attributes inherited from kariba::Particles
double mass_gr
 particle mass in grams
 
double mass_kev
 same as above but in keV, using electrons as "reference"
 
std::vector< double > p
 array of particle momenta
 
std::vector< double > ndens
 array of number density per unit volume, per unit momentum
 
std::vector< double > gamma
 array of particle kinetic energies for each momentum
 
std::vector< double > gdens
 array of number density per unit volume, per unit gamma
 
std::vector< double > pdensp2_diff_logp
 density for radiation calculation p^-2*dn/dp
 
int cutoff_type = Exponential
 

Additional Inherited Members

- Static Public Member Functions inherited from kariba::Particles
static double cutoff_factor (double x, int type=Exponential)
 

Detailed Description

Class for non-thermal particles, inherited from the generic Particles class in Particles.hpp note: ndens is number density per unit momentum

Constructor & Destructor Documentation

◆ Powerlaw()

kariba::Powerlaw::Powerlaw ( size_t  size)

Class constructor to initialize object.

Member Function Documentation

◆ cooling_steadystate()

void kariba::Powerlaw::cooling_steadystate ( double  ucom,
double  n0,
double  bfield,
double  r,
double  betaeff 
)
virtual

Method to solve steady state continuity equation. NOTE: KN cross section not included in IC cooling

◆ get_Efficiency()

virtual bool kariba::Powerlaw::get_Efficiency ( ) const
inlinevirtual

◆ max_p()

double kariba::Powerlaw::max_p ( double  ucom,
double  bfield,
double  betaeff,
double  r,
double  fsc 
)
virtual

Method to calculate maximum momentum of non thermal particles based on acceleration and cooling timescales The estimate is identical to the old agnjet but in momentum space; see Lucchini et al. 2019 for the math of the old version

◆ set_ndens()

void kariba::Powerlaw::set_ndens ( )
virtual

Method to set differential electron number density from known pspec, normalization, and momentum array

◆ set_norm()

void kariba::Powerlaw::set_norm ( double  n)
virtual

◆ set_p() [1/2]

void kariba::Powerlaw::set_p ( double  min,
double  gmax 
)
virtual

◆ set_p() [2/2]

void kariba::Powerlaw::set_p ( double  min,
double  ucom,
double  bfield,
double  betaeff,
double  r,
double  fsc 
)
virtual

Methods to set momentum/energy arrays.

◆ set_pspec()

void kariba::Powerlaw::set_pspec ( double  s1)
virtual

methods to set the slope and normalization

◆ test()

void kariba::Powerlaw::test ( )
virtual

simple method to check quantities.

Member Data Documentation

◆ isEfficient

bool kariba::Powerlaw::isEfficient
protected

Proton acceleration.

◆ pcut

double kariba::Powerlaw::pcut
protected

◆ plnorm

double kariba::Powerlaw::plnorm
protected

◆ pmin

double kariba::Powerlaw::pmin
protected

◆ pspec

double kariba::Powerlaw::pspec
protected

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