MaMiCo 1.2
Loading...
Searching...
No Matches
ParticleInsertionConfiguration.h
1// Copyright (C) 2015 Technische Universitaet Muenchen
2// This file is part of the Mamico project. For conditions of distribution
3// and use, please see the copyright notice in Mamico's main folder, or at
4// www5.in.tum.de/mamico
5#ifndef _MOLECULARDYNAMICS_COUPLING_CONFIGURATIONS_PARTICLEINSERTIONCONFIGURATION_H_
6#define _MOLECULARDYNAMICS_COUPLING_CONFIGURATIONS_PARTICLEINSERTIONCONFIGURATION_H_
7
8#include "coupling/NoParticleInsertion.h"
9#include "coupling/UsherParticleInsertion.h"
10#include "coupling/interface/MDSolverInterface.h"
11#include "tarch/configuration/Configuration.h"
12#include "tarch/configuration/ParseConfiguration.h"
13#include "tarch/la/Vector.h"
14#include <iostream>
15
16namespace coupling {
17namespace configurations {
19}
20} // namespace coupling
21
29public:
34
37
42
46 std::string getTag() const;
47
56 bool isValid() const;
57
64 template <class LinkedCell, unsigned int dim>
70 mdSolverInterface);
73 }
74
75 // this case should never appear
76 return NULL;
77 }
78
86
91
92protected:
93 ParticleInsertionConfiguration(unsigned int insertDeleteMassEveryTimestep, double rSigmaCoeff, double meanPotentialEnergyFactor, double uOverlapCoeff,
94 double stepRefCoeff, unsigned int iterMax, unsigned int restartMax, double tolerance, double offsetFromOuterBoundary,
95 ParticleInsertionType particleInsertionType)
96 : _insertDeleteMassEveryTimestep(insertDeleteMassEveryTimestep), _rSigmaCoeff(rSigmaCoeff), _meanPotentialEnergyFactor(meanPotentialEnergyFactor),
97 _uOverlapCoeff(uOverlapCoeff), _stepRefCoeff(stepRefCoeff), _iterMax(iterMax), _restartMax(restartMax), _tolerance(tolerance),
98 _offsetFromOuterBoundary(offsetFromOuterBoundary), _particleInsertionType(particleInsertionType) {};
99
100private:
101 static const std::string INSERT_DELETE_MASS_EVERY_TIMESTEP;
102 static const std::string RSIGMA_COEFF;
103 static const std::string MEAN_POTENTIAL_ENERGY_FACTOR;
104 static const std::string UOVERLAP_COEFF;
105 static const std::string STEPREF_COEFF;
106 static const std::string ITER_MAX;
107 static const std::string RESTART_MAX;
108 static const std::string TOLERANCE;
109 static const std::string OFFSET_FROM_OUTER_BOUNDARY;
110
116
125 double _meanPotentialEnergyFactor;
126
132
141
143 unsigned int _iterMax;
144
146 unsigned int _restartMax;
147
152
160
163};
164#endif // _MOLECULARDYNAMICS_COUPLING_CONFIGURATIONS_PARTICLEINSERTIONCONFIGURATION_H_
empty implementation of particle insertion (no particle insertion/removal).
Definition NoParticleInsertion.h:22
interface for particle insertion/removal on coupling cell basis.
Definition ParticleInsertion.h:23
handles particle insertion (via Usher algorithm) and random particle deletion.
Definition UsherParticleInsertion.h:36
configuration for particle insertion algorithm (e.g.: USHER).
Definition ParticleInsertionConfiguration.h:28
unsigned int _restartMax
Definition ParticleInsertionConfiguration.h:146
double _tolerance
Definition ParticleInsertionConfiguration.h:151
double _uOverlapCoeff
Definition ParticleInsertionConfiguration.h:131
ParticleInsertionConfiguration()
Definition ParticleInsertionConfiguration.h:31
unsigned int _insertDeleteMassEveryTimestep
Definition ParticleInsertionConfiguration.h:115
virtual ~ParticleInsertionConfiguration()
Definition ParticleInsertionConfiguration.h:36
double _offsetFromOuterBoundary
Definition ParticleInsertionConfiguration.h:159
unsigned int _iterMax
Definition ParticleInsertionConfiguration.h:143
ParticleInsertionType _particleInsertionType
Definition ParticleInsertionConfiguration.h:162
ParticleInsertionType getParticleInsertionType() const
Definition ParticleInsertionConfiguration.h:90
coupling::ParticleInsertion< LinkedCell, dim > * interpreteConfiguration(coupling::interface::MDSolverInterface< LinkedCell, dim > *const mdSolverInterface) const
Definition ParticleInsertionConfiguration.h:66
ParticleInsertionType
Definition ParticleInsertionConfiguration.h:82
@ NO_INSERTION
Definition ParticleInsertionConfiguration.h:84
@ USHER
Definition ParticleInsertionConfiguration.h:83
double _stepRefCoeff
Definition ParticleInsertionConfiguration.h:140
double _rSigmaCoeff
Definition ParticleInsertionConfiguration.h:124
interface to the MD simulation
Definition MDSolverInterface.h:25
Definition Configuration.h:22
Definition tinyxml2.h:1268
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15