# | Line 1612 | Line 1612 | void SimSetup::setupZConstraint(SimInfo& theInfo) | |
---|---|---|
1612 | " , you must set sample time.\n"); | |
1613 | painCave.isFatal = 1; | |
1614 | simError(); | |
1615 | – | } |
1616 | – | |
1617 | – | // |
1618 | – | nZConstraints = globals->getNzConstraints(); |
1619 | – | theInfo.nZconstraints = nZConstraints; |
1620 | – | |
1621 | – | zconStamp = globals->getZconStamp(); |
1622 | – | ZConsParaItem tempParaItem; |
1623 | – | |
1624 | – | ZConsParaData* zconsParaData = new ZConsParaData(); |
1625 | – | zconsParaData->setID(ZCONSPARADATA_ID); |
1626 | – | |
1627 | – | for(int i = 0; i < nZConstraints; i++){ |
1628 | – | tempParaItem.havingZPos = zconStamp[i]->haveZpos(); |
1629 | – | tempParaItem.zPos = zconStamp[i]->getZpos(); |
1630 | – | tempParaItem.zconsIndex = zconStamp[i]->getMolIndex(); |
1631 | – | tempParaItem.kRatio = zconStamp[i]->getKratio(); |
1632 | – | |
1633 | – | zconsParaData->addItem(tempParaItem); |
1615 | } | |
1616 | ||
1636 | – | //sort the parameters by index of molecules |
1637 | – | zconsParaData->sortByIndex(); |
1638 | – | |
1639 | – | //push data into siminfo, therefore, we can retrieve later |
1640 | – | theInfo.addProperty(zconsParaData); |
1641 | – | |
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 1647 | 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 1657 | 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 1670 | 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 |