4#ifndef _MOLECULARDYNAMICS_COUPLING_CONFIGURATIONS_MAMICOCONFIGURATION_H_
5#define _MOLECULARDYNAMICS_COUPLING_CONFIGURATIONS_MAMICOCONFIGURATION_H_
7#include "coupling/configurations/BoundaryForceConfiguration.h"
8#include "coupling/configurations/CouplingCellConfiguration.h"
9#include "coupling/configurations/MomentumInsertionConfiguration.h"
10#include "coupling/configurations/ParallelTopologyConfiguration.h"
11#include "coupling/configurations/ParticleInsertionConfiguration.h"
12#include "coupling/configurations/ThermostatConfiguration.h"
13#include "coupling/configurations/TimeIntegrationConfiguration.h"
14#include "coupling/configurations/TransferStrategyConfiguration.h"
15#include "tarch/configuration/Configuration.h"
16#include "tarch/la/Vector.h"
20namespace configurations {
35 : _isValid(true), _isDefinedParticleInsertion(false), _isDefinedMomentumInsertion(false), _isDefinedBoundaryForce(false),
36 _isDefinedTransferStrategy(false), _isDefinedParallelTopology(false), _isDefinedThermostat(false) {}
49 std::string
getTag()
const {
return "mamico"; }
74 if (!_isDefinedParticleInsertion) {
75 std::cout <<
"ERROR coupling::configurations::MaMiCoConfiguration: "
76 "Particle insertion not defined!"
80 return _particleInsertionConfiguration;
87 if (!_isDefinedMomentumInsertion) {
88 std::cout <<
"ERROR coupling::configurations::MaMiCoConfiguration: "
89 "Momentum insertion not defined!"
93 return _momentumInsertionConfiguration;
100 if (!_isDefinedBoundaryForce) {
101 std::cout <<
"ERROR coupling::configurations::MaMiCoConfiguration: "
102 "Boundary force not defined!"
106 return _boundaryForceConfiguration;
113 if (!_isDefinedTransferStrategy) {
114 std::cout <<
"ERROR coupling::configurations::MaMiCoConfiguration: "
115 "Transfer-Strategy not defined!"
119 return _transferStrategyConfiguration;
126 if (!_isDefinedParallelTopology) {
127 std::cout <<
"ERROR coupling::configurations::MaMiCoConfiguration: "
128 "Parallel-Topology not defined!"
132 return _parallelTopologyConfiguration;
140 return _timeIntegrationConfiguration;
147 if (!_isDefinedThermostat) {
148 std::cout <<
"ERROR coupling::configurations::MaMiCoConfiguration: "
149 "Thermostat not defined!"
153 return _thermostatConfiguration;
166 bool _isDefinedParticleInsertion;
167 bool _isDefinedMomentumInsertion;
168 bool _isDefinedBoundaryForce;
169 bool _isDefinedTransferStrategy;
170 bool _isDefinedParallelTopology;
171 bool _isDefinedThermostat;
173#include "coupling/configurations/MaMiCoConfiguration.cpph"
reads boundary force tag
Definition BoundaryForceConfiguration.h:27
configuration for output of coupling cell data to vtk files.
Definition CouplingCellConfiguration.h:24
parses all sub-tags for MaMiCo configuration.
Definition MaMiCoConfiguration.h:31
virtual ~MaMiCoConfiguration()
Definition MaMiCoConfiguration.h:39
const coupling::configurations::MomentumInsertionConfiguration & getMomentumInsertionConfiguration() const
Definition MaMiCoConfiguration.h:86
MaMiCoConfiguration()
Definition MaMiCoConfiguration.h:34
const coupling::configurations::ThermostatConfiguration & getThermostatConfiguration() const
Definition MaMiCoConfiguration.h:146
const coupling::configurations::TimeIntegrationConfiguration & getTimeIntegrationConfiguration() const
Definition MaMiCoConfiguration.h:138
const coupling::configurations::BoundaryForceConfiguration< dim > & getBoundaryForceConfiguration() const
Definition MaMiCoConfiguration.h:99
const coupling::configurations::ParticleInsertionConfiguration & getParticleInsertionConfiguration() const
Definition MaMiCoConfiguration.h:73
const coupling::configurations::ParallelTopologyConfiguration & getParallelTopologyConfiguration() const
Definition MaMiCoConfiguration.h:125
const coupling::configurations::TransferStrategyConfiguration< dim > & getTransferStrategyConfiguration() const
Definition MaMiCoConfiguration.h:112
bool isValid() const
Definition MaMiCoConfiguration.h:63
std::string getTag() const
Definition MaMiCoConfiguration.h:49
void parseSubtag(tinyxml2::XMLElement *node)
const coupling::configurations::CouplingCellConfiguration< dim > & getCouplingCellConfiguration() const
Definition MaMiCoConfiguration.h:68
momentum insertion configuration. friend class: NieTest
Definition MomentumInsertionConfiguration.h:31
reads parallel topology configuration. XYZ and ZYX are supported.
Definition ParallelTopologyConfiguration.h:25
configuration for particle insertion algorithm (e.g.: USHER).
Definition ParticleInsertionConfiguration.h:28
Definition ThermostatConfiguration.h:23
reads time integration configuration
Definition TimeIntegrationConfiguration.h:23
transfer strategy configuration, i.e. algorithm/combin. of quantity transfer steps and quantity inter...
Definition TransferStrategyConfiguration.h:34
Definition Configuration.h:22
Definition tinyxml2.h:1268
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15