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

This is a class for a particle that can be tracked through simulations and retains data about position and chemical content. More...

#include <LSDParticleColumn.hpp>

Public Member Functions

 LSDParticleColumn ()
 The default constructor. It is the only possible constructor.
 
 LSDParticleColumn (int tRow, int tCol, int tNodeIndex, double tSoilDensity, double tRockDensity, float tSoilThickness, float tDataResolution, bool tUseDenstyProfile, vector< double > tDensityDepths, vector< double > tDensityDensities, list< LSDCRNParticle > tCRNParticleList)
 Constructor where all data member are assigned. Used for copy constructors.
 
 LSDParticleColumn (const LSDParticleColumn &tPC)
 const reference operator
 
 LSDParticleColumn (LSDParticleColumn &tPC)
 const reference operator
 
LSDParticleColumnoperator= (const LSDParticleColumn &tPC)
 const copy constructor
 
LSDParticleColumnoperator= (LSDParticleColumn &tPC)
 copy constructor
 
int getRow () const
 function for the row More...
 
int getCol () const
 function for the Col More...
 
int getNodeIndex () const
 function for the NodeIndex More...
 
double getSoilDensity () const
 function for the SoilDensity More...
 
double getRockDensity () const
 function for the RockDensity More...
 
float getSoilThickness () const
 function for the SoilThickness More...
 
float getDataResolution () const
 function for the DataResolution More...
 
bool getUseDenstyProfile () const
 function for the UseDenstyProfile; More...
 
vector< double > getDensityDepths () const
 function for the DensityDepths; More...
 
vector< double > getDensityDensities () const
 function for the DensityDensities; More...
 
list< LSDCRNParticlegetCRNParticleList () const
 function for the CRNParticleList More...
 
void set_RockDensity (double new_rhoR)
 set the rock density
 
void set_SoilDensity (double new_rhoS)
 set the soil density
 
void set_SoilThickness (double new_h)
 set the soil thickness
 
void set_Row_and_Col (int thisRow, int thisCol)
 this sets the row and column data members
 
void initiate_SS_cosmo_column_3CRN (int start_type, double startxLoc, double startyLoc, double start_depth, double particle_spacing, double zeta, double eff_eros_rate, LSDCRNParameters &CRN_param)
 This function initiates a list with particles evenly spaced. More...
 
void insert_particle_into_column (int start_type, double startxLoc, double startyLoc, double start_depth, double zeta)
 This inserts particles into the column. More...
 
LSDParticleColumn update_CRN_list_rock_only_eros_limit_3CRN (double dt, double uplift_rate, int start_type, double start_depth, double startxLoc, double startyLoc, double zeta_old, double zeta_new, double particle_spacing, LSDCRNParameters &CRN_param)
 This function updates the CRN concentrations, updates the zeta values in the face of uplift, and gives partial exposure for particles near the surface so these particles should represent the concentration at the time of erosion. The returned particle column contains the eroded particles. The function uses rock only since at the moment there is not time to include soil layers and all the computation required to sort out the density expansion. More...
 
void collect_particles (vector< LSDParticleColumn > &ColList_vec)
 the purpose of this object is to collect particles into one column that can be used, for example, to explore the CRN concetrations of particles being eroded from a landscape More...
 
vector< double > calculate_app_erosion_3CRN_neutron_rock_only (LSDCRNParameters &CRN_param)
 this function calculates the apparent erosion from the top particle in the column using neutron only assumption, and only rock density More...
 
void print_particle_properties_to_screen (LSDCRNParameters &CRNParam)
 this prints particles to screen for bug checking More...
 

Protected Attributes

int Row
 
int Col
 
int NodeIndex
 
double SoilDensity
 the soil density in kg/m^3
 
double RockDensity
 the rock density in kh/m^3
 
float SoilThickness
 the soil thickness. It is a float since LSDRasters are floats
 
float DataResolution
 
bool UseDenstyProfile
 This tells the model if it needs to use the density profile.
 
vector< double > DensityDepths
 
vector< double > DensityDensities
 
list< LSDCRNParticleCRNParticleList
 This is the list for holding the particles.
 

Detailed Description

This is a class for a particle that can be tracked through simulations and retains data about position and chemical content.

Member Function Documentation

vector< double > LSDParticleColumn::calculate_app_erosion_3CRN_neutron_rock_only ( LSDCRNParameters CRN_param)

this function calculates the apparent erosion from the top particle in the column using neutron only assumption, and only rock density

Parameters
CRN_paramand LSDCRNParameters object
Returns
a vector with the apprent erosion rates in m/yr [0] from 10Be [1] from 14C [2] from 21Ne
Author
SMM
Date
25/7/2014
void LSDParticleColumn::collect_particles ( vector< LSDParticleColumn > &  ColList_vec)

the purpose of this object is to collect particles into one column that can be used, for example, to explore the CRN concetrations of particles being eroded from a landscape

Parameters
ColList_veca vector of particle columns
Author
SMM
Date
25/07/2014
int LSDParticleColumn::getCol ( ) const
inline

function for the Col

Returns
Col the column of the particle column (links to LSDRaster)
list<LSDCRNParticle> LSDParticleColumn::getCRNParticleList ( ) const
inline

function for the CRNParticleList

Returns
CRNParticleList the underlying particle list
float LSDParticleColumn::getDataResolution ( ) const
inline

function for the DataResolution

Returns
DataResolution of the particle column (links to LSDRaster)
vector<double> LSDParticleColumn::getDensityDensities ( ) const
inline

function for the DensityDensities;

Returns
DensityDensities density measurments in the profile (kg/m^3)
vector<double> LSDParticleColumn::getDensityDepths ( ) const
inline

function for the DensityDepths;

Returns
DensityDepths depth density measurments in the profile
int LSDParticleColumn::getNodeIndex ( ) const
inline

function for the NodeIndex

Returns
NodeIndex of the particle column (links to LSDRaster)
double LSDParticleColumn::getRockDensity ( ) const
inline

function for the RockDensity

Returns
RockDensity of the particle column
int LSDParticleColumn::getRow ( ) const
inline

function for the row

Returns
Row the row
double LSDParticleColumn::getSoilDensity ( ) const
inline

function for the SoilDensity

Returns
SoilDensity of the particle column
float LSDParticleColumn::getSoilThickness ( ) const
inline

function for the SoilThickness

Returns
SoilThickness of the particle column
bool LSDParticleColumn::getUseDenstyProfile ( ) const
inline

function for the UseDenstyProfile;

Returns
UseDenstyProfile tells object to use density profile
void LSDParticleColumn::initiate_SS_cosmo_column_3CRN ( int  start_type,
double  startxLoc,
double  startyLoc,
double  start_depth,
double  particle_spacing,
double  zeta,
double  eff_eros_rate,
LSDCRNParameters CRN_param 
)

This function initiates a list with particles evenly spaced.

Parameters
start_typethe starting type of the particle
startxLocthe starting x location of the particle
startxLocthe starting y location of the particle
start_depththe starting depth of the particle in metres
particle_spacingthe spacing in metres between particles (in depth)
zetathe surface elevation (m)
eff_eros_ratethe erosion rate in g/cm^2/yr
CRN_parama CRNParameters object
Author
SMM
Date
25/07/2014
void LSDParticleColumn::insert_particle_into_column ( int  start_type,
double  startxLoc,
double  startyLoc,
double  start_depth,
double  zeta 
)

This inserts particles into the column.

Parameters
start_typethe starting type of the particle
startxLocthe starting x location of the particle
startxLocthe starting y location of the particle
start_depththe starting depth of the particle in metres
zetathe elevation of the surface
void LSDParticleColumn::print_particle_properties_to_screen ( LSDCRNParameters CRNParam)

this prints particles to screen for bug checking

Parameters
CRNParamsthe CRN parameter file (for apparent erosion
Author
SMM
Date
02/08/2014
LSDParticleColumn LSDParticleColumn::update_CRN_list_rock_only_eros_limit_3CRN ( double  dt,
double  uplift_rate,
int  start_type,
double  start_depth,
double  startxLoc,
double  startyLoc,
double  zeta_old,
double  zeta_new,
double  particle_spacing,
LSDCRNParameters CRN_param 
)

This function updates the CRN concentrations, updates the zeta values in the face of uplift, and gives partial exposure for particles near the surface so these particles should represent the concentration at the time of erosion. The returned particle column contains the eroded particles. The function uses rock only since at the moment there is not time to include soil layers and all the computation required to sort out the density expansion.

Parameters
dtthe time step
uplift_ratethe rate of uplift in m/yr
start_typethe starting type of the particle
start_depththe starting depth of the particle in metres
startxLocthe starting x location of the particle
startxLocthe starting y location of the particle
zeta_oldthe elevation of the previous timestep
zeta_newthe elevation at this timestep
particlespacing the distance between particles
CRN_parama LSDCRNParameters object
Returns
a particle column that contains eroded particles. These particles have been eroded in the last timestep but they are only exposed during the time they are in the ground. This is to replicate collection of particles that are in streams and have only just emerged from the ground
Author
SMM
Date
25/07/2014

Member Data Documentation

int LSDParticleColumn::Col
protected

The row of the particle column. This allows the obect to be linked to an LSDRaster

float LSDParticleColumn::DataResolution
protected

the cellsize of the raster if the column is linked to a raster. It is a float since LSDRasters are floats used to track if the particle is within the cell

vector<double> LSDParticleColumn::DensityDensities
protected

This is the density profile. The densities (in kg/m^3) are the density measurments at depths set by DenstiyDepths

vector<double> LSDParticleColumn::DensityDepths
protected

This is the density profile. The depths are the points where density has been sampled

int LSDParticleColumn::NodeIndex
protected

The row of the particle column. This allows the obect to be linked to an LSDFlowInfo object

int LSDParticleColumn::Row
protected

The row of the particle column. This allows the obect to be linked to an LSDRaster


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