|
| Component () |
| Default constructor for the Component struct.
|
|
| Component (Component::Type type, std::size_t currentComponent, const ForceField &forceField, const std::string &componentName, std::optional< const std::string > fileName, std::size_t numberOfBlocks, std::size_t numberOfLambdaBins, const MCMoveProbabilities &systemProbabilities=MCMoveProbabilities(), std::optional< double > fugacityCoefficient=std::nullopt, bool thermodynamicIntegration=false) noexcept(false) |
| Constructs a Component from a file.
|
|
| Component (std::size_t componentId, const ForceField &forceField, std::string componentName, double T_c, double P_c, double w, std::vector< Atom > definedAtoms, const ConnectivityTable &connectivityTable, const Potentials::IntraMolecularPotentials &intraMolecularPotentials, std::size_t numberOfBlocks, std::size_t numberOfLambdaBins, const MCMoveProbabilities &systemProbabilities=MCMoveProbabilities(), std::optional< double > fugacityCoefficient=std::nullopt, bool thermodynamicIntegration=false) noexcept(false) |
| Constructs a Component programmatically.
|
|
void | readComponent (const ForceField &forceField, const std::string &fileName) |
| Reads component data from a file.
|
|
std::string | printStatus (const ForceField &forceField, double inputPressure) const |
| Generates a string representing the component's current status.
|
|
std::string | printBreakthroughStatus () const |
| Generates a string representing the breakthrough status of the component.
|
|
nlohmann::json | jsonStatus () const |
| Serializes the component's status to JSON.
|
|
void | computeRigidProperties () |
| Computes rigid body properties of the component.
|
|
double3 | computeCenterOfMass (std::vector< Atom > atom_list) const |
| Computes the center of mass for a given list of atoms.
|
|
std::vector< Atom > | rotatePositions (const simd_quatd &q) const |
| Rotates the positions of all atoms using a given quaternion.
|
|
std::vector< Atom > | copiedAtoms (std::span< Atom > molecule) const |
| Creates a copy of the component's atoms based on a molecule span.
|
|
std::pair< Molecule, std::vector< Atom > > | equilibratedMoleculeRandomInBox (RandomNumber &random, const SimulationBox &simulationBox) const |
| Generates an equilibrated molecule randomly placed within a simulation box.
|
|
std::pair< Molecule, std::vector< Atom > > | translate (const Molecule &molecule, std::span< Atom > molecule_atoms, double3 displacement) const |
| Translates a molecule by a specified displacement.
|
|
std::pair< Molecule, std::vector< Atom > > | rotate (const Molecule &molecule, std::span< Atom > molecule_atoms, simd_quatd rotation) const |
| Rotates a molecule using a specified rotation quaternion.
|
|
ConnectivityTable | readConnectivityTable (std::size_t size, const nlohmann::basic_json< nlohmann::raspa_map > &parsed_data) |
|
std::vector< BondPotential > | readBondPotentials (const ForceField &forceField, const nlohmann::basic_json< nlohmann::raspa_map > &parsed_data) |
|
std::vector< BendPotential > | readBendPotentials (const ForceField &forceField, const nlohmann::basic_json< nlohmann::raspa_map > &parsed_data) |
|
std::vector< TorsionPotential > | readTorsionPotentials (const ForceField &forceField, const nlohmann::basic_json< nlohmann::raspa_map > &parsed_data) |
|
std::vector< VanDerWaalsPotential > | readVanDerWaalsPotentials (const ForceField &forceField, const nlohmann::basic_json< nlohmann::raspa_map > &parsed_data) |
|
std::vector< std::vector< std::size_t > > | readPartialReinsertionFixedAtoms (const nlohmann::basic_json< nlohmann::raspa_map > &parsed_data) |
|
std::string | repr () const |
| Returns a string representation of the Component.
|
|
|
std::uint64_t | versionNumber {1} |
| Version number for serialization.
|
|
Type | type {0} |
| Type of the component (Adsorbate or Cation).
|
|
GrowType | growType {0} |
| Growth type of the component.
|
|
std::size_t | componentId {0} |
| Unique identifier for the component.
|
|
std::string | name {} |
| Name of the component.
|
|
std::optional< std::string > | filenameData {} |
| Optional filename containing component data.
|
|
std::string | filename {} |
| Filename associated with the component.
|
|
std::vector< double4 > | blockingPockets {} |
| List of blocking pockets defined by position and radius.
|
|
bool | rigid {true} |
| Flag indicating if the component is rigid.
|
|
std::size_t | translationalDegreesOfFreedom {} |
| Number of translational degrees of freedom.
|
|
std::size_t | rotationalDegreesOfFreedom {} |
| Number of rotational degrees of freedom.
|
|
double | criticalTemperature {0.0} |
| Critical temperature of the component [K].
|
|
double | criticalPressure {0.0} |
| Critical pressure of the component [Pa].
|
|
double | acentricFactor {0.0} |
| Acentric factor of the component [-].
|
|
double | molFraction {1.0} |
| Mole fraction of the component [-].
|
|
bool | swappable {false} |
| Flag indicating if the component is swappable.
|
|
double | partialPressure {0.0} |
| Partial pressure of the component [Pa].
|
|
double | totalMass {0.0} |
| Total mass of the component [kg].
|
|
std::optional< double > | fugacityCoefficient {} |
| Optional fugacity coefficient [-].
|
|
double | amountOfExcessMolecules {0.0} |
| Amount of excess molecules [-].
|
|
double | bulkFluidDensity {0.0} |
| Bulk fluid density [kg/m³].
|
|
double | compressibility {0.0} |
| Compressibility of the component [-].
|
|
std::optional< double > | idealGasRosenbluthWeight {} |
| Optional ideal gas Rosenbluth weight [-].
|
|
std::optional< double > | idealGasEnergy {} |
| Optional ideal gas energy [J].
|
|
double | netCharge {0.0} |
| Net charge of the component [e].
|
|
std::size_t | startingBead {0} |
| Starting bead index for simulations.
|
|
std::vector< std::pair< Atom, double > > | definedAtoms {} |
| List of defined atoms and their masses.
|
|
double3 | inertiaVector {} |
| Inertia vector of the component.
|
|
double3 | inverseInertiaVector {} |
| Inverse of the inertia vector.
|
|
Shape | shapeType |
| Shape type of the molecule.
|
|
std::vector< Atom > | atoms {} |
| List of atoms in the component.
|
|
ConnectivityTable | connectivityTable {} |
| Connectivity table for the component.
|
|
Potentials::IntraMolecularPotentials | intraMolecularPotentials {} |
| List of internal potentials.
|
|
std::vector< Atom > | grownAtoms {} |
|
std::vector< std::vector< std::size_t > > | partialReinsertionFixedAtoms {} |
|
std::size_t | initialNumberOfMolecules {0} |
| Initial number of molecules in the component.
|
|
PropertyLambdaProbabilityHistogram | lambdaGC |
| Lambda probability histogram for Gibbs-Chebyshev integration.
|
|
PropertyLambdaProbabilityHistogram | lambdaGibbs |
| Lambda probability histogram for Gibbs integration.
|
|
bool | hasFractionalMolecule {false} |
| Flag indicating if the component has fractional molecules.
|
|
MCMoveProbabilities | mc_moves_probabilities |
| Move probabilities for Monte Carlo simulations.
|
|
MCMoveStatistics | mc_moves_statistics |
|
MCMoveCpuTime | mc_moves_cputime |
| CPU time statistics for Monte Carlo moves.
|
|
std::vector< CBMCMoveStatistics > | cbmc_moves_statistics |
|
PropertyWidom | averageRosenbluthWeights |
| Average Rosenbluth weights for Widom insertion.
|
|
double | lnPartitionFunction {0} |
| Natural logarithm of the partition function [-].
|
|
MultiSiteIsotherm | isotherm {} |
| Isotherm information for the component.
|
|
double | massTransferCoefficient {0.0} |
| Mass transfer coefficient [1/s].
|
|
double | axialDispersionCoefficient {0.0} |
| Axial dispersion coefficient [m²/s].
|
|
bool | isCarrierGas {false} |
| Flag indicating if the component is a carrier gas.
|
|
std::size_t | columnPressure {0} |
| Column index for pressure data.
|
|
std::size_t | columnLoading {1} |
| Column index for loading data.
|
|
std::size_t | columnError {2} |
| Column index for error data.
|
|
PressureScale | pressureScale {PressureScale::Log} |
| Pressure scaling type.
|
|
Represents a component within the simulation system.
The Component struct encapsulates all properties and behaviors associated with a simulation component, such as adsorbates or cations. It includes various physical properties, molecular structures, and simulation parameters necessary for conducting simulations. The struct provides constructors for initializing components from files or programmatically and includes methods for computing physical properties and manipulating molecular positions.