ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/SimSetup.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/SimSetup.cpp (file contents):
Revision 1041 by chrisfen, Mon Feb 9 14:48:57 2004 UTC vs.
Revision 1091 by tim, Tue Mar 16 19:22:56 2004 UTC

# Line 9 | Line 9
9   #include "parse_me.h"
10   #include "Integrator.hpp"
11   #include "simError.h"
12 < #include "ConjugateMinimizer.hpp"
12 > //#include "ConjugateMinimizer.hpp"
13 > #include "OOPSEMinimizer.hpp"
14  
15   #ifdef IS_MPI
16   #include "mpiBASS.h"
# Line 1662 | Line 1663 | void SimSetup::setupZConstraint(SimInfo& theInfo){
1663    }
1664  
1665    theInfo.addProperty(zconsForcePolicy);
1666 +
1667 +  //set zcons gap
1668 +  DoubleData* zconsGap = new DoubleData();
1669 +  zconsGap->setID(ZCONSGAP_ID);
1670 +
1671 +  if (globals->haveZConsGap()){
1672 +    zconsGap->setData(globals->getZconsGap());
1673 +    theInfo.addProperty(zconsGap);  
1674 +  }
1675  
1676 +  //set zcons fixtime
1677 +  DoubleData* zconsFixtime = new DoubleData();
1678 +  zconsFixtime->setID(ZCONSFIXTIME_ID);
1679 +
1680 +  if (globals->haveZConsFixTime()){
1681 +    zconsFixtime->setData(globals->getZconsFixtime());
1682 +    theInfo.addProperty(zconsFixtime);  
1683 +  }
1684 +
1685 +
1686    //Determine the name of ouput file and add it into SimInfo's property list
1687    //Be careful, do not use inFileName, since it is a pointer which
1688    //point to a string at master node, and slave nodes do not contain that string
# Line 1713 | Line 1733 | void SimSetup::makeMinimizer(){
1733  
1734   void SimSetup::makeMinimizer(){
1735  
1736 <  OOPSEMinimizerBase* myOOPSEMinimizerBase;
1717 <  ObjFunctor1 * objFunc;
1718 <  OutputFunctor* outputFunc;
1719 <  ConcreteNLModel1* nlp;
1736 >  OOPSEMinimizer* myOOPSEMinimizer;
1737    MinimizerParameterSet* param;
1738 <  ConjugateMinimizerBase* minimizer;
1722 <  int dim;
1738 >  char minimizerName[100];
1739    
1740    for (int i = 0; i < nInfo; i++){
1741 <    //creat
1726 <    myOOPSEMinimizerBase = new OOPSEMinimizerBase(&(info[i]), the_ff);
1727 <
1728 <     info[i].the_integrator = myOOPSEMinimizerBase;
1729 <    //creat the object functor;
1730 <    objFunc = (ObjFunctor1*) new ClassMemObjFunctor1<OOPSEMinimizerBase>
1731 <                                              (myOOPSEMinimizerBase, &OOPSEMinimizerBase::calcGradient);
1732 <
1733 <    //creat output functor;
1734 <    outputFunc =  new ClassMemOutputFunctor<OOPSEMinimizerBase>
1735 <                               (myOOPSEMinimizerBase, &OOPSEMinimizerBase::output);
1736 <
1737 <    //creat nonlinear model
1738 <    dim = myOOPSEMinimizerBase->getDim();    
1739 <    nlp = new ConcreteNLModel1(dim, objFunc);
1740 <
1741 <    nlp->setX(myOOPSEMinimizerBase->getCoor());
1742 <
1741 >    
1742      //prepare parameter set for minimizer
1743      param = new MinimizerParameterSet();
1744      param->setDefaultParameter();
# Line 1764 | Line 1763 | void SimSetup::makeMinimizer(){
1763        param->setWriteFrq(globals->getMinWriteFrq());
1764      }
1765      
1766 <    if (globals->haveMinResetFrq()){
1767 <      param->setResetFrq(globals->getMinResetFrq());
1766 >    if (globals->haveMinStepSize()){
1767 >      param->setStepSize(globals->getMinStepSize());
1768      }
1769  
1770      if (globals->haveMinLSMaxIter()){
# Line 1775 | Line 1774 | void SimSetup::makeMinimizer(){
1774      if (globals->haveMinLSTol()){
1775        param->setLineSearchTol(globals->getMinLSTol());
1776      }    
1778    
1779     //creat the minimizer
1780     minimizer = new PRCGMinimizer(nlp, param);
1781     minimizer->setLineSearchStrategy(nlp, GoldenSection);
1782     minimizer->setOutputFunctor(outputFunc);
1777  
1778 +    strcpy(minimizerName, globals->getMinimizer());
1779 +
1780 +    if (!strcasecmp(minimizerName, "CG")){
1781 +      myOOPSEMinimizer = new PRCGMinimizer(&(info[i]), the_ff, param);
1782 +    }
1783 +    else if (!strcasecmp(minimizerName, "SD")){
1784 +    //myOOPSEMinimizer = MinimizerFactory.creatMinimizer("", &(info[i]), the_ff, param);
1785 +      myOOPSEMinimizer = new SDMinimizer(&(info[i]), the_ff, param);
1786 +    }
1787 +    else{
1788 +          sprintf(painCave.errMsg,
1789 +                  "SimSetup error: Unrecognized Minimizer, use Conjugate Gradient \n");
1790 +          painCave.isFatal = 0;
1791 +          simError();
1792 +
1793 +      myOOPSEMinimizer = new PRCGMinimizer(&(info[i]), the_ff, param);          
1794 +    }
1795 +     info[i].the_integrator = myOOPSEMinimizer;
1796 +
1797       //store the minimizer into simInfo
1798 <     info[i].the_minimizer = minimizer;
1798 >     info[i].the_minimizer = myOOPSEMinimizer;
1799       info[i].has_minimizer = true;
1800    }
1801  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines