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 1064 by tim, Tue Feb 24 15:44:45 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 1713 | Line 1714 | void SimSetup::makeMinimizer(){
1714  
1715   void SimSetup::makeMinimizer(){
1716  
1717 <  OOPSEMinimizerBase* myOOPSEMinimizerBase;
1717 <  ObjFunctor1 * objFunc;
1718 <  OutputFunctor* outputFunc;
1719 <  ConcreteNLModel1* nlp;
1717 >  OOPSEMinimizer* myOOPSEMinimizer;
1718    MinimizerParameterSet* param;
1719 <  ConjugateMinimizerBase* minimizer;
1722 <  int dim;
1719 >  char minimizerName[100];
1720    
1721    for (int i = 0; i < nInfo; i++){
1722 <    //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 <
1722 >    
1723      //prepare parameter set for minimizer
1724      param = new MinimizerParameterSet();
1725      param->setDefaultParameter();
# Line 1764 | Line 1744 | void SimSetup::makeMinimizer(){
1744        param->setWriteFrq(globals->getMinWriteFrq());
1745      }
1746      
1747 <    if (globals->haveMinResetFrq()){
1748 <      param->setResetFrq(globals->getMinResetFrq());
1747 >    if (globals->haveMinStepSize()){
1748 >      param->setStepSize(globals->getMinStepSize());
1749      }
1750  
1751      if (globals->haveMinLSMaxIter()){
# Line 1775 | Line 1755 | void SimSetup::makeMinimizer(){
1755      if (globals->haveMinLSTol()){
1756        param->setLineSearchTol(globals->getMinLSTol());
1757      }    
1778    
1779     //creat the minimizer
1780     minimizer = new PRCGMinimizer(nlp, param);
1781     minimizer->setLineSearchStrategy(nlp, GoldenSection);
1782     minimizer->setOutputFunctor(outputFunc);
1758  
1759 +    strcpy(ensemble, globals->getMinimizer());
1760 +
1761 +    if (!strcasecmp(minimizerName, "CG")){
1762 +      myOOPSEMinimizer = new PRCGMinimizer(&(info[i]), the_ff, param);
1763 +    }
1764 +    else if (!strcasecmp(minimizerName, "SD")){
1765 +    //myOOPSEMinimizer = MinimizerFactory.creatMinimizer("", &(info[i]), the_ff, param);
1766 +      myOOPSEMinimizer = new SDMinimizer(&(info[i]), the_ff, param);
1767 +    }
1768 +    else{
1769 +     info[i].the_integrator = myOOPSEMinimizer;
1770 +    }
1771 +
1772       //store the minimizer into simInfo
1773 <     info[i].the_minimizer = minimizer;
1773 >     info[i].the_minimizer = myOOPSEMinimizer;
1774       info[i].has_minimizer = true;
1775    }
1776  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines