# | Line 5 | Line 5 | |
---|---|---|
5 | #include <string> | |
6 | ||
7 | #include "SimSetup.hpp" | |
8 | + | #include "ReadWrite.hpp" |
9 | #include "parse_me.h" | |
10 | #include "Integrator.hpp" | |
11 | #include "simError.h" | |
# | Line 96 | Line 97 | void SimSetup::createSim(void){ | |
97 | int i, j, k, globalAtomIndex; | |
98 | ||
99 | // gather all of the information from the Bass file | |
100 | < | |
100 | > | |
101 | gatherInfo(); | |
102 | ||
103 | // creation of complex system objects | |
# | Line 104 | Line 105 | void SimSetup::createSim(void){ | |
105 | sysObjectsCreation(); | |
106 | ||
107 | // check on the post processing info | |
108 | < | |
108 | > | |
109 | finalInfoCheck(); | |
110 | ||
111 | // initialize the system coordinates | |
# | Line 888 | Line 889 | void SimSetup::initSystemCoords( void ){ | |
889 | void SimSetup::initSystemCoords( void ){ | |
890 | int i; | |
891 | ||
892 | < | std::cerr << "Setting atom Coords\n"; |
892 | > | char* inName; |
893 | ||
894 | + | |
895 | (info[0].getConfiguration())->createArrays( info[0].n_atoms ); | |
896 | ||
897 | for(i=0; i<info[0].n_atoms; i++) info[0].atoms[i]->setCoords(); | |
# | Line 900 | Line 902 | void SimSetup::initSystemCoords( void ){ | |
902 | #ifdef IS_MPI // is_mpi | |
903 | if( worldRank == 0 ){ | |
904 | #endif //is_mpi | |
905 | < | fileInit = new InitializeFromFile( globals->getInitialConfig() ); |
905 | > | inName = globals->getInitialConfig(); |
906 | > | double* tempDouble = new double[1000000]; |
907 | > | fileInit = new InitializeFromFile( inName ); |
908 | #ifdef IS_MPI | |
909 | }else fileInit = new InitializeFromFile( NULL ); | |
910 | #endif | |
# | Line 1033 | Line 1037 | void SimSetup::sysObjectsCreation( void ){ | |
1037 | int i,k; | |
1038 | ||
1039 | // create the forceField | |
1040 | < | |
1040 | > | |
1041 | createFF(); | |
1042 | ||
1043 | // extract componentList | |
# | Line 1051 | Line 1055 | void SimSetup::sysObjectsCreation( void ){ | |
1055 | #endif //is_mpi | |
1056 | ||
1057 | // create the atom and SRI arrays. Also initialize Molecule Stamp ID's | |
1058 | < | |
1058 | > | |
1059 | makeSysArrays(); | |
1060 | ||
1061 | // make and initialize the molecules (all but atomic coordinates) | |
1062 | < | |
1062 | > | |
1063 | makeMolecules(); | |
1064 | ||
1065 | for(k=0; k<nInfo; k++){ | |
# | Line 1608 | Line 1612 | void SimSetup::setupZConstraint(SimInfo& theInfo) | |
1612 | " , you must set sample time.\n"); | |
1613 | painCave.isFatal = 1; | |
1614 | simError(); | |
1611 | – | } |
1612 | – | |
1613 | – | // |
1614 | – | nZConstraints = globals->getNzConstraints(); |
1615 | – | zconStamp = globals->getZconStamp(); |
1616 | – | ZConsParaItem tempParaItem; |
1617 | – | |
1618 | – | ZConsParaData* zconsParaData = new ZConsParaData(); |
1619 | – | zconsParaData->setID(ZCONSPARADATA_ID); |
1620 | – | |
1621 | – | for(int i = 0; i < nZConstraints; i++){ |
1622 | – | tempParaItem.havingZPos = zconStamp[i]->haveZpos(); |
1623 | – | tempParaItem.zPos = zconStamp[i]->getZpos(); |
1624 | – | tempParaItem.zconsIndex = zconStamp[i]->getMolIndex(); |
1625 | – | tempParaItem.kRatio = zconStamp[i]->getKratio(); |
1626 | – | |
1627 | – | zconsParaData->addItem(tempParaItem); |
1615 | } | |
1616 | ||
1630 | – | //sort the parameters by index of molecules |
1631 | – | zconsParaData->sortByIndex(); |
1632 | – | |
1633 | – | //push data into siminfo, therefore, we can retrieve later |
1634 | – | theInfo.addProperty(zconsParaData); |
1635 | – | |
1617 | //push zconsTol into siminfo, if user does not specify | |
1618 | //value for zconsTol, a default value will be used | |
1619 | DoubleData* zconsTol = new DoubleData(); | |
# | Line 1641 | Line 1622 | void SimSetup::setupZConstraint(SimInfo& theInfo) | |
1622 | zconsTol->setData(globals->getZconsTol()); | |
1623 | } | |
1624 | else{ | |
1625 | < | double defaultZConsTol = 1E-6; |
1625 | > | double defaultZConsTol = 0.01; |
1626 | sprintf( painCave.errMsg, | |
1627 | "ZConstraint Waring: Tolerance for z-constraint methodl is not specified\n" | |
1628 | " , default value %f is used.\n", defaultZConsTol); | |
# | Line 1651 | Line 1632 | void SimSetup::setupZConstraint(SimInfo& theInfo) | |
1632 | zconsTol->setData(defaultZConsTol); | |
1633 | } | |
1634 | theInfo.addProperty(zconsTol); | |
1635 | + | |
1636 | + | //set Force Substraction Policy |
1637 | + | StringData* zconsForcePolicy = new StringData(); |
1638 | + | zconsForcePolicy->setID(ZCONSFORCEPOLICY_ID); |
1639 | + | |
1640 | + | if(globals->haveZconsForcePolicy()){ |
1641 | + | zconsForcePolicy->setData(globals->getZconsForcePolicy()); |
1642 | + | } |
1643 | + | else{ |
1644 | + | sprintf( painCave.errMsg, |
1645 | + | "ZConstraint Warning: User does not set force substraction policy, " |
1646 | + | "average force substraction policy is used\n"); |
1647 | + | painCave.isFatal = 0; |
1648 | + | simError(); |
1649 | + | zconsForcePolicy->setData("BYNUMBER"); |
1650 | + | } |
1651 | ||
1652 | + | theInfo.addProperty(zconsForcePolicy); |
1653 | + | |
1654 | //Determine the name of ouput file and add it into SimInfo's property list | |
1655 | //Be careful, do not use inFileName, since it is a pointer which | |
1656 | //point to a string at master node, and slave nodes do not contain that string | |
# | Line 1664 | Line 1663 | void SimSetup::setupZConstraint(SimInfo& theInfo) | |
1663 | zconsFilename->setID(ZCONSFILENAME_ID); | |
1664 | zconsFilename->setData(zconsOutput); | |
1665 | ||
1666 | < | theInfo.addProperty(zconsFilename); |
1666 | > | theInfo.addProperty(zconsFilename); |
1667 | > | |
1668 | > | //setup index, pos and other parameters of z-constraint molecules |
1669 | > | nZConstraints = globals->getNzConstraints(); |
1670 | > | theInfo.nZconstraints = nZConstraints; |
1671 | > | |
1672 | > | zconStamp = globals->getZconStamp(); |
1673 | > | ZConsParaItem tempParaItem; |
1674 | > | |
1675 | > | ZConsParaData* zconsParaData = new ZConsParaData(); |
1676 | > | zconsParaData->setID(ZCONSPARADATA_ID); |
1677 | > | |
1678 | > | for(int i = 0; i < nZConstraints; i++){ |
1679 | > | tempParaItem.havingZPos = zconStamp[i]->haveZpos(); |
1680 | > | tempParaItem.zPos = zconStamp[i]->getZpos(); |
1681 | > | tempParaItem.zconsIndex = zconStamp[i]->getMolIndex(); |
1682 | > | tempParaItem.kRatio = zconStamp[i]->getKratio(); |
1683 | > | |
1684 | > | zconsParaData->addItem(tempParaItem); |
1685 | > | } |
1686 | > | |
1687 | > | //sort the parameters by index of molecules |
1688 | > | zconsParaData->sortByIndex(); |
1689 | > | |
1690 | > | //push data into siminfo, therefore, we can retrieve later |
1691 | > | theInfo.addProperty(zconsParaData); |
1692 | > | |
1693 | } |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |