Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/molecule.cpp

    r76ff55 re4afb4  
    640640 * \return copy of molecule
    641641 */
    642 molecule *molecule::CopyMolecule()
     642molecule *molecule::CopyMolecule() const
    643643{
    644644  molecule *copy = World::getInstance().createMolecule();
     
    648648
    649649  // copy all bonds
    650   for(molecule::iterator AtomRunner = begin(); AtomRunner != end(); ++AtomRunner)
    651     for(BondList::iterator BondRunner = (*AtomRunner)->ListOfBonds.begin(); BondRunner != (*AtomRunner)->ListOfBonds.end(); ++BondRunner)
     650  for(molecule::const_iterator AtomRunner = begin(); AtomRunner != end(); ++AtomRunner)
     651    for(BondList::const_iterator BondRunner = (*AtomRunner)->ListOfBonds.begin(); BondRunner != (*AtomRunner)->ListOfBonds.end(); ++BondRunner)
    652652      if ((*BondRunner)->leftatom == *AtomRunner) {
    653653        bond *Binder = (*BondRunner);
     
    874874 * \param *out output stream
    875875 */
    876 bool molecule::Output(ostream * const output)
     876bool molecule::Output(ostream * const output) const
    877877{
    878878  if (output == NULL) {
     
    882882    memset(AtomNo,0,(MAX_ELEMENTS-1)*sizeof(*AtomNo));
    883883    enumeration<const element*> elementLookup = formula.enumerateElements();
    884     for(map<const element*,unsigned int>::iterator iter=elementLookup.there.begin();
    885         iter!=elementLookup.there.end();++iter){
    886       cout << "Enumerated element " << *iter->first << " with number " << iter->second << endl;
    887     }
    888884    *output << "#Ion_TypeNr._Nr.R[0]    R[1]    R[2]    MoveType (0 MoveIon, 1 FixedIon)" << endl;
    889885    for_each(atoms.begin(),atoms.end(),boost::bind(&atom::OutputArrayIndexed,_1,output,elementLookup,AtomNo,(const char*)0));
     
    895891 * \param *out output stream
    896892 */
    897 bool molecule::OutputTrajectories(ofstream * const output)
    898 {
    899   int ElementNo[MAX_ELEMENTS], AtomNo[MAX_ELEMENTS];
    900 
     893bool molecule::OutputTrajectories(ofstream * const output) const
     894{
    901895  if (output == NULL) {
    902896    return false;
     
    908902        *output << "# ====== MD step " << step << " =========" << endl;
    909903      }
    910       for (int i=0;i<MAX_ELEMENTS;++i) {
    911         AtomNo[i] = 0;
    912         ElementNo[i] = 0;
    913       }
    914       for(molecule::iterator iter = begin(); iter != end(); ++iter) {
    915         ElementNo[(*iter)->getType()->getAtomicNumber()] = 1;
    916       }
    917       int current=1;
    918       for (int i=0;i<MAX_ELEMENTS;++i) {
    919         if (ElementNo[i] == 1)
    920           ElementNo[i] = current++;
    921       }
    922       ActOnAllAtoms( &atom::OutputTrajectory, output, (const int *)ElementNo, AtomNo, (const int)step );
     904      int AtomNo[MAX_ELEMENTS];
     905      memset(AtomNo,0,(MAX_ELEMENTS-1)*sizeof(*AtomNo));
     906      enumeration<const element*> elementLookup = formula.enumerateElements();
     907      for_each(atoms.begin(),atoms.end(),boost::bind(&atom::OutputTrajectory,_1,output,elementLookup, AtomNo, (const int)step));
    923908    }
    924909    return true;
     
    10551040    *output << "# Step Temperature [K] Temperature [a.u.]" << endl;
    10561041  for (int step=startstep;step < endstep; step++) { // loop over all time steps
    1057     temperature = 0.;
    1058     ActOnAllAtoms( &TrajectoryParticle::AddKineticToTemperature, &temperature, step);
     1042    temperature = atoms.totalTemperatureAtStep(step);
    10591043    *output << step << "\t" << temperature*AtomicEnergyToKelvin << "\t" << temperature << endl;
    10601044  }
    10611045  return true;
    1062 };
    1063 
    1064 void molecule::SetIndexedArrayForEachAtomTo ( atom **array, int ParticleInfo::*index) const
    1065 {
    1066   for (molecule::const_iterator iter = begin(); iter != end(); ++iter) {
    1067     array[((*iter)->*index)] = (*iter);
    1068   }
    10691046};
    10701047
Note: See TracChangeset for help on using the changeset viewer.