本文整理汇总了C++中Globals::getComponents方法的典型用法代码示例。如果您正苦于以下问题:C++ Globals::getComponents方法的具体用法?C++ Globals::getComponents怎么用?C++ Globals::getComponents使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Globals
的用法示例。
在下文中一共展示了Globals::getComponents方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
//.........这里部分代码省略.........
sprintf(painCave.errMsg, "Removing %d atoms from randomly-selected\n"
"\tsites between %lf and %lf.", (int) vacancyTargets.size(),
vIR, vOR);
painCave.isFatal = 0;
painCave.severity = OPENMD_INFO;
simError();
isVacancy.clear();
for (std::size_t i = 0; i < sites.size(); i++) {
bool vac = false;
for (std::size_t j = 0; j < vacancyTargets.size(); j++) {
if (i == vacancyTargets[j]) vac = true;
}
isVacancy.push_back(vac);
}
} else {
sprintf(painCave.errMsg, "Something is strange about the vacancy\n"
"\tinner or outer radii. Check their values.");
painCave.isFatal = 1;
simError();
}
}
}
/* Get number of lattice sites */
std::size_t nSites = sites.size() - vacancyTargets.size();
// cerr << "sites.size() = " << sites.size() << "\n";
// cerr << "nSites = " << nSites << "\n";
// cerr << "vacancyTargets = " << vacancyTargets.size() << "\n";
std::vector<Component*> components = simParams->getComponents();
std::vector<RealType> molFractions;
std::vector<RealType> shellRadii;
std::vector<int> nMol;
std::map<int, int> componentFromSite;
nComponents = components.size();
// cerr << "nComponents = " << nComponents << "\n";
if (args_info.molFraction_given && args_info.shellRadius_given) {
sprintf(painCave.errMsg, "Specify either molFraction or shellRadius "
"arguments, but not both!");
painCave.isFatal = 1;
simError();
}
if (nComponents == 1) {
molFractions.push_back(1.0);
shellRadii.push_back(rodRadius);
} else if (args_info.molFraction_given) {
if ((int)args_info.molFraction_given == nComponents) {
for (int i = 0; i < nComponents; i++) {
molFractions.push_back(args_info.molFraction_arg[i]);
}
} else if ((int)args_info.molFraction_given == nComponents-1) {
RealType remainingFraction = 1.0;
for (int i = 0; i < nComponents-1; i++) {
molFractions.push_back(args_info.molFraction_arg[i]);
remainingFraction -= molFractions[i];
}
molFractions.push_back(remainingFraction);
} else {
sprintf(painCave.errMsg, "nanorodBuilder can't figure out molFractions "
"for all of the components in the <MetaData> block.");
示例2: main
int main(int argc, char* argv[]){
gengetopt_args_info args_info;
string dumpFileName;
string outFileName;
//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){
outFileName = args_info.output_arg;
} else {
strcpy( painCave.errMsg,
"No output file name was specified.\n" );
painCave.isFatal = 1;
simError();
}
Vector3i repeat = Vector3i(args_info.repeatX_arg,
args_info.repeatY_arg,
args_info.repeatZ_arg);
Mat3x3d repeatD = Mat3x3d(0.0);
repeatD(0,0) = repeat.x();
repeatD(1,1) = repeat.y();
repeatD(2,2) = repeat.z();
Vector3d translate = Vector3d(args_info.translateX_arg,
args_info.translateY_arg,
args_info.translateZ_arg);
//parse md file and set up the system
SimCreator oldCreator;
SimInfo* oldInfo = oldCreator.createSim(dumpFileName, false);
Globals* simParams = oldInfo->getSimParams();
std::vector<Component*> components = simParams->getComponents();
std::vector<int> nMol;
for (vector<Component*>::iterator i = components.begin();
i !=components.end(); ++i) {
int nMolOld = (*i)->getNMol();
int nMolNew = nMolOld * repeat.x() * repeat.y() * repeat.z();
nMol.push_back(nMolNew);
}
createMdFile(dumpFileName, outFileName, nMol);
SimCreator newCreator;
SimInfo* newInfo = newCreator.createSim(outFileName, false);
DumpReader* dumpReader = new DumpReader(oldInfo, dumpFileName);
int nframes = dumpReader->getNFrames();
DumpWriter* writer = new DumpWriter(newInfo, outFileName);
if (writer == NULL) {
sprintf(painCave.errMsg, "error in creating DumpWriter");
painCave.isFatal = 1;
simError();
}
SimInfo::MoleculeIterator miter;
Molecule::IntegrableObjectIterator iiter;
Molecule::RigidBodyIterator rbIter;
Molecule* mol;
StuntDouble* sd;
StuntDouble* sdNew;
RigidBody* rb;
Mat3x3d oldHmat;
Mat3x3d newHmat;
Snapshot* oldSnap;
Snapshot* newSnap;
Vector3d oldPos;
Vector3d newPos;
for (int i = 0; i < nframes; i++){
cerr << "frame = " << i << "\n";
dumpReader->readFrame(i);
oldSnap = oldInfo->getSnapshotManager()->getCurrentSnapshot();
newSnap = newInfo->getSnapshotManager()->getCurrentSnapshot();
newSnap->setID( oldSnap->getID() );
newSnap->setTime( oldSnap->getTime() );
oldHmat = oldSnap->getHmat();
newHmat = repeatD*oldHmat;
newSnap->setHmat(newHmat);
newSnap->setThermostat( oldSnap->getThermostat() );
newSnap->setBarostat( oldSnap->getBarostat() );
//.........这里部分代码省略.........