configuration for particle insertion algorithm (e.g.: USHER).
More...
#include <ParticleInsertionConfiguration.h>
|
| ParticleInsertionConfiguration (unsigned int insertDeleteMassEveryTimestep, double rSigmaCoeff, double meanPotentialEnergyFactor, double uOverlapCoeff, double stepRefCoeff, unsigned int iterMax, unsigned int restartMax, double tolerance, double offsetFromOuterBoundary, ParticleInsertionType particleInsertionType) |
|
|
static const std::string | INSERT_DELETE_MASS_EVERY_TIMESTEP |
|
static const std::string | RSIGMA_COEFF |
|
static const std::string | MEAN_POTENTIAL_ENERGY_FACTOR |
|
static const std::string | UOVERLAP_COEFF |
|
static const std::string | STEPREF_COEFF |
|
static const std::string | ITER_MAX |
|
static const std::string | RESTART_MAX |
|
static const std::string | TOLERANCE |
|
static const std::string | OFFSET_FROM_OUTER_BOUNDARY |
|
configuration for particle insertion algorithm (e.g.: USHER).
configuration for particle insertion algorithm (e.g.: USHER). Derive from the class tarch::configuration::Configuration
- Template Parameters
-
dim | Number of dimensions; it can be 1, 2 or 3 |
- Author
- Philipp Neumann
◆ ParticleInsertionType
particle insertion types that are implemented.
Enumerator |
---|
USHER | Usher
|
NO_INSERTION | no particle insertion
|
◆ ParticleInsertionConfiguration()
coupling::configurations::ParticleInsertionConfiguration::ParticleInsertionConfiguration |
( |
| ) |
|
|
inline |
Constructor, initializes the class
◆ ~ParticleInsertionConfiguration()
virtual coupling::configurations::ParticleInsertionConfiguration::~ParticleInsertionConfiguration |
( |
| ) |
|
|
inlinevirtual |
◆ getParticleInsertionType()
ParticleInsertionType coupling::configurations::ParticleInsertionConfiguration::getParticleInsertionType |
( |
| ) |
const |
|
inline |
Returns the particle insertion type.
- Returns
- _particleInsertionType
◆ getTag()
std::string coupling::configurations::ParticleInsertionConfiguration::getTag |
( |
| ) |
const |
|
virtual |
Returns name of xml tag that is associated to the configuration.
- Returns
- name of xml tag that is associated to the configuration
Implements tarch::configuration::Configuration.
◆ interpreteConfiguration()
template<class LinkedCell, unsigned int dim>
Returns particle insertion config
- Template Parameters
-
LinkedCell | type of the cell |
dim | Number of dimensions; it can be 1, 2 or 3 |
- Parameters
-
- Returns
- particle insertion config
◆ isValid()
bool coupling::configurations::ParticleInsertionConfiguration::isValid |
( |
| ) |
const |
|
virtual |
◆ parseSubtag()
void coupling::configurations::ParticleInsertionConfiguration::parseSubtag |
( |
tinyxml2::XMLElement * | node | ) |
|
|
virtual |
◆ _insertDeleteMassEveryTimestep
unsigned int coupling::configurations::ParticleInsertionConfiguration::_insertDeleteMassEveryTimestep |
|
private |
used to trigger mass insertion/deletion actions only every X time steps. For NoParticleInsertion, a value of 1 is used since this is irrelevant in this case. If the value is not specified in the configuration, a default value of 1 is used.
◆ _iterMax
unsigned int coupling::configurations::ParticleInsertionConfiguration::_iterMax |
|
private |
maximum number of USHER iteration steps within one insertion cycle
◆ _offsetFromOuterBoundary
double coupling::configurations::ParticleInsertionConfiguration::_offsetFromOuterBoundary |
|
private |
enables valid particle positions only if the particle is at least at this distance from an outer boundary. This is useful since open boundary forces are not considered in the current USHER implementation. Inserting a particle close to an outer open boundary may thus result in very strong forces and, thus, yield instabilities.
◆ _particleInsertionType
type of particle insertion algorithm
◆ _restartMax
unsigned int coupling::configurations::ParticleInsertionConfiguration::_restartMax |
|
private |
maximum number of USHER restarts, that is USHER insertion cycles
◆ _rSigmaCoeff
double coupling::configurations::ParticleInsertionConfiguration::_rSigmaCoeff |
|
private |
r_sigma value. In the USHER paper, this value resembles the respective parameter for choosing the stepsize when two particles overlap. In the paper, it is stated that it should be close to unity (in sigma units; the parameter here is also used in sigma units of the respective molecules) and is chosen to be 0.9. If the parameter is not defined in the config, _rSigmaCoeff is also set to 0.9.
◆ _stepRefCoeff
double coupling::configurations::ParticleInsertionConfiguration::_stepRefCoeff |
|
private |
coefficient determining a reference step size when stepping towards the right energy level. From the USHER paper (Usher - An algorithm for particle insertion in dense fluids), this coefficient is optimally chosen to be 0.1 (in sigma units; this configuration also determines this parameter in sigma units). Thus, the parameter is set to 0.1, if it is not defined within the configuration.
◆ _tolerance
double coupling::configurations::ParticleInsertionConfiguration::_tolerance |
|
private |
tolerance for USHER stopping criterion. If this is not specified, we set it to _meanPotentialEnergyFactor*2.0.
◆ _uOverlapCoeff
double coupling::configurations::ParticleInsertionConfiguration::_uOverlapCoeff |
|
private |
overlap energy. If not defined in the config, this value is set to 10^4. It is typically given in units of epsilon (energy parameter of the LJ fluid).
The documentation for this class was generated from the following file: