--- branches/development/src/brains/Register.cpp 2011/09/14 21:15:17 1629 +++ branches/development/src/brains/Register.cpp 2012/06/05 18:07:08 1744 @@ -36,7 +36,8 @@ * [1] Meineke, et al., J. Comp. Chem. 26, 252-271 (2005). * [2] Fennell & Gezelter, J. Chem. Phys. 124, 234104 (2006). * [3] Sun, Lin & Gezelter, J. Chem. Phys. 128, 24107 (2008). - * [4] Vardeman & Gezelter, in progress (2009). + * [4] Kuang & Gezelter, J. Chem. Phys. 133, 164101 (2010). + * [5] Vardeman, Stocker & Gezelter, J. Chem. Theory Comput. 7, 834 (2011). */ #include "brains/Register.hpp" @@ -58,47 +59,20 @@ #include "integrators/LangevinHullDynamics.hpp" #endif -#include "minimizers/MinimizerFactory.hpp" -#include "minimizers/MinimizerCreator.hpp" -#include "minimizers/PRCG.hpp" -#include "minimizers/SDMinimizer.hpp" -#include "UseTheForce/DUFF.hpp" -#include "UseTheForce/EAM_FF.hpp" -#include "UseTheForce/EADM_FF.hpp" -#include "UseTheForce/ForceFieldFactory.hpp" -#include "UseTheForce/ForceFieldCreator.hpp" -#include "UseTheForce/SHAPES_FF.hpp" -#include "UseTheForce/SC_FF.hpp" -#include "UseTheForce/MnM_FF.hpp" -#include "UseTheForce/CLAYFF.hpp" -#include "UseTheForce/Amber_FF.hpp" +#include "optimization/OptimizationFactory.hpp" +#include "optimization/OptimizationCreator.hpp" +#include "optimization/Method.hpp" +#include "optimization/SteepestDescent.hpp" +#include "optimization/ConjugateGradient.hpp" +#include "optimization/BFGS.hpp" + #include "lattice/LatticeFactory.hpp" #include "lattice/LatticeCreator.hpp" #include "lattice/FCCLattice.hpp" +using namespace QuantLib; namespace OpenMD { - - void registerForceFields() { - /** @todo move to a seperate initialization module */ - //DUFF, WATER and LJ are merged into one force field - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("DUFF")); - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("WATER")); - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("LJ")); - //in theory, EAM can also be merged - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("EAM")); - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("EADM")); - //heck, that worked... let's try merging SHAPES - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("SHAPES")); - //Well if EAM worked... then Sutton-Chen should work like a CHARMM(Hopefully not). - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("SC")); - //Well if Sutton-Chen worked... then lets just mangle all of the forcefields together in MnM. - //That sounds like a good idea right...... - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("MnM")); - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("CLAY")); - ForceFieldFactory::getInstance()->registerForceField(new ForceFieldBuilder("Amber")); - } - void registerIntegrators() { IntegratorFactory::getInstance()->registerIntegrator(new IntegratorBuilder("NVE")); IntegratorFactory::getInstance()->registerIntegrator(new IntegratorBuilder("NVT")); @@ -119,9 +93,10 @@ namespace OpenMD { #endif } - void registerMinimizers() { - MinimizerFactory::getInstance()->registerMinimizer(new MinimizerBuilder("SD")); - MinimizerFactory::getInstance()->registerMinimizer(new MinimizerBuilder("CG")); + void registerOptimizers() { + OptimizationFactory::getInstance()->registerOptimization(new OptimizationBuilder("SD")); + OptimizationFactory::getInstance()->registerOptimization(new OptimizationBuilder("CG")); + OptimizationFactory::getInstance()->registerOptimization(new OptimizationBuilder("BFGS")); } void registerLattice(){ @@ -129,9 +104,8 @@ namespace OpenMD { } void registerAll() { - registerForceFields(); registerIntegrators(); - registerMinimizers(); + registerOptimizers(); } }