本文整理汇总了C++中AtomVec::size方法的典型用法代码示例。如果您正苦于以下问题:C++ AtomVec::size方法的具体用法?C++ AtomVec::size怎么用?C++ AtomVec::size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AtomVec
的用法示例。
在下文中一共展示了AtomVec::size方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: writefile
void writefile(ofstream& outf, AtomVec& atoms, Box& bx){
// The .xyz format is simple:
// Line 1: [Number of atoms]
// Line 2: [Comment line, whatever you want, left blank here]
// Line 3: [element type, here C for carbon]\t[x]\t[y]\t[z]
// Line 4: [element type, here C for carbon]\t[x]\t[y]\t[z]
// ...
// Line N+1: [element type, here C for carbon]\t[x]\t[y]\t[z]
// Line N+2: [element type, here C for carbon]\t[x]\t[y]\t[z]
// Line N+3: [Number of atoms]
// Line N+4: [Comment line, whatever you want, left blank here]
// Line N+5: [element type, here C for carbon]\t[x]\t[y]\t[z]
// ...
// And so on. each set of N atoms/coordinates corresponds to a "frame",
// which then make a movie. There must be the same N in each frame for VMD.
// Note that if this is compiled as a 2D simulation, it will leave out
// the z coordinate, and VMD can't handle that.
outf << atoms.size() << endl;
outf << endl; // blank line for comment
for(uint i=0; i<atoms.size(); i++){
outf << "C";
Vec normloc = bx.diff(Vec::Zero(), atoms[i].x);
for(uint j=0; j<NDIM; j++){
outf << "\t" << normloc[j];
}
outf << endl;
};
};
示例2: writefile
void writefile(AtomVec& atoms, OriginBox& obox){
// The .xyz format is simple:
// Line 1: [Number of atoms]
// Line 2: [Comment line, whatever you want, left blank here]
// Line 3: [element type, here C for carbon]\t[x]\t[y]\t[z]
// Line 4: [element type, here C for carbon]\t[x]\t[y]\t[z]
// ...
// Line N+1: [element type, here C for carbon]\t[x]\t[y]\t[z]
// Line N+2: [element type, here C for carbon]\t[x]\t[y]\t[z]
// Line N+3: [Number of atoms]
// Line N+4: [Comment line, whatever you want, left blank here]
// Line N+5: [element type, here C for carbon]\t[x]\t[y]\t[z]
// ...
// And so on. each set of N atoms/coordinates corresponds to a "frame",
// which then make a movie. There must be the same N in each frame for VMD.
// Note that if this is compiled as a 2D simulation, it will leave out
// the z coordinate, and VMD can't handle that.
ofstream outf;
outf.open("packing.xyz", ios::out);
outf.precision(24);
outf << atoms.size() << endl;
outf << "L=" << obox.L() << endl; // blank line for comment
for(uint i=0; i<atoms.size(); i++){
if(i < Ns){
outf << "C";
} else {
outf << "O";
}
Vec normloc = obox.diff(Vec::Zero(), atoms[i].x);
for(uint j=0; j<NDIM; j++){
outf << "\t" << normloc[j];
}
outf << endl;
};
// Unnecessary extra:
// Write a "tcl" file with the box boundaries
// the "tcl" file is made specifically for VMD
ofstream pbcfile;
pbcfile.open("packing.tcl", ios::out);
pbcfile << "set cell [pbc set {";
for(uint j=0; j<NDIM; j++){
pbcfile << obox.box_shape()[j] << " ";
}
pbcfile << "} -all];\n";
pbcfile << "pbc box -toggle -center origin -color red;\n";
pbcfile << "set natoms [atomselect 0 \"name C\";];\n"
<< "$natoms set radius " << (sigma/2.0) << ";\n"
<< "set natoms [atomselect 0 \"name O\";];\n"
<< "$natoms set radius " << (sigmal/2.0) << ";\n";
// Now you should be able to run "vmd -e LJatoms-pbc.tcl LJatoms.xyz"
// and it will show you the movie and also the bounding box
// if you have .vmdrc in that same directory, you should also be able
// to toggle the box with the "b" button
};