5#ifndef _MOLECULARDYNAMICS_COUPLING_CONFIGURATIONS_THERMOSTATCONFIGURATION_H_
6#define _MOLECULARDYNAMICS_COUPLING_CONFIGURATIONS_THERMOSTATCONFIGURATION_H_
8#include "coupling/paralleltopology/ParallelTopologyFactory.h"
9#include "tarch/configuration/Configuration.h"
10#include "tarch/configuration/ParseConfiguration.h"
11#include "tarch/la/Vector.h"
15namespace configurations {
25 enum ThermostatRegion { onlyOutestLayer, outerLayers, all, nowhere, none };
26 ThermostatConfiguration() : _type{none}, _isValid(
true) {}
28 virtual ~ThermostatConfiguration() {}
33 if (value ==
"onlyOutestLayer") {
34 _type = onlyOutestLayer;
35 }
else if (value ==
"outerLayers") {
39 std::cout <<
"ERROR coupling::ThermostatConfiguration: Wrong number of cells to use!" << std::endl;
43 }
else if (value ==
"all") {
45 }
else if (value ==
"nowhere") {
48 std::cout <<
"ERROR coupling::ThermostatConfiguration: Wrong type!" << std::endl;
57 std::string
getTag()
const {
return "thermostat"; }
72 ThermostatRegion getThermostatRegionType()
const {
return _type; }
74 unsigned int getCells2Use()
const {
return _cells; }
77 ThermostatConfiguration(ThermostatRegion type) : _type{type}, _isValid(true) {}
80 ThermostatRegion _type;
Definition ThermostatConfiguration.h:23
std::string getTag() const
Definition ThermostatConfiguration.h:57
bool isValid() const
Definition ThermostatConfiguration.h:70
void parseSubtag(tinyxml2::XMLElement *node)
Definition ThermostatConfiguration.h:30
Definition Configuration.h:22
static void readStringMandatory(std::string &storage, tinyxml2::XMLElement *node, std::string tag)
Definition ParseConfiguration.h:201
static void readIntMandatory(int &storage, tinyxml2::XMLElement *node, std::string tag)
Definition ParseConfiguration.h:115
Definition tinyxml2.h:1268
everything necessary for coupling operations, is defined in here
Definition AdditiveMomentumInsertion.h:15