Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/config.cpp

    r952f38 rd74077  
    1616#include "ConfigFileBuffer.hpp"
    1717#include "element.hpp"
    18 #include "Helpers/helpers.hpp"
    19 #include "Helpers/Info.hpp"
     18#include "helpers.hpp"
     19#include "info.hpp"
    2020#include "lists.hpp"
    21 #include "Helpers/Verbose.hpp"
    22 #include "Helpers/Log.hpp"
     21#include "verbose.hpp"
     22#include "log.hpp"
    2323#include "molecule.hpp"
    2424#include "molecule.hpp"
     
    2626#include "ThermoStatContainer.hpp"
    2727#include "World.hpp"
    28 #include "LinearAlgebra/Matrix.hpp"
     28#include "Matrix.hpp"
    2929#include "Box.hpp"
    3030
     
    439439    map<int, atom *> LinearList;
    440440    atom *neues = NULL;
     441    Vector position;
    441442    if (!FastParsing) {
    442443      // parse in trajectories
     
    452453              AtomList[i][j] = neues;
    453454              LinearList[ FileBuffer->LineMapping[FileBuffer->CurrentLine] ] = neues;
    454               neues->type = elementhash[i]; // find element type
     455              neues->setType(elementhash[i]); // find element type
    455456            } else
    456457              neues = AtomList[i][j];
    457458            status = (status &&
    458                     ParseForParameter(verbose,FileBuffer, keyword, 0, 1, 1, double_type, &neues->x[0], 1, (repetition == 0) ? critical : optional) &&
    459                     ParseForParameter(verbose,FileBuffer, keyword, 0, 2, 1, double_type, &neues->x[1], 1, (repetition == 0) ? critical : optional) &&
    460                     ParseForParameter(verbose,FileBuffer, keyword, 0, 3, 1, double_type, &neues->x[2], 1, (repetition == 0) ? critical : optional) &&
     459                    ParseForParameter(verbose,FileBuffer, keyword, 0, 1, 1, double_type, &position[0], 1, (repetition == 0) ? critical : optional) &&
     460                    ParseForParameter(verbose,FileBuffer, keyword, 0, 2, 1, double_type, &position[1], 1, (repetition == 0) ? critical : optional) &&
     461                    ParseForParameter(verbose,FileBuffer, keyword, 0, 3, 1, double_type, &position[2], 1, (repetition == 0) ? critical : optional) &&
    461462                    ParseForParameter(verbose,FileBuffer, keyword, 0, 4, 1, int_type, &neues->FixedIon, 1, (repetition == 0) ? critical : optional));
    462             if (!status) break;
     463            if (!status)
     464              break;
     465            neues ->setPosition(position);
    463466
    464467            // check size of vectors
     
    472475            // put into trajectories list
    473476            for (int d=0;d<NDIM;d++)
    474               neues->Trajectory.R.at(repetition)[d] = neues->x[d];
     477              neues->Trajectory.R.at(repetition)[d] = neues->at(d);
    475478
    476479            // parse velocities if present
    477             if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 5, 1, double_type, &neues->v[0], 1,optional))
    478               neues->v[0] = 0.;
    479             if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 6, 1, double_type, &neues->v[1], 1,optional))
    480               neues->v[1] = 0.;
    481             if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 7, 1, double_type, &neues->v[2], 1,optional))
    482               neues->v[2] = 0.;
     480            if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 5, 1, double_type, &neues->AtomicVelocity[0], 1,optional))
     481              neues->AtomicVelocity[0] = 0.;
     482            if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 6, 1, double_type, &neues->AtomicVelocity[1], 1,optional))
     483              neues->AtomicVelocity[1] = 0.;
     484            if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 7, 1, double_type, &neues->AtomicVelocity[2], 1,optional))
     485              neues->AtomicVelocity[2] = 0.;
    483486            for (int d=0;d<NDIM;d++)
    484               neues->Trajectory.U.at(repetition)[d] = neues->v[d];
     487              neues->Trajectory.U.at(repetition)[d] = neues->AtomicVelocity[d];
    485488
    486489            // parse forces if present
     
    531534            AtomList[i][j] = neues;
    532535            LinearList[ FileBuffer->LineMapping[FileBuffer->CurrentLine] ] = neues;
    533             neues->type = elementhash[i]; // find element type
     536            neues->setType(elementhash[i]); // find element type
    534537          } else
    535538            neues = AtomList[i][j];
    536539          // then parse for each atom the coordinates as often as present
    537           ParseForParameter(verbose,FileBuffer, keyword, 0, 1, 1, double_type, &neues->x[0], repetition,critical);
    538           ParseForParameter(verbose,FileBuffer, keyword, 0, 2, 1, double_type, &neues->x[1], repetition,critical);
    539           ParseForParameter(verbose,FileBuffer, keyword, 0, 3, 1, double_type, &neues->x[2], repetition,critical);
     540          ParseForParameter(verbose,FileBuffer, keyword, 0, 1, 1, double_type, &position[0], repetition,critical);
     541          ParseForParameter(verbose,FileBuffer, keyword, 0, 2, 1, double_type, &position[1], repetition,critical);
     542          ParseForParameter(verbose,FileBuffer, keyword, 0, 3, 1, double_type, &position[2], repetition,critical);
     543          neues->setPosition(position);
    540544          ParseForParameter(verbose,FileBuffer, keyword, 0, 4, 1, int_type, &neues->FixedIon, repetition,critical);
    541           if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 5, 1, double_type, &neues->v[0], repetition,optional))
    542             neues->v[0] = 0.;
    543           if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 6, 1, double_type, &neues->v[1], repetition,optional))
    544             neues->v[1] = 0.;
    545           if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 7, 1, double_type, &neues->v[2], repetition,optional))
    546             neues->v[2] = 0.;
     545          if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 5, 1, double_type, &neues->AtomicVelocity[0], repetition,optional))
     546            neues->AtomicVelocity[0] = 0.;
     547          if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 6, 1, double_type, &neues->AtomicVelocity[1], repetition,optional))
     548            neues->AtomicVelocity[1] = 0.;
     549          if(!ParseForParameter(verbose,FileBuffer, keyword, 0, 7, 1, double_type, &neues->AtomicVelocity[2], repetition,optional))
     550            neues->AtomicVelocity[2] = 0.;
    547551          // here we don't care if forces are present (last in trajectories is always equal to current position)
    548           neues->type = elementhash[i]; // find element type
     552          neues->setType(elementhash[i]); // find element type
    549553          mol->AddAtom(neues);
    550554        }
     
    10091013        istringstream input2(zeile);
    10101014        atom *neues = World::getInstance().createAtom();
    1011         input2 >> neues->x[0]; // x
    1012         input2 >> neues->x[1]; // y
    1013         input2 >> neues->x[2]; // z
     1015        double tmp;
     1016        for (int j=0;j<NDIM;j++) {
     1017          input2 >> tmp;
     1018          neues->set(j,tmp);
     1019        }
    10141020        input2 >> l;
    1015         neues->type = elementhash[No]; // find element type
     1021        neues->setType(elementhash[No]); // find element type
    10161022        mol->AddAtom(neues);
    10171023      }
     
    12791285    AtomNo = 0;
    12801286    for (molecule::const_iterator iter = (*MolRunner)->begin(); iter != (*MolRunner)->end(); ++iter) {
    1281       sprintf(name, "%2s%2d",(*iter)->type->symbol, elementNo[(*iter)->type->Z]);
    1282       elementNo[(*iter)->type->Z] = (elementNo[(*iter)->type->Z]+1) % 100;   // confine to two digits
     1287      sprintf(name, "%2s%2d",(*iter)->getType()->symbol, elementNo[(*iter)->getType()->Z]);
     1288      elementNo[(*iter)->getType()->Z] = (elementNo[(*iter)->getType()->Z]+1) % 100;   // confine to two digits
    12831289      fprintf(f,
    12841290             "ATOM %6u %-4s %4s%c%4u    %8.3f%8.3f%8.3f%6.2f%6.2f      %4s%2s%2s\n",
     
    12881294             'a'+(unsigned char)(AtomNo % 26),           /* letter for chain */
    12891295             MolNo,         /* residue sequence number */
    1290              (*iter)->node->at(0),                 /* position X in Angstroem */
    1291              (*iter)->node->at(1),                 /* position Y in Angstroem */
    1292              (*iter)->node->at(2),                 /* position Z in Angstroem */
    1293              (double)(*iter)->type->Valence,         /* occupancy */
    1294              (double)(*iter)->type->NoValenceOrbitals,          /* temperature factor */
     1296             (*iter)->at(0),                 /* position X in Angstroem */
     1297             (*iter)->at(1),                 /* position Y in Angstroem */
     1298             (*iter)->at(2),                 /* position Z in Angstroem */
     1299             (double)(*iter)->getType()->Valence,         /* occupancy */
     1300             (double)(*iter)->getType()->NoValenceOrbitals,          /* temperature factor */
    12951301             "0",            /* segment identifier */
    1296              (*iter)->type->symbol,    /* element symbol */
     1302             (*iter)->getType()->symbol,    /* element symbol */
    12971303             "0");           /* charge */
    12981304      AtomNo++;
     
    13321338  AtomNo = 0;
    13331339  for (molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) {
    1334     sprintf(name, "%2s%2d",(*iter)->type->symbol, elementNo[(*iter)->type->Z]);
    1335     elementNo[(*iter)->type->Z] = (elementNo[(*iter)->type->Z]+1) % 100;   // confine to two digits
     1340    sprintf(name, "%2s%2d",(*iter)->getType()->symbol, elementNo[(*iter)->getType()->Z]);
     1341    elementNo[(*iter)->getType()->Z] = (elementNo[(*iter)->getType()->Z]+1) % 100;   // confine to two digits
    13361342    fprintf(f,
    13371343           "ATOM %6u %-4s %4s%c%4u    %8.3f%8.3f%8.3f%6.2f%6.2f      %4s%2s%2s\n",
     
    13411347           'a'+(unsigned char)(AtomNo % 26),           /* letter for chain */
    13421348           0,         /* residue sequence number */
    1343            (*iter)->node->at(0),                 /* position X in Angstroem */
    1344            (*iter)->node->at(1),                 /* position Y in Angstroem */
    1345            (*iter)->node->at(2),                 /* position Z in Angstroem */
    1346            (double)(*iter)->type->Valence,         /* occupancy */
    1347            (double)(*iter)->type->NoValenceOrbitals,          /* temperature factor */
     1349           (*iter)->at(0),                 /* position X in Angstroem */
     1350           (*iter)->at(1),                 /* position Y in Angstroem */
     1351           (*iter)->at(2),                 /* position Z in Angstroem */
     1352           (double)(*iter)->getType()->Valence,         /* occupancy */
     1353           (double)(*iter)->getType()->NoValenceOrbitals,          /* temperature factor */
    13481354           "0",            /* segment identifier */
    1349            (*iter)->type->symbol,    /* element symbol */
     1355           (*iter)->getType()->symbol,    /* element symbol */
    13501356           "0");           /* charge */
    13511357    AtomNo++;
     
    13901396    *output << mol->name << "\t";
    13911397    *output << 0 << "\t";
    1392     *output << (*iter)->node->at(0) << "\t" << (*iter)->node->at(1) << "\t" << (*iter)->node->at(2) << "\t";
    1393     *output << static_cast<double>((*iter)->type->Valence) << "\t";
    1394     *output << (*iter)->type->symbol << "\t";
     1398    *output << (*iter)->at(0) << "\t" << (*iter)->at(1) << "\t" << (*iter)->at(2) << "\t";
     1399    *output << static_cast<double>((*iter)->getType()->Valence) << "\t";
     1400    *output << (*iter)->getType()->symbol << "\t";
    13951401    for (BondList::iterator runner = (*iter)->ListOfBonds.begin(); runner != (*iter)->ListOfBonds.end(); runner++)
    13961402      *output << (*runner)->GetOtherAtom(*iter)->nr << "\t";
     
    14621468        *output << (*MolWalker)->name << "\t";
    14631469        *output << MolCounter+1 << "\t";
    1464         *output << (*iter)->node->at(0) << "\t" << (*iter)->node->at(1) << "\t" << (*iter)->node->at(2) << "\t";
    1465         *output << (double)(*iter)->type->Valence << "\t";
    1466         *output << (*iter)->type->symbol << "\t";
     1470        *output << (*iter)->at(0) << "\t" << (*iter)->at(1) << "\t" << (*iter)->at(2) << "\t";
     1471        *output << (double)(*iter)->getType()->Valence << "\t";
     1472        *output << (*iter)->getType()->symbol << "\t";
    14671473        for (BondList::iterator runner = (*iter)->ListOfBonds.begin(); runner != (*iter)->ListOfBonds.end(); runner++)
    14681474          *output << LocalNotoGlobalNoMap[ (*runner)->GetOtherAtom((*iter))->getId() ] << "\t";
Note: See TracChangeset for help on using the changeset viewer.