Changes in src/config.cpp [d74077:952f38]
- File:
-
- 1 edited
-
src/config.cpp (modified) (13 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/config.cpp
rd74077 r952f38 16 16 #include "ConfigFileBuffer.hpp" 17 17 #include "element.hpp" 18 #include " helpers.hpp"19 #include " info.hpp"18 #include "Helpers/helpers.hpp" 19 #include "Helpers/Info.hpp" 20 20 #include "lists.hpp" 21 #include " verbose.hpp"22 #include " log.hpp"21 #include "Helpers/Verbose.hpp" 22 #include "Helpers/Log.hpp" 23 23 #include "molecule.hpp" 24 24 #include "molecule.hpp" … … 26 26 #include "ThermoStatContainer.hpp" 27 27 #include "World.hpp" 28 #include " Matrix.hpp"28 #include "LinearAlgebra/Matrix.hpp" 29 29 #include "Box.hpp" 30 30 … … 439 439 map<int, atom *> LinearList; 440 440 atom *neues = NULL; 441 Vector position;442 441 if (!FastParsing) { 443 442 // parse in trajectories … … 453 452 AtomList[i][j] = neues; 454 453 LinearList[ FileBuffer->LineMapping[FileBuffer->CurrentLine] ] = neues; 455 neues-> setType(elementhash[i]); // find element type454 neues->type = elementhash[i]; // find element type 456 455 } else 457 456 neues = AtomList[i][j]; 458 457 status = (status && 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) &&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) && 462 461 ParseForParameter(verbose,FileBuffer, keyword, 0, 4, 1, int_type, &neues->FixedIon, 1, (repetition == 0) ? critical : optional)); 463 if (!status) 464 break; 465 neues ->setPosition(position); 462 if (!status) break; 466 463 467 464 // check size of vectors … … 475 472 // put into trajectories list 476 473 for (int d=0;d<NDIM;d++) 477 neues->Trajectory.R.at(repetition)[d] = neues-> at(d);474 neues->Trajectory.R.at(repetition)[d] = neues->x[d]; 478 475 479 476 // parse velocities if present 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.;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.; 486 483 for (int d=0;d<NDIM;d++) 487 neues->Trajectory.U.at(repetition)[d] = neues-> AtomicVelocity[d];484 neues->Trajectory.U.at(repetition)[d] = neues->v[d]; 488 485 489 486 // parse forces if present … … 534 531 AtomList[i][j] = neues; 535 532 LinearList[ FileBuffer->LineMapping[FileBuffer->CurrentLine] ] = neues; 536 neues-> setType(elementhash[i]); // find element type533 neues->type = elementhash[i]; // find element type 537 534 } else 538 535 neues = AtomList[i][j]; 539 536 // then parse for each atom the coordinates as often as present 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); 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); 544 540 ParseForParameter(verbose,FileBuffer, keyword, 0, 4, 1, int_type, &neues->FixedIon, repetition,critical); 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.;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.; 551 547 // here we don't care if forces are present (last in trajectories is always equal to current position) 552 neues-> setType(elementhash[i]); // find element type548 neues->type = elementhash[i]; // find element type 553 549 mol->AddAtom(neues); 554 550 } … … 1013 1009 istringstream input2(zeile); 1014 1010 atom *neues = World::getInstance().createAtom(); 1015 double tmp; 1016 for (int j=0;j<NDIM;j++) { 1017 input2 >> tmp; 1018 neues->set(j,tmp); 1019 } 1011 input2 >> neues->x[0]; // x 1012 input2 >> neues->x[1]; // y 1013 input2 >> neues->x[2]; // z 1020 1014 input2 >> l; 1021 neues-> setType(elementhash[No]); // find element type1015 neues->type = elementhash[No]; // find element type 1022 1016 mol->AddAtom(neues); 1023 1017 } … … 1285 1279 AtomNo = 0; 1286 1280 for (molecule::const_iterator iter = (*MolRunner)->begin(); iter != (*MolRunner)->end(); ++iter) { 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 digits1281 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 1289 1283 fprintf(f, 1290 1284 "ATOM %6u %-4s %4s%c%4u %8.3f%8.3f%8.3f%6.2f%6.2f %4s%2s%2s\n", … … 1294 1288 'a'+(unsigned char)(AtomNo % 26), /* letter for chain */ 1295 1289 MolNo, /* residue sequence number */ 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 */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 */ 1301 1295 "0", /* segment identifier */ 1302 (*iter)-> getType()->symbol, /* element symbol */1296 (*iter)->type->symbol, /* element symbol */ 1303 1297 "0"); /* charge */ 1304 1298 AtomNo++; … … 1338 1332 AtomNo = 0; 1339 1333 for (molecule::const_iterator iter = mol->begin(); iter != mol->end(); ++iter) { 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 digits1334 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 1342 1336 fprintf(f, 1343 1337 "ATOM %6u %-4s %4s%c%4u %8.3f%8.3f%8.3f%6.2f%6.2f %4s%2s%2s\n", … … 1347 1341 'a'+(unsigned char)(AtomNo % 26), /* letter for chain */ 1348 1342 0, /* residue sequence number */ 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 */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 */ 1354 1348 "0", /* segment identifier */ 1355 (*iter)-> getType()->symbol, /* element symbol */1349 (*iter)->type->symbol, /* element symbol */ 1356 1350 "0"); /* charge */ 1357 1351 AtomNo++; … … 1396 1390 *output << mol->name << "\t"; 1397 1391 *output << 0 << "\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";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"; 1401 1395 for (BondList::iterator runner = (*iter)->ListOfBonds.begin(); runner != (*iter)->ListOfBonds.end(); runner++) 1402 1396 *output << (*runner)->GetOtherAtom(*iter)->nr << "\t"; … … 1468 1462 *output << (*MolWalker)->name << "\t"; 1469 1463 *output << MolCounter+1 << "\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";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"; 1473 1467 for (BondList::iterator runner = (*iter)->ListOfBonds.begin(); runner != (*iter)->ListOfBonds.end(); runner++) 1474 1468 *output << LocalNotoGlobalNoMap[ (*runner)->GetOtherAtom((*iter))->getId() ] << "\t";
Note:
See TracChangeset
for help on using the changeset viewer.
