# | Line 45 | Line 45 | |
---|---|---|
45 | #include <string> | |
46 | ||
47 | #include "io/Globals.hpp" | |
48 | + | #include "io/ParamConstraint.hpp" |
49 | + | #include "utils/MemoryUtils.hpp" |
50 | #include "utils/simError.h" | |
51 | ||
50 | – | #include "io/ParamConstraint.hpp" |
51 | – | |
52 | namespace oopse { | |
53 | Globals::Globals() { | |
54 | DefineParameter(ForceField, "forceField") | |
# | Line 57 | Line 57 | Globals::Globals() { | |
57 | DefineOptionalParameter(Ensemble, "ensemble"); | |
58 | DefineOptionalParameter(Dt, "dt"); | |
59 | DefineOptionalParameter(RunTime, "runTime"); | |
60 | < | DefineOptionalParameter(InitialConfig, "initialConfig"); |
60 | > | //DefineOptionalParameter(InitialConfig, "initialConfig"); |
61 | DefineOptionalParameter(FinalConfig, "finalConfig"); | |
62 | DefineOptionalParameter(SampleTime, "sampleTime"); | |
63 | DefineOptionalParameter(ResetTime, "resetTime"); | |
# | Line 98 | Line 98 | Globals::Globals() { | |
98 | DefineOptionalParameter(ElectrostaticScreeningMethod, "electrostaticScreeningMethod"); | |
99 | DefineOptionalParameter(CutoffPolicy, "cutoffPolicy"); | |
100 | DefineOptionalParameter(SwitchingFunctionType, "switchingFunctionType"); | |
101 | < | DefineOptionalParameterWithDefaultValue(MixingRule, "mixingRule", "standard"); |
101 | > | DefineOptionalParameter(HydroPropFile, "HydroPropFile"); |
102 | > | DefineOptionalParameter(Viscosity, "viscosity"); |
103 | > | DefineOptionalParameter(BeadSize, "beadSize"); |
104 | > | DefineOptionalParameter(FrozenBufferRadius, "frozenBufferRadius"); |
105 | > | DefineOptionalParameter(LangevinBufferRadius, "langevinBufferRadius"); |
106 | > | |
107 | DefineOptionalParameterWithDefaultValue(UsePeriodicBoundaryConditions, "usePeriodicBoundaryConditions", true); | |
108 | DefineOptionalParameterWithDefaultValue(UseInitalTime, "useInitialTime", false); | |
109 | DefineOptionalParameterWithDefaultValue(UseIntialExtendedSystemState, "useInitialExtendedSystemState", false); | |
# | Line 113 | Line 118 | Globals::Globals() { | |
118 | DefineOptionalParameterWithDefaultValue(OutputForceVector, "outputForceVector", 0); | |
119 | DefineOptionalParameterWithDefaultValue(SkinThickness, "skinThickness", 1.0); | |
120 | DefineOptionalParameterWithDefaultValue(StatFileFormat, "statFileFormat", "TIME|TOTAL_ENERGY|POTENTIAL_ENERGY|KINETIC_ENERGY|TEMPERATURE|PRESSURE|VOLUME|CONSERVED_QUANTITY"); | |
121 | + | DefineOptionalParameterWithDefaultValue(UseSphericalBoundaryConditions, "useSphericalBoundaryConditions", false); |
122 | + | DefineOptionalParameterWithDefaultValue(AccumulateBoxDipole, "accumulateBoxDipole", false); |
123 | ||
124 | ||
125 | deprecatedKeywords_.insert("nComponents"); | |
126 | deprecatedKeywords_.insert("nZconstraints"); | |
127 | + | deprecatedKeywords_.insert("initialConfig"); |
128 | ||
129 | } | |
130 | ||
131 | Globals::~Globals() { | |
132 | < | |
133 | < | |
132 | > | MemoryUtils::deletePointers(components_); |
133 | > | MemoryUtils::deletePointers(zconstraints_); |
134 | } | |
135 | ||
136 | void Globals::validate() { | |
# | Line 130 | Line 138 | void Globals::validate() { | |
138 | ||
139 | CheckParameter(ForceField, isNotEmpty()); | |
140 | CheckParameter(TargetTemp, isPositive()); | |
141 | < | CheckParameter(Ensemble, isEqualIgnoreCase(std::string("NVE")) || isEqualIgnoreCase(std::string("NVT")) || isEqualIgnoreCase(std::string("NPTi")) || isEqualIgnoreCase(std::string("NPTf")) || isEqualIgnoreCase(std::string("NPTxyz")) ); |
141 | > | CheckParameter(Ensemble, isEqualIgnoreCase("NVE") || isEqualIgnoreCase("NVT") || isEqualIgnoreCase("NPTi") || isEqualIgnoreCase("NPTf") || isEqualIgnoreCase("NPTxyz") || isEqualIgnoreCase("NPAT") || isEqualIgnoreCase("LANGEVINDYNAMICS") || isEqualIgnoreCase("LD") || isEqualIgnoreCase("NPRT") || isEqualIgnoreCase("NPGT") || isEqualIgnoreCase("NGammaT") || isEqualIgnoreCase("NGT")); |
142 | CheckParameter(Dt, isPositive()); | |
143 | CheckParameter(RunTime, isPositive()); | |
144 | < | CheckParameter(InitialConfig, isNotEmpty()); |
144 | > | //CheckParameter(InitialConfig, isNotEmpty()); |
145 | CheckParameter(FinalConfig, isNotEmpty()); | |
146 | CheckParameter(SampleTime, isNonNegative()); | |
147 | CheckParameter(ResetTime, isNonNegative()); | |
# | Line 142 | Line 150 | void Globals::validate() { | |
150 | CheckParameter(SwitchingRadius, isNonNegative()); | |
151 | CheckParameter(Dielectric, isPositive()); | |
152 | CheckParameter(ThermalTime, isNonNegative()); | |
153 | < | CheckParameter(TargetPressure, isPositive()); |
153 | > | // CheckParameter(TargetPressure, isPositive()); |
154 | CheckParameter(TauThermostat, isPositive()); | |
155 | CheckParameter(TauBarostat, isPositive()); | |
156 | CheckParameter(ZconsTime, isPositive()); | |
157 | CheckParameter(ZconsTol, isPositive()); | |
158 | CheckParameter(Seed, isPositive()); | |
159 | < | CheckParameter(Minimizer, isEqualIgnoreCase(std::string("SD")) || isEqualIgnoreCase(std::string("CG"))); |
159 | > | CheckParameter(Minimizer, isEqualIgnoreCase("SD") || isEqualIgnoreCase("CG")); |
160 | CheckParameter(MinimizerMaxIter, isPositive()); | |
161 | CheckParameter(MinimizerWriteFrq, isPositive()); | |
162 | CheckParameter(MinimizerStepSize, isPositive()); | |
# | Line 158 | Line 166 | void Globals::validate() { | |
166 | CheckParameter(MinimizerLSMaxIter, isPositive()); | |
167 | CheckParameter(ZconsGap, isPositive()); | |
168 | CheckParameter(ZconsFixtime, isPositive()); | |
169 | < | CheckParameter(ThermodynamicIntegrationLambda, isPositive()); |
169 | > | CheckParameter(ThermodynamicIntegrationLambda, isNonNegative()); |
170 | CheckParameter(ThermodynamicIntegrationK, isPositive()); | |
171 | CheckParameter(ForceFieldVariant, isNotEmpty()); | |
172 | CheckParameter(ForceFieldFileName, isNotEmpty()); | |
173 | CheckParameter(ThermIntDistSpringConst, isPositive()); | |
174 | CheckParameter(ThermIntThetaSpringConst, isPositive()); | |
175 | CheckParameter(ThermIntOmegaSpringConst, isPositive()); | |
176 | < | CheckParameter(SurfaceTension, isPositive()); |
177 | < | CheckParameter(ElectrostaticSummationMethod, isEqualIgnoreCase(std::string("NONE")) || isEqualIgnoreCase(std::string("SHIFTED_POTENTIAL")) || isEqualIgnoreCase(std::string("SHIFTED_FORCE")) || isEqualIgnoreCase(std::string("REACTION_FIELD"))); |
178 | < | CheckParameter(ElectrostaticScreeningMethod, isEqualIgnoreCase(std::string("UNDAMPED")) || isEqualIgnoreCase(std::string("DAMPED"))); |
179 | < | CheckParameter(CutoffPolicy, isEqualIgnoreCase(std::string("MIX")) || isEqualIgnoreCase(std::string("MAX")) || isEqualIgnoreCase(std::string("TRADITIONAL"))); |
180 | < | CheckParameter(SwitchingFunctionType, isEqualIgnoreCase(std::string("CUBIC")) || isEqualIgnoreCase(std::string("FIFTH_ORDER_POLYNOMIAL"))); |
176 | > | // CheckParameter(SurfaceTension, isNonNegative()); |
177 | > | CheckParameter(ElectrostaticSummationMethod, isEqualIgnoreCase("NONE") || isEqualIgnoreCase("SHIFTED_POTENTIAL") || isEqualIgnoreCase("SHIFTED_FORCE") || isEqualIgnoreCase("REACTION_FIELD")); |
178 | > | CheckParameter(ElectrostaticScreeningMethod, isEqualIgnoreCase("UNDAMPED") || isEqualIgnoreCase("DAMPED")); |
179 | > | CheckParameter(CutoffPolicy, isEqualIgnoreCase("MIX") || isEqualIgnoreCase("MAX") || isEqualIgnoreCase("TRADITIONAL")); |
180 | > | CheckParameter(SwitchingFunctionType, isEqualIgnoreCase("CUBIC") || isEqualIgnoreCase("FIFTH_ORDER_POLYNOMIAL")); |
181 | //CheckParameter(StatFileFormat,); | |
174 | – | //CheckParameter(MixingRule,); |
182 | CheckParameter(OrthoBoxTolerance, isPositive()); | |
183 | CheckParameter(ThermIntDistSpringConst, isPositive()); | |
184 | CheckParameter(ThermIntThetaSpringConst, isPositive()); | |
185 | CheckParameter(ThermIntOmegaSpringConst, isPositive()); | |
186 | CheckParameter(DampingAlpha,isNonNegative()); | |
187 | CheckParameter(SkinThickness, isPositive()); | |
188 | < | |
188 | > | CheckParameter(Viscosity, isNonNegative()); |
189 | > | CheckParameter(BeadSize, isPositive()); |
190 | > | CheckParameter(FrozenBufferRadius, isPositive()); |
191 | > | CheckParameter(LangevinBufferRadius, isPositive()); |
192 | for(std::vector<Component*>::iterator i = components_.begin(); i != components_.end(); ++i) { | |
193 | if (!(*i)->findMoleculeStamp(moleculeStamps_)) { | |
194 | < | std::cout << "Globals Error: can not find molecule stamp for component" << std::endl; |
194 | > | std::ostringstream oss; |
195 | > | oss << "Globals Error: can not find molecule stamp for component " << (*i)->getType() << std::endl; |
196 | > | throw OOPSEException(oss.str()); |
197 | } | |
198 | } | |
199 | } | |
# | Line 205 | Line 217 | bool Globals::addMoleculeStamp(MoleculeStamp* molStamp | |
217 | moleculeStamps_.insert(std::map<std::string, MoleculeStamp*>::value_type(molStampName, molStamp)); | |
218 | ret = true; | |
219 | } else { | |
220 | < | |
220 | > | std::ostringstream oss; |
221 | > | oss << "Globals Error: Molecule Stamp " << molStamp->getName() << "appears multiple times\n"; |
222 | > | throw OOPSEException(oss.str()); |
223 | } | |
224 | return ret; | |
225 | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |