ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/OpenMD/trunk/src/openbabel/oopseformat.cpp
(Generate patch)

Comparing trunk/src/openbabel/oopseformat.cpp (file contents):
Revision 1021 by gezelter, Wed Aug 2 19:40:39 2006 UTC vs.
Revision 1080 by gezelter, Thu Oct 19 19:51:34 2006 UTC

# Line 179 | Line 179 | struct SameAngle
179    }
180    
181    void OOPSEFormat::WriteMDFile(vector<OBMol*> mols, vector<int> numMols, ostream& os, OBMol& mol, vector<int>& indices) {
182 <    std::string indentLevel1("\t");
183 <    std::string indentLevel2("\t\t");
182 >    std::string indentLevel1("  ");
183 >    std::string indentLevel2("    ");
184      std::string molPrefix("MolName");
185      unsigned int i;
186      const int BUFFLEN = 1024;
187      char buffer[BUFFLEN];
188 +    string str, str1;
189      
190      
191      os << "<OOPSE version=4>" << endl;
192 <    os << "  <MetaData>" << endl;
192 >    os << "  <MetaData>" << endl << endl;
193      
194      for(i = 0; i < mols.size(); ++i) {
195        OBMol* pmol = mols[i];
196 +
197 +      pmol->ConnectTheDots();
198 +      pmol->PerceiveBondOrders();
199 +      //pmol->FindSSSR();
200 +      //pmol->SetAromaticPerceived();
201 +      //pmol->Kekulize();
202 +
203        map<OBAtom*, int> atomMap;
204        os << "molecule {\n";
205        sprintf(buffer, "%d", i);
206        os << indentLevel1 << "name = " << "\"" << molPrefix << buffer << "\"" << ";\n";
207 <      
200 <      
207 >          
208        //atom
209        int ai = 0;
210        FOR_ATOMS_OF_MOL(atom, *pmol ) {
211 +        str = atom->GetType();
212 +        ttab.SetFromType("INT");
213 +        ttab.SetToType("INT");
214 +        ttab.Translate(str1,str);
215          os << indentLevel1 << "atom[" << ai << "] {\n";
216 <        os << indentLevel2 << "type = " << "\"" << etab.GetSymbol(atom->GetAtomicNum()) << "\"" << ";\n";
216 >        // os << indentLevel2 << "type = " << "\"" << etab.GetSymbol(atom->GetAtomicNum()) << "\"" << ";\n";
217 >        os << indentLevel2 << "type = " << "\"" << str1 << "\"" << ";\n";
218          os << indentLevel1 << "}\n";
219          atomMap[&(*atom)] = ai++;
220        }        
# Line 256 | Line 268 | struct SameAngle
268      }
269      
270      os << endl;
271 <    os << "nComponents = " << mols.size() << ";" << endl;
271 >
272      
273      for(i=0; i < mols.size(); ++i) {      
274        os << "component{" << endl;
275        sprintf(buffer, "%d", i);
276 <      os << "type = " << molPrefix << buffer << ";\n";
277 <      os << "nMol = " << numMols[i]<< ";\n";
278 <      os << "}\n";
276 >      os << indentLevel1 << "type = " << molPrefix << buffer << ";" << endl;
277 >      os << indentLevel1 << "nMol = " << numMols[i]<< ";" << endl;
278 >      os << "}" << endl;
279      }
280      
281      os << "  </MetaData>" << endl;
# Line 281 | Line 293 | struct SameAngle
293      os << "    <StuntDoubles>" << endl;
294  
295      OBAtom *atom;
284    string str,str1;
296      
297      for(vector<int>::iterator i = indices.begin();i != indices.end(); ++i) {    
298        atom = mol.GetAtom(*i);
299 <      sprintf(buffer, "%d\tpv\t%18.10g\t%18.10g\t%18.10g\t%14.10g\t%14.10g\t%14.10g", *i - 1, atom->GetX(), atom->GetY(), atom->GetZ(), 0.0, 0.0, 0.0);
299 >      sprintf(buffer, "%10d %7s %18.10g %18.10g %18.10g %13e %13e %13e", *i - 1, "pv", atom->GetX(), atom->GetY(), atom->GetZ(), 0.0, 0.0, 0.0);
300        os << buffer << endl;
301      }
302      os << "    </StuntDoubles>" << endl;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines