本文整理汇总了C++中Globals::haveTargetTemp方法的典型用法代码示例。如果您正苦于以下问题:C++ Globals::haveTargetTemp方法的具体用法?C++ Globals::haveTargetTemp怎么用?C++ Globals::haveTargetTemp使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Globals
的用法示例。
在下文中一共展示了Globals::haveTargetTemp方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: VelocityVerletIntegrator
NPT::NPT(SimInfo* info) :
VelocityVerletIntegrator(info), etaTolerance(1e-6), chiTolerance(1e-6),
maxIterNum_(4) {
Globals* simParams = info_->getSimParams();
if (!simParams->getUseIntialExtendedSystemState()) {
Snapshot* currSnapshot = info_->getSnapshotManager()->getCurrentSnapshot();
currSnapshot->setThermostat(make_pair(0.0, 0.0));
currSnapshot->setBarostat(Mat3x3d(0.0));
}
if (!simParams->haveTargetTemp()) {
sprintf(painCave.errMsg, "You can't use the NVT integrator without a targetTemp!\n");
painCave.isFatal = 1;
painCave.severity = OPENMD_ERROR;
simError();
} else {
targetTemp = simParams->getTargetTemp();
}
// We must set tauThermostat
if (!simParams->haveTauThermostat()) {
sprintf(painCave.errMsg, "If you use the constant temperature\n"
"\tintegrator, you must set tauThermostat.\n");
painCave.severity = OPENMD_ERROR;
painCave.isFatal = 1;
simError();
} else {
tauThermostat = simParams->getTauThermostat();
}
if (!simParams->haveTargetPressure()) {
sprintf(painCave.errMsg, "NPT error: You can't use the NPT integrator\n"
" without a targetPressure!\n");
painCave.isFatal = 1;
simError();
} else {
targetPressure = simParams->getTargetPressure();
}
if (!simParams->haveTauBarostat()) {
sprintf(painCave.errMsg,
"If you use the NPT integrator, you must set tauBarostat.\n");
painCave.severity = OPENMD_ERROR;
painCave.isFatal = 1;
simError();
} else {
tauBarostat = simParams->getTauBarostat();
}
tt2 = tauThermostat * tauThermostat;
tb2 = tauBarostat * tauBarostat;
updateSizes();
}
示例2: main
int main(int argc, char* argv[]){
registerHydrodynamicsModels();
gengetopt_args_info args_info;
std::string dumpFileName;
std::string mdFileName;
std::string prefix;
//parse the command line option
if (cmdline_parser (argc, argv, &args_info) != 0) {
exit(1) ;
}
//get the dumpfile name and meta-data file name
if (args_info.input_given){
dumpFileName = args_info.input_arg;
} else {
strcpy( painCave.errMsg,
"No input file name was specified.\n" );
painCave.isFatal = 1;
simError();
}
if (args_info.output_given){
prefix = args_info.output_arg;
} else {
prefix = getPrefix(dumpFileName);
}
std::string outputFilename = prefix + ".diff";
//parse md file and set up the system
SimCreator creator;
SimInfo* info = creator.createSim(dumpFileName, true);
SimInfo::MoleculeIterator mi;
Molecule* mol;
Molecule::IntegrableObjectIterator ii;
StuntDouble* sd;
Mat3x3d identMat;
identMat(0,0) = 1.0;
identMat(1,1) = 1.0;
identMat(2,2) = 1.0;
Globals* simParams = info->getSimParams();
RealType temperature(0.0);
RealType viscosity(0.0);
if (simParams->haveViscosity()) {
viscosity = simParams->getViscosity();
} else {
sprintf(painCave.errMsg, "viscosity must be set\n");
painCave.isFatal = 1;
simError();
}
if (simParams->haveTargetTemp()) {
temperature = simParams->getTargetTemp();
} else {
sprintf(painCave.errMsg, "target temperature must be set\n");
painCave.isFatal = 1;
simError();
}
std::map<std::string, SDShape> uniqueStuntDoubles;
for (mol = info->beginMolecule(mi); mol != NULL;
mol = info->nextMolecule(mi)) {
for (sd = mol->beginIntegrableObject(ii); sd != NULL;
sd = mol->nextIntegrableObject(ii)) {
if (uniqueStuntDoubles.find(sd->getType()) == uniqueStuntDoubles.end()) {
sd->setPos(V3Zero);
sd->setA(identMat);
if (sd->isRigidBody()) {
RigidBody* rb = static_cast<RigidBody*>(sd);
rb->updateAtoms();
}
SDShape tmp;
tmp.shape = ShapeBuilder::createShape(sd);
tmp.sd = sd;
uniqueStuntDoubles.insert(std::map<std::string, SDShape>::value_type(sd->getType(), tmp));
}
}
}
std::map<std::string, SDShape>::iterator si;
for (si = uniqueStuntDoubles.begin(); si != uniqueStuntDoubles.end(); ++si) {
HydrodynamicsModel* model;
Shape* shape = si->second.shape;
StuntDouble* sd = si->second.sd;;
if (args_info.model_given) {
model = HydrodynamicsModelFactory::getInstance()->createHydrodynamicsModel(args_info.model_arg, sd, info);
} else if (shape->hasAnalyticalSolution()) {
model = new AnalyticalModel(sd, info);
//.........这里部分代码省略.........