LSDTopoTools
 All Classes Files Functions Variables Friends Pages
Public Member Functions | Protected Attributes | List of all members
LSDCRNParticle Class Reference

CRN tracer particle object, a particle that contains nuclide information. More...

#include <LSDParticle.hpp>

Inheritance diagram for LSDCRNParticle:
LSDParticle

Public Member Functions

 LSDCRNParticle ()
 default constructor
 
 LSDCRNParticle (int startType, double startxLoc, double startdLoc, double start_effdloc, double startzloc)
 @ brief constructor with starting x location, depth and z location
 
 LSDCRNParticle (int startType, double startxLoc, double startyLoc, double startdLoc, double start_effdloc, double startzloc)
 @ brief constructor with starting location information
 
 LSDCRNParticle (int startType, double startxLoc, double startzeta_Loc)
 
 LSDCRNParticle (int startType, int startGSDType, double startxLoc, double startdLoc, double start_effdloc, double startzLoc, double startMass, double startSurfaceArea)
 a create function for a volume particle
 
 LSDCRNParticle (int startType, int startGSDType, double startxLoc, double startyLoc, double startdLoc, double start_effdloc, double startzLoc, double startMass, double startSurfaceArea)
 a create function for a volume particle with y loc
 
 LSDCRNParticle (int startType, double startxLoc, double startzeta_Loc, double startdLoc, double start_effdLoc, double start_C10Be, double start_C14C)
 constructor that includes some CRN information
 
 LSDCRNParticle (int startType, double startxLoc, double startzeta_Loc, double startdLoc, double start_effdLoc, double start_C10Be, double start_C14C, double start_21Ne)
 constructor that includes CRN information with many nuclides
 
 LSDCRNParticle (int startType, int startGSDType, int startCellIndex, double startAge, double startOSLAge, double startxLoc, double startyLoc, double startdLoc, double startefdLoc, double startzLoc, double start_C10Be, double start_C26Al, double start_C36Cl, double start_C14C, double start_C21Ne, double start_C3He, double start_Cf7Be, double start_Cf10Be, double start_Cf210Pb, double start_Cf137Cs, double start_Mass, double start_StartingMass, double start_SurfaceArea)
 constructor that retains all data
 
 LSDCRNParticle (const LSDCRNParticle &tP)
 The copy constructor. More...
 
 LSDCRNParticle (LSDCRNParticle &tP)
 The copy constructor. More...
 
LSDCRNParticleoperator= (const LSDCRNParticle &tP)
 the copy constructor for constant LSDCRNParticle objects
 
LSDCRNParticleoperator= (LSDCRNParticle &tP)
 the copy constructor
 
void setConc_10Be (double new_10BeConc)
 this sets 10Be conc More...
 
void setConc_26Al (double new_26AlConc)
 this sets 26Al conc More...
 
double getConc_10Be () const
 Retrieves the concentration of 10Be. More...
 
double getConc_26Al () const
 Retrieves the concentration of 26Al. More...
 
double getConc_36Cl () const
 Retrieves the concentration of 36Cl. More...
 
double getConc_14C () const
 Retrieves the concentration of 14C. More...
 
double getConc_21Ne () const
 Retrieves the concentration of 21Ne. More...
 
double getConc_3He () const
 Retrieves the concentration of 3He. More...
 
double getConc_f7Be () const
 Retrieves the concentration of fallout 7Be. More...
 
double getConc_f10Be () const
 Retrieves the concentration of fallout 10Be. More...
 
double getConc_f210Pb () const
 Retrieves the concentration of 201Pb. More...
 
double getConc_f137Cs () const
 Retrieves the concentration of 137Cs. More...
 
double geteffective_dLoc () const
 Retrieves the effective depth. More...
 
double get_zetaLoc () const
 Retrieves the zeta location. More...
 
double getMass () const
 returns the mass of the particle More...
 
double getStartingMass () const
 returns the starting mass of the particle More...
 
double getSurfaceArea () const
 returns the surface area of the particle More...
 
int getGSDType () const
 returns the GSDType of the particle, which is an index into a LSDVolumeParticleInfo object More...
 
double convert_m_to_gpercm2 (double l_in_m, double rho)
 a utility function to convert between metres and g/cm^2 More...
 
double convert_gpercm2_to_m (double l_in_gpercm2, double rho)
 a utility function to convert between metres and g/cm^2 More...
 
void update_10Be_conc (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 10Be concentration based on a constant erosion rate using the full production range, including muons. More...
 
void update_26Al_conc (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 26Al concentration based on a constant erosion rate using the full production range, including muons. More...
 
void update_14C_conc (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 14C concentration based on a constant erosion rate using the full production range, including muons. More...
 
void update_36Cl_conc (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 36Cl concentration based on a constant erosion rate using the full production range, including muons. More...
 
void update_21Ne_conc (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 21Ne concentration based on a constant erosion rate using the full production range, including muons. More...
 
void update_3He_conc (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 3He concentration based on a constant erosion rate using the full production range, including muons. More...
 
void update_10Be_conc_linear_increase (double dt, double erosion_rate, double alpha, LSDCRNParameters &CRNp)
 This updates 10Be nuclide concentration if erosion is increasing (or decreasing) linearly alpha is the change in erosion rate–do not set alpha to zero! More...
 
void update_10Be_conc_neutron_only (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 10Be concentration based on a constant erosion rate using the ONLY NEUTRON porduction. It is less computationally expensive than calcualting the full production and is a good approximation of the erosion rates are slow More...
 
void update_26Al_conc_neutron_only (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 26Al concentration based on a constant erosion rate using the ONLY NEUTRON porduction. It is less computationally expensive than calcualting the full production and is a good approximation of the erosion rates are slow More...
 
void update_14C_conc_neutron_only (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 14C concentration based on a constant erosion rate using the ONLY NEUTRON porduction. It is less computationally expensive than calcualting the full production and is a good approximation of the erosion rates are slow More...
 
void update_36Cl_conc_neutron_only (double dt, double erosion, LSDCRNParameters &CRNp)
 update the 36Cl concentration based on a constant erosion rate using the ONLY NEUTRON porduction. It is less computationally expensive than calcualting the full production and is a good approximation of the erosion rates are slow More...
 
void update_cosmo_conc_const (double C_10Be, double C_26Al, double C_36Cl, double C_14C, double C_21Ne, double C_3He)
 This assigns nuclide concentrations with constant values. More...
 
void update_10Be_SSfull (double erosion, LSDCRNParameters &CRNp)
 Bring the 10Be concentration to steady state based on a constant erosion rate using full muogenic production. More...
 
void update_10Be_SSfull_depth_integrated (double erosion_rate, LSDCRNParameters &CRNp, double top_eff_depth, double bottom_eff_depth)
 Bring the 10Be concentration to steady state based on a constant erosion rate using full muogenic production. This version is for a DEPTH INTEGRATED concentration and as such should only be used for basinwide calculations. More...
 
void update_26Al_SSfull (double erosion, LSDCRNParameters &CRNp)
 Bring the 26Al concentration to steady state based on a constant erosion rate using full muogenic production. More...
 
void update_26Al_SSfull_depth_integrated (double erosion_rate, LSDCRNParameters &CRNp, double top_eff_depth, double bottom_eff_depth)
 Bring the 26Al concentration to steady state based on a constant erosion rate using full muogenic production. This version is for a DEPTH INTEGRATED concentration and as such should only be used for basinwide calculations. More...
 
void update_14C_SSfull (double erosion, LSDCRNParameters &CRNp)
 Bring the 14C concentration to steady state based on a constant erosion rate using full muogenic production. More...
 
void update_36Cl_SSfull (double erosion, LSDCRNParameters &CRNp)
 Bring the 36Cl concentration to steady state based on a constant erosion rate using full muogenic production. More...
 
void update_21Ne_SSfull (double erosion, LSDCRNParameters &CRNp)
 Bring the 21Ne concentration to steady state based on a constant erosion rate using full muogenic production. More...
 
void update_3He_SSfull (double erosion, LSDCRNParameters &CRNp)
 Bring the 3He concentration to steady state based on a constant erosion rate using full muogenic production. More...
 
void update_all_CRN (double dt, double erosion, LSDCRNParameters &CRNp)
 A wrapper function to update all the nuclide concentrations in one go. It uses full muogenic production. More...
 
void update_all_CRN_neutron_only (double dt, double erosion, LSDCRNParameters &CRNp)
 A wrapper function to update all the nuclide concentrations in one go. It uses NEUTRON PRODUCTION ONLY to save computational expense. This is a reasonable approximation in slowly eroding landscapes. More...
 
void update_all_CRN_SSfull (double erosion_rate, LSDCRNParameters &CRNp)
 A wrapper function to update all the nuclide concentrations to steady state using full muon production. More...
 
vector< double > apparent_erosion_10Be_COSMOCALC (double rho, LSDCRNParameters &CRNp, double scaling_factor, string Muon_scaling, double top_eff_depth, double bottom_eff_depth)
 This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and for full muon production based on COSMOCALC scaling. More...
 
double apparent_erosion_10Be_neutron_only (double rho, LSDCRNParameters &CRNp)
 This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and if the production was assumed to be from neutrons only for 10Be. More...
 
vector< double > apparent_erosion_26Al_COSMOCALC (double rho, LSDCRNParameters &CRNp, double scaling_factor, string Muon_scaling, double top_eff_depth, double bottom_eff_depth)
 This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and for full muon production based on COSMOCALC scaling. More...
 
double apparent_erosion_26Al_neutron_only (double rho, LSDCRNParameters &CRNp)
 This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and if the production was assumed to be from neutrons only for 26Al. More...
 
double apparent_erosion_14C_neutron_only (double rho, LSDCRNParameters &CRNp)
 This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and if the production was assumed to be from neutrons only for 14C. More...
 
double apparent_erosion_36Cl_neutron_only (double rho, LSDCRNParameters &CRNp)
 This returns the 'apparent' erosion rate that one would calcualte based on an assumed density abouve the sampling depth and if the production was assumed to be from neutrons only. More...
 
double apparent_erosion_21Ne (double rho, LSDCRNParameters &CRNp)
 This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and if the production was assumed to be from neutrons only for 21Ne. More...
 
double apparent_erosion_3He (double rho, LSDCRNParameters &CRNp)
 This returns the 'apparent' erosion rate that one would calcualte based on an assumed density aboue the sampling depth and if the production was assumed to be from neutrons only for 3He. More...
 
void update_fallout10Be_simple_density (double dt, double M_supply_surface, double rho_s, double k_f10Be, double deltad, LSDCRNParameters &CRNp)
 functions for dealing with fallout nuclides
 
void update_fallout10Be_simple_density_2exp (double dt, double M_supply_surface, double rho_skg, double k1_f10Be, double k2_f10Be, double chi_f10Be, double deltad_m, LSDCRNParameters &CRNp)
 
void update_depths (double delta_d, double delta_ed)
 This assignes depths. Note: it does not check if the effective depth is compatible with the depth! More...
 
void calculate_effective_depth_one_layer (double d, double rho)
 Updates the depth and calculates and updates the effective depth for a one layer density model (that is, all material has the same density) More...
 
void update_zetaLoc (double new_zeta)
 This assigns a new value for zeta. More...
 
void update_zetaLoc_with_new_surface (double new_zeta)
 
void erode_mass_only (double dt, double mass_erosion_rate)
 
void erode_mass_only_linear_increase (double dt, double mass_erosion_rate, double alpha)
 
double intOfBeta (double x, double Rc)
 This integrates over beta for Deselits scaling (see the paper) Modified from Greg Balco's code: http://hess.ess.washington.edu/math. More...
 
double desilets2006sp (double h, double Rc)
 This gets the deselits 2006 scaling Modified from Greg Balco's code: http://hess.ess.washington.edu/math. More...
 
double dunai2001sp (double h, double Rc)
 This gets the Dunai Scaling Modified from Greg Balco's code: http://hess.ess.washington.edu/math. More...
 
double lifton2006sp (double h, double Rc, double S)
 This gets the Stone scaling Modified from Greg Balco's code: http://hess.ess.washington.edu/math. More...
 
double stone2000sp (double lat, double P, double Fsp)
 This gets the Lifton Scaling Modified from Greg Balco's code: http://hess.ess.washington.edu/math. More...
 
double stone2000Rcsp (double h, double Rc)
 This implements a cutoff-rigidity rather than latitude based scaling scheme based on the Lal spallation polynomials. For use in paleomagnetically-corrected exposure-age calculations. Original version Written by Greg Balco – UW Cosmogenic Nuclide Lab balcs.nosp@m.@u.w.nosp@m.ashin.nosp@m.gton.nosp@m..edu March, 2007 Part of the CRONUS-Earth online calculators: http://hess.ess.washington.edu/math. More...
 
double thickness_scaling_factor (LSDCRNParameters &LSDCRNP, bool use_CRONUS)
 this calculates a thickness scaling factor that is used in the CRONUS calculator calculations More...
 
vector< double > CRONUS_initial_guess (LSDCRNParameters &LSDCRNP, double pressure, double lat, double N_10Be, double N_26Al, double topo_scale, double snow_scale)
 This function is the initial guess of erosion rate that repicates the initial guesss component of the CRONUS erosion rate function This replicates the 'initial guess' stage in Greg Balco's CRONUS calculator code get_al_be_erosion.m. More...
 
vector< double > CRONUS_get_Al_Be_erosion (LSDCRNParameters &LSDCRNP, double pressure, double lat, double rho, double N_10Be, double N_26Al, double sample_del10, double sample_del26, double topo_scale, double snow_scale)
 This function wraps the functions for getting the erosion rate from Al and Be data. The function emulates the get_al_be_erosion.m from the CRONUS calculator, written by Greg Balco. More...
 
vector< double > CRONUS_get_Al_Be_erosion_modified_production (LSDCRNParameters &LSDCRNP, double pressure, double lat, double rho, double N_10Be, double N_26Al, double sample_del10, double sample_del26, double topo_scale, double snow_scale, double Spallation_frac, double P_mu_frac)
 This function wraps the functions for getting the erosion rate from Al and Be data. Similar to above but modifies production rates The function emulates the get_al_be_erosion.m from the CRONUS calculator, written by Greg Balco. More...
 
void CRONUS_screen_report (vector< double > erate_consts)
 This produces a screen report that replicates the CRONUS calculator screen report. More...
 
void CRONUS_calculate_N_forward (double effective_erosion_rate, LSDCRNParameters &LSDCRNP, vector< double > &z_mu, vector< double > &P_mu_z_10Be, vector< double > &P_mu_z_26Al, double thickSF, double P_sp_10Be, double P_sp_26Al, double &N_Be10, double &N_Al26)
 This function returns the number of atoms given an effective erosion rate (this is the erosion rate in g/cm^2/yr) It is used in an optimisation loop (equivalent to fzero in matlab) More...
 
void CRONUS_calculate_N_forward (double effective_erosion_rate, LSDCRNParameters &LSDCRNP, vector< double > &z_mu, vector< double > &P_mu_z_10Be, vector< double > &P_mu_z_26Al, double thickSF, double P_sp_10Be, double P_sp_26Al, double &N_Be10, double &N_Al26, double &Be10_mu_N, double &Al26_mu_N, double &Be10_sp_N, double &Al26_sp_N)
 This function returns the number of atoms given an effective erosion rate (this is the erosion rate in g/cm^2/yr) It is used in an optimisation loop (equivalent to fzero in matlab) this is an overloaded version that returns the atoms from the two production mechanisms. More...
 
vector< double > CRONUS_error_propagation (double pressure, LSDCRNParameters &LSDCRNP, double thickSF, double rho, double sample_N10, double sample_N26, double sample_del10, double sample_del26, vector< double > &z_mu, vector< double > &P_mu_z_10Be, vector< double > &P_mu_z_26Al, double P_sp_10Be, double P_sp_26Al, double eff_e_10, double eff_e_26)
 This function returns the number of atoms given an effective erosion rate (this is the erosion rate in g/cm^2/yr) It is used in an optimisation loop (equivalent to fzero in matlab) More...
 
double CRONUS_simple_N_findroots (double inital_erate, double target, double Psp, double Pmu, double GammaSp, double GammaMu, double decay)
 This finds the roots of a simple version of the number of atoms given an effective erosion rate This function is used by the CRONUS calculator to determine uncertanties. More...
 
double CRONUS_simple_N_forward (double eff_eros, double Psp, double Pmu, double GammaSp, double GammaMu, double decay)
 This calculates a simple version of the number of atoms given an effective erosion rate This function is used by the CRONUS calculator to determine uncertanties. More...
 
- Public Member Functions inherited from LSDParticle
 LSDParticle ()
 default constructor. Makes a particle with type 0, age 0, and no data for other parameters
 
 LSDParticle (int StartType)
 Constructor. Similar to default, but assignes type. More...
 
 LSDParticle (int StartType, double StartAge)
 Constructor. Similar to default, but assignes type and age. More...
 
 LSDParticle (int StartType, int StartCI, double StartAge, double StartOSLage, double StartxLoc, double StartdLoc)
 Constructor. Assignes all data members except yLoc. More...
 
 LSDParticle (int StartType, int StartCI, double StartAge, double StartOSLage, double StartxLoc, double StartyLoc, double StartdLoc)
 Constructor. Assignes all data members. More...
 
 LSDParticle (int StartType, double StartxLoc, double StartdLoc)
 Constructor. Assignes type, x location and d location. other parameters are default. More...
 
int getType () const
 Get the type. More...
 
int getCellIndex () const
 Get the CellIndex. More...
 
double getAge () const
 Get the Age. More...
 
double getOSLage () const
 Get the OSLage. More...
 
double getxLoc () const
 Get the xLoc. More...
 
double getyLoc () const
 Get the yLoc. More...
 
double getdLoc () const
 Get the dLoc. More...
 
 LSDParticle (const LSDParticle &tP)
 const reference operator
 
 LSDParticle (LSDParticle &tP)
 const reference operator
 
LSDParticleoperator= (const LSDParticle &tP)
 copy constructor
 
std::ostream & operator<< (std::ostream &)
 outstream operator
 
void incrementAge (double dt)
 Increase the age of the particle. More...
 
void setCellIndex (int CI)
 Change the cell index. Used for referencing where the particle is this could be changed in the future to an octree structure. More...
 
void OSLexpose ()
 This 'exposes' the particle to light and resets the OSL age.
 
void SoilAgeExpose ()
 This 'exposes' the particle and resets its soil age to zero.
 
void update_xLoc (double new_xLoc)
 Allows the user to update the horizontal location (dangerous!)
 
void update_yLoc (double new_yLoc)
 Allows the user to update the horizontal location (dangerous!)
 
void displaceReflect (double dx, double dd, double h, double dt)
 this changes a particles horizontal and vertical position. If the particle reaches the surface it 'reflects' back into the soil layer IMPORTANT: this increments the OSL age but not the soil age!! More...
 
int test_domain (double lambda)
 this function test to see if the particle is within a hillslope, and if not sets the data to no data values More...
 

Protected Attributes

double effective_dLoc
 The effective depth of the particle in g/cm^2.
 
double zetaLoc
 
double Conc_10Be
 concentration of 10Be in atoms/g
 
double Conc_26Al
 concentration of 26Al in atoms/g
 
double Conc_36Cl
 concentration of 36Cl in atoms/g
 
double Conc_14C
 concentration of 14C in atoms/g
 
double Conc_21Ne
 concentration of 21Ne in atoms/g
 
double Conc_3He
 concentration of 3He in atoms/g
 
double Conc_f7Be
 concentration of fallout 7Be in units tba
 
double Conc_f10Be
 concentration of fallout 10Be in units a/g
 
double Conc_f210Pb
 concentration of fallout 210Pb in units tba
 
double Conc_f137Cs
 concentration of fallout 137Cs in units tba
 
double Mass
 the mass of the particle. Default units kg
 
double StartingMass
 Starting mass of the particle. Default units kg.
 
double SurfaceArea
 Surface area in m^2.
 
int GSDType
 
- Protected Attributes inherited from LSDParticle
int Type
 The type: used to identify, generally, what mineral the particle is.
 
int CellIndex
 
double Age
 Age the particle has spent in the soil.
 
double OSLage
 Optically stimulated luminescence age.
 
double xLoc
 Horizontal location of the particle.
 
double yLoc
 Other coordinate, used in 3D simulations.
 
double dLoc
 Depth of the particle.
 

Detailed Description

CRN tracer particle object, a particle that contains nuclide information.

Constructor & Destructor Documentation

LSDCRNParticle::LSDCRNParticle ( const LSDCRNParticle tP)
inline

The copy constructor.

Parameters
tPan LSDCRNParticle object
Author
SMM
Date
01/01/2010
LSDCRNParticle::LSDCRNParticle ( LSDCRNParticle tP)
inline

The copy constructor.

Parameters
tPa constant LSDCRNParticle object
Author
SMM
Date
01/01/2010

Member Function Documentation

vector< double > LSDCRNParticle::apparent_erosion_10Be_COSMOCALC ( double  rho,
LSDCRNParameters CRNp,
double  scaling_factor,
string  Muon_scaling,
double  top_eff_depth,
double  bottom_eff_depth 
)

This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and for full muon production based on COSMOCALC scaling.

Parameters
rhothe density in kg/m^3 above the 'sampling' point
CRNpa CRN parameters object that stores the coefficients
muon_stringa string containting the muon scaling can be Schaller, Granger or Braucher. Default is Braucher
top_eff_depththe effective depth g/cm^2 at the top of the section being depth-integrated
bottom_eff_depththe effective depth g/cm^2 at the bottom of the section being depth-integrated
Returns
the apparent erosion rate in g/cm^2/yr and m/yr
Author
SMM
Date
13/03/2015
double LSDCRNParticle::apparent_erosion_10Be_neutron_only ( double  rho,
LSDCRNParameters CRNp 
)

This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and if the production was assumed to be from neutrons only for 10Be.

Parameters
rhothe density in kg/m^3 above the 'sampling' point
CRNpa CRN parameters object that stores the coefficients
Returns
the apparent erosion rate in m/yr
Author
SMM
Date
01/01/2010
double LSDCRNParticle::apparent_erosion_14C_neutron_only ( double  rho,
LSDCRNParameters CRNp 
)

This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and if the production was assumed to be from neutrons only for 14C.

Parameters
rhothe density in kg/m^3 above the 'sampling' point
CRNpa CRN parameters object that stores the coefficients
Returns
the apparent erosion rate in m/yr
Author
SMM
Date
01/01/2010
double LSDCRNParticle::apparent_erosion_21Ne ( double  rho,
LSDCRNParameters CRNp 
)

This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and if the production was assumed to be from neutrons only for 21Ne.

Parameters
rhothe density in kg/m^3 above the 'sampling' point
CRNpa CRN parameters object that stores the coefficients
Returns
the apparent erosion rate in m/yr
Author
SMM
Date
01/01/2010
vector< double > LSDCRNParticle::apparent_erosion_26Al_COSMOCALC ( double  rho,
LSDCRNParameters CRNp,
double  scaling_factor,
string  Muon_scaling,
double  top_eff_depth,
double  bottom_eff_depth 
)

This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and for full muon production based on COSMOCALC scaling.

Parameters
rhothe density in kg/m^3 above the 'sampling' point
CRNpa CRN parameters object that stores the coefficients
muon_stringa string containting the muon scaling can be Schaller, Granger or Braucher. Default is Braucher
top_eff_depththe effective depth g/cm^2 at the top of the section being depth-integrated
bottom_eff_depththe effective depth g/cm^2 at the bottom of the section being depth-integrated
Returns
the apparent erosion rate in g/cm^2/yr and m/yr
Author
SMM
Date
13/03/2015
double LSDCRNParticle::apparent_erosion_26Al_neutron_only ( double  rho,
LSDCRNParameters CRNp 
)

This returns the 'apparent' erosion rate that one would calcualte based on an assumed density above the sampling depth and if the production was assumed to be from neutrons only for 26Al.

Parameters
rhothe density in kg/m^3 above the 'sampling' point
CRNpa CRN parameters object that stores the coefficients
Returns
the apparent erosion rate in m/yr
Author
SMM
Date
01/01/2010
double LSDCRNParticle::apparent_erosion_36Cl_neutron_only ( double  rho,
LSDCRNParameters CRNp 
)

This returns the 'apparent' erosion rate that one would calcualte based on an assumed density abouve the sampling depth and if the production was assumed to be from neutrons only.

Parameters
rhothe density in kg/m^3 above the 'sampling' point
CRNpa CRN parameters object that stores the coefficients
Returns
the apparent erosion rate in m/yr
Author
SMM
Date
01/01/2010
double LSDCRNParticle::apparent_erosion_3He ( double  rho,
LSDCRNParameters CRNp 
)

This returns the 'apparent' erosion rate that one would calcualte based on an assumed density aboue the sampling depth and if the production was assumed to be from neutrons only for 3He.

Parameters
rhothe density in kg/m^3 above the 'sampling' point
CRNpa CRN parameters object that stores the coefficients
Returns
the apparent erosion rate in m/yr
Author
SMM
Date
01/01/2010
void LSDCRNParticle::calculate_effective_depth_one_layer ( double  d,
double  rho 
)

Updates the depth and calculates and updates the effective depth for a one layer density model (that is, all material has the same density)

Parameters
dthe depth of the particle in metres
rhothe density of the material in kg/m^3
Author
SMM
Date
16/12/2014
double LSDCRNParticle::convert_gpercm2_to_m ( double  l_in_gpercm2,
double  rho 
)

a utility function to convert between metres and g/cm^2

Parameters
l_in_gpercm2the length in g per cm^2
rhothe density in kg/m^3
Author
SMM
Date
17/12/2014
double LSDCRNParticle::convert_m_to_gpercm2 ( double  l_in_m,
double  rho 
)

a utility function to convert between metres and g/cm^2

Parameters
l_in_mthe length in metres
rhothe density in kg/m^3
Author
SMM
Date
17/12/2014
void LSDCRNParticle::CRONUS_calculate_N_forward ( double  effective_erosion_rate,
LSDCRNParameters LSDCRNP,
vector< double > &  z_mu,
vector< double > &  P_mu_z_10Be,
vector< double > &  P_mu_z_26Al,
double  thickSF,
double  P_sp_10Be,
double  P_sp_26Al,
double &  N_Be10,
double &  N_Al26 
)

This function returns the number of atoms given an effective erosion rate (this is the erosion rate in g/cm^2/yr) It is used in an optimisation loop (equivalent to fzero in matlab)

Parameters
effective_erosion_rateerosion rate in g/cm^2/yr
LSDCRNPand LSDCRNParameters object
z_mua vector of depths for muon flux. Generated by LSDCRNParameters::get_CRONUS_P_mu_vectors
P_mu_z_10Bea vector of production of muons for 10Be. Generated by LSDCRNParameters::get_CRONUS_P_mu_vectors
P_mu_z_26Ala vector of production of muons for 26Al. Generated by LSDCRNParameters::get_CRONUS_P_mu_vectors
thickSFthe thickness scaling factor, generated by LSDCRNParticle::thickness_scaling_factor
P_sp_10Bean adjusted production rate that takes into account scaling, snow and topo shielding (stoneP*toposhield*snowshield)
P_sp_26Alan adjusted production rate that takes into account scaling, snow and topo shielding (stoneP*toposhield*snowshield)
N_10Bethe number of 10Be atoms. Replaced in this function.
N_26the number of 26Al atoms. Replaced in this function.
Author
SMM
Date
17/12/2014
void LSDCRNParticle::CRONUS_calculate_N_forward ( double  effective_erosion_rate,
LSDCRNParameters LSDCRNP,
vector< double > &  z_mu,
vector< double > &  P_mu_z_10Be,
vector< double > &  P_mu_z_26Al,
double  thickSF,
double  P_sp_10Be,
double  P_sp_26Al,
double &  N_Be10,
double &  N_Al26,
double &  Be10_mu_N,
double &  Al26_mu_N,
double &  Be10_sp_N,
double &  Al26_sp_N 
)

This function returns the number of atoms given an effective erosion rate (this is the erosion rate in g/cm^2/yr) It is used in an optimisation loop (equivalent to fzero in matlab) this is an overloaded version that returns the atoms from the two production mechanisms.

Parameters
effective_erosion_rateerosion rate in g/cm^2/yr
LSDCRNPand LSDCRNParameters object
z_mua vector of depths for muon flux. Generated by LSDCRNParameters::get_CRONUS_P_mu_vectors
P_mu_z_10Bea vector of production of muons for 10Be. Generated by LSDCRNParameters::get_CRONUS_P_mu_vectors
P_mu_z_26Ala vector of production of muons for 26Al. Generated by LSDCRNParameters::get_CRONUS_P_mu_vectors
thickSFthe thickness scaling factor, generated by LSDCRNParticle::thickness_scaling_factor
P_sp_10Bean adjusted production rate that takes into account scaling, snow and topo shielding (stoneP*toposhield*snowshield)
P_sp_26Alan adjusted production rate that takes into account scaling, snow and topo shielding (stoneP*toposhield*snowshield)
N_10Bethe number of 10Be atoms. Replaced in this function.
N_26the number of 26Al atoms. Replaced in this function.
Be10_mu_Natoms of 10Be from muons
Al26_mu_Natoms of 26Al from muons
Be10_sp_Natoms of 10Be from spallation
Al26_sp_Natoms of 26Al from spallation
Author
SMM
Date
17/12/2014
vector< double > LSDCRNParticle::CRONUS_error_propagation ( double  pressure,
LSDCRNParameters LSDCRNP,
double  thickSF,
double  rho,
double  sample_N10,
double  sample_N26,
double  sample_del10,
double  sample_del26,
vector< double > &  z_mu,
vector< double > &  P_mu_z_10Be,
vector< double > &  P_mu_z_26Al,
double  P_sp_10Be,
double  P_sp_26Al,
double  eff_e_10,
double  eff_e_26 
)

This function returns the number of atoms given an effective erosion rate (this is the erosion rate in g/cm^2/yr) It is used in an optimisation loop (equivalent to fzero in matlab)

Parameters
pressureatmospgeric pressure in HPa
LSDCRNPand LSDCRNParameters object
thickSFthe thickness scaling factor, get from LSDCRNParticle::thickness_scaling_factor
rhothe sample density in kg/m^3
sample_N10The number of 10Be atoms in the sample
sample_N26The number of 26Al atoms in the sample
sample_del10The accelerator uncertanty in the number of 10Be atoms
sample_del26The accelerator uncertanty in the number of 26Al atoms
z_mua vector of depths for muon flux. Generated by LSDCRNParameters::get_CRONUS_P_mu_vectors
P_mu_z_10Bea vector of production of muons for 10Be. Generated by LSDCRNParameters::get_CRONUS_P_mu_vectors
P_mu_z_26Ala vector of production of muons for 26Al. Generated by LSDCRNParameters::get_CRONUS_P_mu_vectors
P_sp_10Bean adjusted production rate that takes into account scaling, snow and topo shielding (stoneP*toposhield*snowshield)
P_sp_26Alan adjusted production rate that takes into account scaling, snow and topo shielding (stoneP*toposhield*snowshield)
eff_e_10effective erosion rate from 10Be in g/cm^2/yr
eff_e_26effective erosion rate from 26Al in g/cm^2/yr
Returns
errors a vector<double> of the errors in the erosion rate errors[0] = external 10Be error errors[1] = internal 10Be error (i.e., from the ams) errors[2] = Production from spallation at surface for 10Be in atoms/g/yr errors[3] = Production from muons at surface for 10Be in atoms/g/yr errors[4] = external 10Be error errors[5] = internal 10Be error (i.e., from the ams) errors[6] = Production from spallation at surface for 26Al in atoms/g/yr errors[7] = Production from muons at surface for 26Al in atoms/g/yr errors[8] = Atoms from spallation of 10Be in atoms/g errors[9] = Atoms from muons of 10Be in atoms/g errors[10] = Atoms from spallation of 26Al in atoms/g errors[11] = Atoms from muons of 26Al in atoms/g
Author
SMM
Date
17/12/2014
vector< double > LSDCRNParticle::CRONUS_get_Al_Be_erosion ( LSDCRNParameters LSDCRNP,
double  pressure,
double  lat,
double  rho,
double  N_10Be,
double  N_26Al,
double  sample_del10,
double  sample_del26,
double  topo_scale,
double  snow_scale 
)

This function wraps the functions for getting the erosion rate from Al and Be data. The function emulates the get_al_be_erosion.m from the CRONUS calculator, written by Greg Balco.

Parameters
LSDCRNPand LSDCRNParameters object
pressurethe atmospheric pressure in hPa
latthe latitude
rhothe density in kg/m^3
N_10Bethe number of 10Be atoms
N_26the number of 26Al atoms
sample_del10The accelerator uncertanty in the number of 10Be atoms
sample_del26The accelerator uncertanty in the number of 26Al atoms
topo_scalethe topographic scaling (between 0 and 1)
snow_scalethe snow scaling (between 0 and 1)
Returns
erate_consts A vector containing information about erosion rates and uncertainties erate_consts[0] = erate_10Be in g/cm^2/yr erate_consts[1] = erate_10Be in M/Myrs erate_consts[2] = erate 10Be internal uncertainty in M/Myrs erate_consts[3] = erate 10Be external uncertainty in M/Myrs erate_consts[4] = 10Be muon production rate atoms/g/yr erate_consts[5] = 10Be spallation production rate atoms/g/yr erate_consts[6] = erate_26Al in g/cm^2/yr erate_consts[7] = erate_26Al in M/Myrs erate_consts[9] = erate 26Al internal uncertainty in M/Myrs erate_consts[9] = erate 26Al external uncertainty in M/Myrs erate_consts[10] = 26Al muon production rate atoms/g/yr erate_consts[11] = 26Al spallation production rate atoms/g/yr
Author
SMM
Date
16/12/2014
vector< double > LSDCRNParticle::CRONUS_get_Al_Be_erosion_modified_production ( LSDCRNParameters LSDCRNP,
double  pressure,
double  lat,
double  rho,
double  N_10Be,
double  N_26Al,
double  sample_del10,
double  sample_del26,
double  topo_scale,
double  snow_scale,
double  Spallation_frac,
double  P_mu_frac 
)

This function wraps the functions for getting the erosion rate from Al and Be data. Similar to above but modifies production rates The function emulates the get_al_be_erosion.m from the CRONUS calculator, written by Greg Balco.

Parameters
LSDCRNPand LSDCRNParameters object
pressurethe atmospheric pressure in hPa
latthe latitude
rhothe density in kg/m^3
N_10Bethe number of 10Be atoms
N_26the number of 26Al atoms
sample_del10The accelerator uncertanty in the number of 10Be atoms
sample_del26The accelerator uncertanty in the number of 26Al atoms
topo_scalethe topographic scaling (between 0 and 1)
snow_scalethe snow scaling (between 0 and 1)
Spallation_fracfraction change in the default spallation
P_mu_fracfraction change in the default muon production
Returns
erate_consts A vector containing information about erosion rates and uncertainties erate_consts[0] = erate_10Be in g/cm^2/yr erate_consts[1] = erate_10Be in M/Myrs erate_consts[2] = erate 10Be internal uncertainty in M/Myrs erate_consts[3] = erate 10Be external uncertainty in M/Myrs erate_consts[4] = 10Be muon production rate atoms/g/yr erate_consts[5] = 10Be spallation production rate atoms/g/yr erate_consts[6] = erate_26Al in g/cm^2/yr erate_consts[7] = erate_26Al in M/Myrs erate_consts[9] = erate 26Al internal uncertainty in M/Myrs erate_consts[9] = erate 26Al external uncertainty in M/Myrs erate_consts[10] = 26Al muon production rate atoms/g/yr erate_consts[11] = 26Al spallation production rate atoms/g/yr
Author
SMM
Date
16/12/2014
vector< double > LSDCRNParticle::CRONUS_initial_guess ( LSDCRNParameters LSDCRNP,
double  pressure,
double  lat,
double  N_10Be,
double  N_26Al,
double  topo_scale,
double  snow_scale 
)

This function is the initial guess of erosion rate that repicates the initial guesss component of the CRONUS erosion rate function This replicates the 'initial guess' stage in Greg Balco's CRONUS calculator code get_al_be_erosion.m.

Parameters
LSDCRNPand LSDCRNParameters object
pressurethe atmospheric pressure in hPa
latthe latitude
N_10Bethe number of 10Be atoms
N_26the number of 26Al atoms
topo_scalethe topographic scaling (between 0 and 1)
snow_scalethe snow scaling (between 0 and 1)
Returns
Erosion_rates a vector<double> Eguess Eguess[0] = 10Be Eguess[1] = 26Al
Author
SMM
Date
14/12/2014
void LSDCRNParticle::CRONUS_screen_report ( vector< double >  erate_consts)

This produces a screen report that replicates the CRONUS calculator screen report.

Parameters
erate_conststhe vector that is returned by the function LSDCRNParticle::CRONUS_get_Al_Be_erosion
Author
SMM
Date
19/12/2014
double LSDCRNParticle::CRONUS_simple_N_findroots ( double  inital_erate,
double  target,
double  Psp,
double  Pmu,
double  GammaSp,
double  GammaMu,
double  decay 
)

This finds the roots of a simple version of the number of atoms given an effective erosion rate This function is used by the CRONUS calculator to determine uncertanties.

Parameters
intial_eratethe first guess of erosion rate in g/cm^2/yr.
targetthe target number of atoms
Pspproduction from spallation
Pmuproduction from muons
GammaSpeffective attenuation length for spallation (g/cm^2)
GammaMueffective attenuation length for muons (g/cm^2)
GammaMueffective attenuation length for muons (g/cm^2)
decayThe decay coefficient of this nuclide
Returns
the number of atoms per gram of the nuclide
Author
SMM
Date
18/12/2014
double LSDCRNParticle::CRONUS_simple_N_forward ( double  eff_eros,
double  Psp,
double  Pmu,
double  GammaSp,
double  GammaMu,
double  decay 
)

This calculates a simple version of the number of atoms given an effective erosion rate This function is used by the CRONUS calculator to determine uncertanties.

Parameters
eff_eroserosion rate in g/cm^2/yr.
Pspproduction from spallation
Pmuproduction from muons
GammaSpeffective attenuation length for spallation (g/cm^2)
GammaMueffective attenuation length for muons (g/cm^2)
GammaMueffective attenuation length for muons (g/cm^2)
decayThe decay coefficient of this nuclide
Returns
the number of atoms per gram of the nuclide
Author
SMM
Date
18/12/2014
double LSDCRNParticle::desilets2006sp ( double  h,
double  Rc 
)

This gets the deselits 2006 scaling Modified from Greg Balco's code: http://hess.ess.washington.edu/math.

Parameters
his atmospheric pressure (hPa)
Rcis cutoff rigidity (GV)
Returns
the scaling factor
Author
SMM
Date
1/12/2014
double LSDCRNParticle::dunai2001sp ( double  h,
double  Rc 
)

This gets the Dunai Scaling Modified from Greg Balco's code: http://hess.ess.washington.edu/math.

Parameters
his atmospheric pressure (hPa)
Rcis cutoff rigidity (GV)
Returns
the scaling factor
Author
SMM
Date
1/12/2014
double LSDCRNParticle::get_zetaLoc ( ) const
inline

Retrieves the zeta location.

Returns
zetaLoc, which the the elevation relative to some arbitrary datum
double LSDCRNParticle::getConc_10Be ( ) const
inline

Retrieves the concentration of 10Be.

Returns
concentration of 10Be
double LSDCRNParticle::getConc_14C ( ) const
inline

Retrieves the concentration of 14C.

Returns
concentration of 14C
double LSDCRNParticle::getConc_21Ne ( ) const
inline

Retrieves the concentration of 21Ne.

Returns
concentration of 21Ne
double LSDCRNParticle::getConc_26Al ( ) const
inline

Retrieves the concentration of 26Al.

Returns
concentration of 26Al
double LSDCRNParticle::getConc_36Cl ( ) const
inline

Retrieves the concentration of 36Cl.

Returns
concentration of 36Cl
double LSDCRNParticle::getConc_3He ( ) const
inline

Retrieves the concentration of 3He.

Returns
concentration of 3He
double LSDCRNParticle::getConc_f10Be ( ) const
inline

Retrieves the concentration of fallout 10Be.

Returns
concentration of fallout 10Be
double LSDCRNParticle::getConc_f137Cs ( ) const
inline

Retrieves the concentration of 137Cs.

Returns
concentration of 137Cs
double LSDCRNParticle::getConc_f210Pb ( ) const
inline

Retrieves the concentration of 201Pb.

Returns
concentration of 210Pb
double LSDCRNParticle::getConc_f7Be ( ) const
inline

Retrieves the concentration of fallout 7Be.

Returns
concentration of fallout 7Be
double LSDCRNParticle::geteffective_dLoc ( ) const
inline

Retrieves the effective depth.

Returns
the effective depth
int LSDCRNParticle::getGSDType ( ) const
inline

returns the GSDType of the particle, which is an index into a LSDVolumeParticleInfo object

Returns
the surface GSDType
double LSDCRNParticle::getMass ( ) const
inline

returns the mass of the particle

Returns
the mass
double LSDCRNParticle::getStartingMass ( ) const
inline

returns the starting mass of the particle

Returns
the starting mass
double LSDCRNParticle::getSurfaceArea ( ) const
inline

returns the surface area of the particle

Returns
the surface area
double LSDCRNParticle::intOfBeta ( double  x,
double  Rc 
)

This integrates over beta for Deselits scaling (see the paper) Modified from Greg Balco's code: http://hess.ess.washington.edu/math.

Parameters
xintegrating variable
Rcis cutoff rigidity (GV)
Returns
the scaling factor
Author
SMM
Date
1/12/2014
double LSDCRNParticle::lifton2006sp ( double  h,
double  Rc,
double  S 
)

This gets the Stone scaling Modified from Greg Balco's code: http://hess.ess.washington.edu/math.

Parameters
his atmospheric pressure (hPa)
Rcis cutoff rigidity (GV)
Ssolar modulation factor (nondimensional, see source paper)
Returns
the scaling factor
Author
SMM
Date
2/12/2014
void LSDCRNParticle::setConc_10Be ( double  new_10BeConc)
inline

this sets 10Be conc

Parameters
thenew 10Be conc in atoms per gram
void LSDCRNParticle::setConc_26Al ( double  new_26AlConc)
inline

this sets 26Al conc

Parameters
thenew 26Al conc in atoms per gram
double LSDCRNParticle::stone2000Rcsp ( double  h,
double  Rc 
)

This implements a cutoff-rigidity rather than latitude based scaling scheme based on the Lal spallation polynomials. For use in paleomagnetically-corrected exposure-age calculations. Original version Written by Greg Balco – UW Cosmogenic Nuclide Lab balcs.nosp@m.@u.w.nosp@m.ashin.nosp@m.gton.nosp@m..edu March, 2007 Part of the CRONUS-Earth online calculators: http://hess.ess.washington.edu/math.

Parameters
h= tmospheric pressure (hPa)
Rccutoff rigidity (GV)
Returns
scaling factor
Author
SMM
Date
5/12/2014
double LSDCRNParticle::stone2000sp ( double  lat,
double  P,
double  Fsp 
)

This gets the Lifton Scaling Modified from Greg Balco's code: http://hess.ess.washington.edu/math.

Parameters
latitudein decimal degrees
pressurein hPa
fspis the fraction (between 0 and 1) of production at sea level and high latitude due to spallation (as opposed to muons). This argument is optional and defaults to 0.978, which is the value used by Stone (2000) for Be-10. The corresponding value for Al-26 is 0.974. Note that using 0.844 for Be-10 and 0.826 for Al-26 will closely reproduce the Lal, 1991 scaling factors as long as the standard atmosphere is used to convert sample elevation to atmospheric pressure. Also note that this function will yield the scaling factor for spallation only when fsp=1, and that for muons only when fsp=0.
Returns
the scaling factor
Author
SMM
Date
5/12/2014
double LSDCRNParticle::thickness_scaling_factor ( LSDCRNParameters LSDCRNP,
bool  use_CRONUS 
)

this calculates a thickness scaling factor that is used in the CRONUS calculator calculations

Parameters
LSDCRNPan LSDCRNParameters object
use_CRONUSa boolean that if true uses the attenuation depth of the CRONUS calculator (at the moment this makes no difference)
Returns
The thickness scaling factor (between 0 and 1)
Author
SMM
Date
14/12/2014
void LSDCRNParticle::update_10Be_conc ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 10Be concentration based on a constant erosion rate using the full production range, including muons.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_10Be_conc_linear_increase ( double  dt,
double  erosion_rate,
double  alpha,
LSDCRNParameters CRNp 
)

This updates 10Be nuclide concentration if erosion is increasing (or decreasing) linearly alpha is the change in erosion rate–do not set alpha to zero!

This solves an analytical solution for cosmo concertration with a linear increase in cosmo concentration

Parameters
dttime step to calculate next cosmo concetration
erosion_ratethe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
alphathe increase in erosion rate (in g/cm^2/yr^2)
CRNpa CRN parameters object
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_10Be_conc_neutron_only ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 10Be concentration based on a constant erosion rate using the ONLY NEUTRON porduction. It is less computationally expensive than calcualting the full production and is a good approximation of the erosion rates are slow

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_10Be_SSfull ( double  erosion,
LSDCRNParameters CRNp 
)

Bring the 10Be concentration to steady state based on a constant erosion rate using full muogenic production.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr). It is an analytical steady state solution

Parameters
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_10Be_SSfull_depth_integrated ( double  erosion_rate,
LSDCRNParameters CRNp,
double  top_eff_depth,
double  bottom_eff_depth 
)

Bring the 10Be concentration to steady state based on a constant erosion rate using full muogenic production. This version is for a DEPTH INTEGRATED concentration and as such should only be used for basinwide calculations.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr). It is an analytical steady state solution

Parameters
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
top_eff_depththe effective depth g/cm^2 at the top of the section being depth-integrated
bottom_eff_depththe effective depth g/cm^2 at the bottom of the section being depth-integrated
Author
SMM
Date
20/02/2015
void LSDCRNParticle::update_14C_conc ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 14C concentration based on a constant erosion rate using the full production range, including muons.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_14C_conc_neutron_only ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 14C concentration based on a constant erosion rate using the ONLY NEUTRON porduction. It is less computationally expensive than calcualting the full production and is a good approximation of the erosion rates are slow

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_14C_SSfull ( double  erosion,
LSDCRNParameters CRNp 
)

Bring the 14C concentration to steady state based on a constant erosion rate using full muogenic production.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr). It is an analytical steady state solution

Parameters
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_21Ne_conc ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 21Ne concentration based on a constant erosion rate using the full production range, including muons.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_21Ne_SSfull ( double  erosion,
LSDCRNParameters CRNp 
)

Bring the 21Ne concentration to steady state based on a constant erosion rate using full muogenic production.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr). It is an analytical steady state solution

Parameters
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_26Al_conc ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 26Al concentration based on a constant erosion rate using the full production range, including muons.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_26Al_conc_neutron_only ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 26Al concentration based on a constant erosion rate using the ONLY NEUTRON porduction. It is less computationally expensive than calcualting the full production and is a good approximation of the erosion rates are slow

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_26Al_SSfull ( double  erosion,
LSDCRNParameters CRNp 
)

Bring the 26Al concentration to steady state based on a constant erosion rate using full muogenic production.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr). It is an analytical steady state solution

Parameters
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_26Al_SSfull_depth_integrated ( double  erosion_rate,
LSDCRNParameters CRNp,
double  top_eff_depth,
double  bottom_eff_depth 
)

Bring the 26Al concentration to steady state based on a constant erosion rate using full muogenic production. This version is for a DEPTH INTEGRATED concentration and as such should only be used for basinwide calculations.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr). It is an analytical steady state solution

Parameters
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
top_eff_depththe effective depth g/cm^2 at the top of the section being depth-integrated
bottom_eff_depththe effective depth g/cm^2 at the bottom of the section being depth-integrated
Author
SMM
Date
20/02/2015
void LSDCRNParticle::update_36Cl_conc ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 36Cl concentration based on a constant erosion rate using the full production range, including muons.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_36Cl_conc_neutron_only ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 36Cl concentration based on a constant erosion rate using the ONLY NEUTRON porduction. It is less computationally expensive than calcualting the full production and is a good approximation of the erosion rates are slow

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_36Cl_SSfull ( double  erosion,
LSDCRNParameters CRNp 
)

Bring the 36Cl concentration to steady state based on a constant erosion rate using full muogenic production.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr). It is an analytical steady state solution

Parameters
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_3He_conc ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

update the 3He concentration based on a constant erosion rate using the full production range, including muons.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr) over a duration of dt

Parameters
dtthe timestep over which erosion occurs
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_3He_SSfull ( double  erosion,
LSDCRNParameters CRNp 
)

Bring the 3He concentration to steady state based on a constant erosion rate using full muogenic production.

This function solves for the updated concentration assuming a constant erosion rate (in g/cm^2/yr). It is an analytical steady state solution

Parameters
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients to approximate production from the different production mechanisms
Author
SMM
Date
01/01/2010
void LSDCRNParticle::update_all_CRN ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

A wrapper function to update all the nuclide concentrations in one go. It uses full muogenic production.

Parameters
dtthe timestep over which the concetrations are updated
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients
Author
SMM
Date
01/01/2014
void LSDCRNParticle::update_all_CRN_neutron_only ( double  dt,
double  erosion,
LSDCRNParameters CRNp 
)

A wrapper function to update all the nuclide concentrations in one go. It uses NEUTRON PRODUCTION ONLY to save computational expense. This is a reasonable approximation in slowly eroding landscapes.

Parameters
dtthe timestep over which the concetrations are updated
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients
Author
SMM
Date
01/01/2014
void LSDCRNParticle::update_all_CRN_SSfull ( double  erosion_rate,
LSDCRNParameters CRNp 
)

A wrapper function to update all the nuclide concentrations to steady state using full muon production.

Parameters
erosionthe erosion rate in g/cm^2/yr POSITIVE FOR EROSION
CRNpa CRN parameters object that stores the coefficients
Author
SMM
Date
01/01/2014
void LSDCRNParticle::update_cosmo_conc_const ( double  C_10Be,
double  C_26Al,
double  C_36Cl,
double  C_14C,
double  C_21Ne,
double  C_3He 
)

This assigns nuclide concentrations with constant values.

Parameters
C_10Bethe 10Be concentration
C_26Althe 26Al concentration
C_36Clthe 36Cl concentration
C_14Cthe 14C concentration
C_21Nethe 21Ne concentration
C_3Hethe 3He concentration
void LSDCRNParticle::update_depths ( double  delta_d,
double  delta_ed 
)

This assignes depths. Note: it does not check if the effective depth is compatible with the depth!

Parameters
delta_dthe new depth (in metres)
delta_edthe new effective depth in g/cm^2
void LSDCRNParticle::update_zetaLoc ( double  new_zeta)

This assigns a new value for zeta.

Parameters
new_zetathe new zeta, which is elevation above an arbitrary datum

Member Data Documentation

int LSDCRNParticle::GSDType
protected

an integer used to denote the GSD type this is an INDEX into a vector in the LSDVolumeParticleInfo object

double LSDCRNParticle::zetaLoc
protected

the elevation (in metres) relative to an arbitrary datum (used to interface with landscape evolution)


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