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 | |
LSDParticleColumn & | operator= (const LSDParticleColumn &tPC) |
const copy constructor | |
LSDParticleColumn & | operator= (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< LSDCRNParticle > | getCRNParticleList () 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< LSDCRNParticle > | CRNParticleList |
This is the list for holding the particles. | |
This is a class for a particle that can be tracked through simulations and retains data about position and chemical content.
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
CRN_param | and LSDCRNParameters object |
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
ColList_vec | a vector of particle columns |
|
inline |
function for the Col
|
inline |
function for the CRNParticleList
|
inline |
function for the DataResolution
|
inline |
function for the DensityDensities;
|
inline |
function for the DensityDepths;
|
inline |
function for the NodeIndex
|
inline |
function for the RockDensity
|
inline |
function for the row
|
inline |
function for the SoilDensity
|
inline |
function for the SoilThickness
|
inline |
function for the UseDenstyProfile;
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.
start_type | the starting type of the particle |
startxLoc | the starting x location of the particle |
startxLoc | the starting y location of the particle |
start_depth | the starting depth of the particle in metres |
particle_spacing | the spacing in metres between particles (in depth) |
zeta | the surface elevation (m) |
eff_eros_rate | the erosion rate in g/cm^2/yr |
CRN_param | a CRNParameters object |
void LSDParticleColumn::insert_particle_into_column | ( | int | start_type, |
double | startxLoc, | ||
double | startyLoc, | ||
double | start_depth, | ||
double | zeta | ||
) |
This inserts particles into the column.
start_type | the starting type of the particle |
startxLoc | the starting x location of the particle |
startxLoc | the starting y location of the particle |
start_depth | the starting depth of the particle in metres |
zeta | the elevation of the surface |
void LSDParticleColumn::print_particle_properties_to_screen | ( | LSDCRNParameters & | CRNParam | ) |
this prints particles to screen for bug checking
CRNParams | the CRN parameter file (for apparent erosion |
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.
dt | the time step |
uplift_rate | the rate of uplift in m/yr |
start_type | the starting type of the particle |
start_depth | the starting depth of the particle in metres |
startxLoc | the starting x location of the particle |
startxLoc | the starting y location of the particle |
zeta_old | the elevation of the previous timestep |
zeta_new | the elevation at this timestep |
particle | spacing the distance between particles |
CRN_param | a LSDCRNParameters object |
|
protected |
The row of the particle column. This allows the obect to be linked to an LSDRaster
|
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
|
protected |
This is the density profile. The densities (in kg/m^3) are the density measurments at depths set by DenstiyDepths
|
protected |
This is the density profile. The depths are the points where density has been sampled
|
protected |
The row of the particle column. This allows the obect to be linked to an LSDFlowInfo object
|
protected |
The row of the particle column. This allows the obect to be linked to an LSDRaster