|
ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
|
Super-droplets initial properties. More...
#include <ERF_SDInitialization.H>


Public Types | |
| using | MatVec = std::vector< std::unique_ptr< MaterialProperties > > |
Public Member Functions | |
| virtual void | setDefaults (const amrex::Geometry &a_geom, const MatVec &a_species_mat, const MatVec &a_aerosol_mat) |
| Set default values for initialization parameters. More... | |
| virtual void | readInputs (const std::string &a_prefix, const std::string &a_key, const amrex::Geometry &a_geom, const MatVec &a_species_mat, const MatVec &a_aerosol_mat) |
| Read super-droplets initialization parameters from input file. More... | |
| virtual void | printParameters (const MatVec &a_species_mat, const MatVec &a_aerosol_mat) const |
| Print super-droplets initialization parameters to screen. More... | |
| void | getDistribution (amrex::Vector< amrex::Real > &a_mass, const int a_np, const amrex::Real a_density, const std::string &a_init_type, const amrex::Real a_mass_min, const amrex::Real a_mass_max, const amrex::Real a_mass_mean, const amrex::Real a_radius_min, const amrex::Real a_radius_max, const amrex::Real a_radius_mean, const amrex::Real a_radius_gstd, std::mt19937 &a_rng) const |
| Get a distribution with constant multiplicity. More... | |
| void | getDistribution (amrex::Vector< amrex::Real > &a_mass, amrex::Vector< amrex::Real > &a_mult, const amrex::Real a_dV, const int a_np, const amrex::Real a_density, const std::string &a_init_type, const amrex::Real a_mass_min, const amrex::Real a_mass_max, const amrex::Real a_mass_mean, const amrex::Real a_radius_min, const amrex::Real a_radius_max, const amrex::Real a_radius_mean, const amrex::Real a_radius_gstd, std::mt19937 &a_rng) const |
| Get a distribution with sampled multiplicity. More... | |
| void | getAerosolDistribution (amrex::Vector< amrex::Real > &a_mass, const int a_idx, const int a_np, const amrex::Real a_density, std::mt19937 &a_rng) const |
| Compute the aerosol mass distribution. More... | |
| void | getAerosolDistribution (amrex::Vector< amrex::Real > &a_mass, amrex::Vector< amrex::Real > &a_mult, amrex::Real a_dV, int a_idx, int a_np, amrex::Real a_density, std::mt19937 &a_rng) const |
| Compute the aerosol mass distribution with sampled multiplicity. More... | |
| void | getSpeciesDistribution (amrex::Vector< amrex::Real > &a_mass, const int a_idx, const int a_np, const amrex::Real a_density, std::mt19937 &a_rng) const |
| Compute the species mass distribution with constant multiplicity. More... | |
| void | getSpeciesDistribution (amrex::Vector< amrex::Real > &a_mass, amrex::Vector< amrex::Real > &a_mult, amrex::Real a_dV, int a_idx, int a_np, amrex::Real a_density, std::mt19937 &a_rng) const |
| Compute the species mass distribution with sampled multiplicity. More... | |
| bool | sampledMultiplicity () const |
| Determine whether multiplicity is sampled or constant. More... | |
| amrex::Real | volume () const |
| Calculate the volume of the particle domain. More... | |
| virtual int | numSDPerCell (const amrex::Real) const =0 |
| virtual amrex::Real | numParticlesPerCell (const amrex::Real) const =0 |
Super-droplets initial properties.
| using SDInitProperties::MatVec = std::vector<std::unique_ptr<MaterialProperties> > |
Initial number of super-droplets per cell
|
inline |
Compute the aerosol mass distribution with sampled multiplicity.
| [out] | a_mass | Output vector of aerosol masses |
| [out] | a_mult | Output vector of particle multiplicities |
| [in] | a_dV | Cell volume for scaling multiplicity |
| [in] | a_idx | Aerosol species index |
| [in] | a_np | Number of particles to generate |
| [in] | a_density | Density of the aerosol material |
| [in,out] | a_rng | Random number generator |

|
inline |
Compute the aerosol mass distribution.
| [out] | a_mass | Output vector of aerosol masses |
| [in] | a_idx | Aerosol species index |
| [in] | a_np | Number of particles |
| [in] | a_density | Density of the aerosol material |
| [in,out] | a_rng | Random number generator |

| void SDInitProperties::getDistribution | ( | amrex::Vector< amrex::Real > & | a_mass, |
| amrex::Vector< amrex::Real > & | a_mult, | ||
| const amrex::Real | a_dV, | ||
| const int | a_np, | ||
| const amrex::Real | a_density, | ||
| const std::string & | a_init_type, | ||
| const amrex::Real | a_mass_min, | ||
| const amrex::Real | a_mass_max, | ||
| const amrex::Real | a_mass_mean, | ||
| const amrex::Real | a_radius_min, | ||
| const amrex::Real | a_radius_max, | ||
| const amrex::Real | a_radius_mean, | ||
| const amrex::Real | a_radius_gstd, | ||
| std::mt19937 & | a_rng | ||
| ) | const |
Get a distribution with sampled multiplicity.
| [out] | a_mass | Output vector of particle masses |
| [out] | a_mult | Output vector of particle multiplicities |
| [in] | a_dV | Cell volume |
| [in] | a_np | Number of particles |
| [in] | a_density | Density of the particle material |
| [in] | a_init_type | Type of initialization distribution |
| [in] | a_mass_min | Minimum mass value |
| [in] | a_mass_max | Maximum mass value |
| [in] | a_mass_mean | Mean mass value |
| [in] | a_radius_min | Minimum radius value |
| [in] | a_radius_max | Maximum radius value |
| [in] | a_radius_mean | Mean radius value |
| [in] | a_radius_gstd | Geometric standard deviation for radius |
| [in,out] | a_rng | Random number generator |

| void SDInitProperties::getDistribution | ( | amrex::Vector< amrex::Real > & | a_mass, |
| const int | a_np, | ||
| const amrex::Real | a_density, | ||
| const std::string & | a_init_type, | ||
| const amrex::Real | a_mass_min, | ||
| const amrex::Real | a_mass_max, | ||
| const amrex::Real | a_mass_mean, | ||
| const amrex::Real | a_radius_min, | ||
| const amrex::Real | a_radius_max, | ||
| const amrex::Real | a_radius_mean, | ||
| const amrex::Real | a_radius_gstd, | ||
| std::mt19937 & | a_rng | ||
| ) | const |
Get a distribution with constant multiplicity.
| [out] | a_mass | Output vector of particle masses |
| [in] | a_np | Number of particles |
| [in] | a_density | Density of the particle material |
| [in] | a_init_type | Type of initialization distribution |
| [in] | a_mass_min | Minimum mass value |
| [in] | a_mass_max | Maximum mass value |
| [in] | a_mass_mean | Mean mass value |
| [in] | a_radius_min | Minimum radius value |
| [in] | a_radius_max | Maximum radius value |
| [in] | a_radius_mean | Mean radius value |
| [in] | a_radius_gstd | Geometric standard deviation for radius |
| [in,out] | a_rng | Random number generator |
Referenced by getAerosolDistribution(), and getSpeciesDistribution().

|
inline |
Compute the species mass distribution with sampled multiplicity.
| [out] | a_mass | Output vector of species masses |
| [out] | a_mult | Output vector of particle multiplicities |
| [in] | a_dV | Cell volume for scaling multiplicity |
| [in] | a_idx | Species index |
| [in] | a_np | Number of particles to generate |
| [in] | a_density | Density of the species material |
| [in,out] | a_rng | Random number generator |

|
inline |
Compute the species mass distribution with constant multiplicity.
| [out] | a_mass | Output vector of species masses |
| [in] | a_idx | Species index |
| [in] | a_np | Number of particles to generate |
| [in] | a_density | Density of the species material |
| [in,out] | a_rng | Random number generator |

|
pure virtual |
Implemented in SDInitialization, and SDInjection.
|
pure virtual |
Implemented in SDInitialization, and SDInjection.
|
virtual |
Print super-droplets initialization parameters to screen.
| [in] | a_species_mat | Vector of species material properties |
| [in] | a_aerosol_mat | Vector of aerosol material properties |
Reimplemented in SDInitialization, and SDInjection.
Referenced by SDInjection::printParameters(), and SDInitialization::printParameters().

|
virtual |
Read super-droplets initialization parameters from input file.
| [in] | a_prefix | Prefix for parameter parser |
| [in] | a_key | Key identifier for initialization parameters |
| [in] | a_geom | Simulation geometry information |
| [in] | a_species_mat | Vector of species material properties |
| [in] | a_aerosol_mat | Vector of aerosol material properties |
Reimplemented in SDInitialization, and SDInjection.
Referenced by SDInitialization::readInputs(), and SDInjection::readInputs().


|
inline |
Determine whether multiplicity is sampled or constant.
|
virtual |
Set default values for initialization parameters.
| [in] | a_geom | Simulation geometry information |
| [in] | a_species_mat | Vector of species material properties |
| [in] | a_aerosol_mat | Vector of aerosol material properties |
|
inline |
Calculate the volume of the particle domain.
For uniform distribution type, returns the box volume. For bubble distribution type, returns the volume of the bubble.
| std::vector<std::string> SDInitProperties::m_aerosol_init_type |
Initial distribution type for aerosol
Referenced by getAerosolDistribution(), printParameters(), readInputs(), and setDefaults().
| amrex::Vector<amrex::Real> SDInitProperties::m_init_particle_p1 |
Particle distribution shape parameters Box shape, p1 -> lo end, p2 -> hi end Bubble shape, p1 -> center, p2 -> radius
Referenced by readInputs(), and setDefaults().
| amrex::Vector<amrex::Real> SDInitProperties::m_init_particle_p2 |
Referenced by readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_mass_aerosol_max |
Maximum aerosol mass
Referenced by getAerosolDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_mass_aerosol_mean |
Mean aerosol mass
Referenced by getAerosolDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_mass_aerosol_min |
Minimum aerosol mass
Referenced by getAerosolDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_mass_species_max |
Maximum species mass
Referenced by getSpeciesDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_mass_species_mean |
Mean species mass
Referenced by getSpeciesDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_mass_species_min |
Minimum species mass
Referenced by getSpeciesDistribution(), printParameters(), readInputs(), and setDefaults().
| amrex::Real SDInitProperties::m_max_multiplicity = 1000000 |
Referenced by readInputs().
| SDMultiplicityType SDInitProperties::m_mult_type |
multiplicity type
Referenced by printParameters(), readInputs(), sampledMultiplicity(), and setDefaults().
| int SDInitProperties::m_num_aerosols = 0 |
Number of aerosols
Referenced by readInputs(), and setDefaults().
| int SDInitProperties::m_num_species = 0 |
Number of species
Referenced by readInputs(), and setDefaults().
| amrex::Real SDInitProperties::m_numdens = -1 |
Maximum multiplicity
Referenced by getDistribution(), SDInjection::numParticlesPerCell(), SDInitialization::numParticlesPerCell(), SDInitialization::printParameters(), SDInitialization::readInputs(), SDInjection::readInputs(), and SDInjection::updateDt().
| amrex::RealBox SDInitProperties::m_particle_domain |
box within which to place particles
Referenced by printParameters(), readInputs(), SDInjection::updateDt(), and volume().
| int SDInitProperties::m_ppc = 1 |
Referenced by SDInjection::numSDPerCell(), SDInitialization::numSDPerCell(), printParameters(), and readInputs().
| std::vector<amrex::Real> SDInitProperties::m_radius_aerosol_geom_std |
Standard deviation of aerosol dry radius
Referenced by getAerosolDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_radius_aerosol_max |
Maximum aerosol dry radius
Referenced by getAerosolDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_radius_aerosol_mean |
Mean aerosol dry radius
Referenced by getAerosolDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_radius_aerosol_min |
Minimum aerosol dry radius
Referenced by getAerosolDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_radius_species_geom_std |
Standard deviation of species dry radius
Referenced by getSpeciesDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_radius_species_max |
Maximum species dry radius
Referenced by getSpeciesDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_radius_species_mean |
Mean species dry radius
Referenced by getSpeciesDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<amrex::Real> SDInitProperties::m_radius_species_min |
Minimum species dry radius
Referenced by getSpeciesDistribution(), printParameters(), readInputs(), and setDefaults().
| std::vector<std::string> SDInitProperties::m_species_init_type |
Initial distribution type for species
Referenced by getSpeciesDistribution(), printParameters(), readInputs(), and setDefaults().
| SDInitShape SDInitProperties::m_type = SDInitShape::uniform |
Initial distribution type Initial number density (m^{-3}) of physical particles
Referenced by printParameters(), readInputs(), SDInjection::updateDt(), and volume().