| 99 |  | DefineOptionalParameter(CutoffPolicy, "cutoffPolicy"); | 
| 100 |  | DefineOptionalParameter(SwitchingFunctionType, "switchingFunctionType"); | 
| 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); | 
| 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"); | 
| 137 |  |  | 
| 138 |  | CheckParameter(ForceField, isNotEmpty()); | 
| 139 |  | CheckParameter(TargetTemp, isPositive()); | 
| 140 | < | CheckParameter(Ensemble, isEqualIgnoreCase("NVE") || isEqualIgnoreCase("NVT") || isEqualIgnoreCase("NPTi") || isEqualIgnoreCase("NPTf") || isEqualIgnoreCase("NPTxyz") || isEqualIgnoreCase("NPAT")  || isEqualIgnoreCase("LANGEVINDYNAMICS") ); | 
| 140 | > | CheckParameter(Ensemble, isEqualIgnoreCase("NVE") || isEqualIgnoreCase("NVT") || isEqualIgnoreCase("NPTi") || isEqualIgnoreCase("NPTf") || isEqualIgnoreCase("NPTxyz") || isEqualIgnoreCase("NPAT")  || isEqualIgnoreCase("LANGEVINDYNAMICS") || isEqualIgnoreCase("LD") || isEqualIgnoreCase("NPRT") || isEqualIgnoreCase("NPGT")); | 
| 141 |  | CheckParameter(Dt, isPositive()); | 
| 142 |  | CheckParameter(RunTime, isPositive()); | 
| 143 |  | CheckParameter(InitialConfig, isNotEmpty()); | 
| 165 |  | CheckParameter(MinimizerLSMaxIter, isPositive()); | 
| 166 |  | CheckParameter(ZconsGap, isPositive()); | 
| 167 |  | CheckParameter(ZconsFixtime, isPositive()); | 
| 168 | < | CheckParameter(ThermodynamicIntegrationLambda, isPositive()); | 
| 168 | > | CheckParameter(ThermodynamicIntegrationLambda, isNonNegative()); | 
| 169 |  | CheckParameter(ThermodynamicIntegrationK, isPositive()); | 
| 170 |  | CheckParameter(ForceFieldVariant, isNotEmpty()); | 
| 171 |  | CheckParameter(ForceFieldFileName, isNotEmpty()); | 
| 172 |  | CheckParameter(ThermIntDistSpringConst, isPositive()); | 
| 173 |  | CheckParameter(ThermIntThetaSpringConst, isPositive()); | 
| 174 |  | CheckParameter(ThermIntOmegaSpringConst, isPositive()); | 
| 175 | < | CheckParameter(SurfaceTension, isPositive()); | 
| 175 | > | CheckParameter(SurfaceTension, isNonNegative()); | 
| 176 |  | CheckParameter(ElectrostaticSummationMethod, isEqualIgnoreCase("NONE") || isEqualIgnoreCase("SHIFTED_POTENTIAL") || isEqualIgnoreCase("SHIFTED_FORCE") || isEqualIgnoreCase("REACTION_FIELD")); | 
| 177 |  | CheckParameter(ElectrostaticScreeningMethod, isEqualIgnoreCase("UNDAMPED") || isEqualIgnoreCase("DAMPED")); | 
| 178 |  | CheckParameter(CutoffPolicy, isEqualIgnoreCase("MIX") || isEqualIgnoreCase("MAX") || isEqualIgnoreCase("TRADITIONAL")); | 
| 184 |  | CheckParameter(ThermIntOmegaSpringConst, isPositive()); | 
| 185 |  | CheckParameter(DampingAlpha,isNonNegative()); | 
| 186 |  | CheckParameter(SkinThickness, isPositive()); | 
| 187 | < |  | 
| 187 | > | CheckParameter(Viscosity, isNonNegative()); | 
| 188 | > | CheckParameter(BeadSize, isPositive()); | 
| 189 | > | CheckParameter(FrozenBufferRadius, isPositive()); | 
| 190 | > | CheckParameter(LangevinBufferRadius, isPositive()); | 
| 191 |  | for(std::vector<Component*>::iterator i = components_.begin(); i != components_.end(); ++i) { | 
| 192 |  | if (!(*i)->findMoleculeStamp(moleculeStamps_)) { | 
| 193 |  | std::ostringstream oss; |