--- branches/development/src/brains/Register.cpp 2010/07/09 23:08:25 1465 +++ 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" @@ -49,53 +50,29 @@ #include "integrators/NPTi.hpp" #include "integrators/NPTf.hpp" #include "integrators/NPTxyz.hpp" +#include "integrators/NPTsz.hpp" #include "integrators/NPAT.hpp" #include "integrators/NPrT.hpp" #include "integrators/NgammaT.hpp" #include "integrators/LangevinDynamics.hpp" #if defined(HAVE_QHULL) -#include "integrators/SMIPDynamics.hpp" +#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/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")); - //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")); @@ -110,13 +87,16 @@ namespace OpenMD { IntegratorFactory::getInstance()->registerIntegrator(new IntegratorBuilder("LANGEVINDYNAMICS")); IntegratorFactory::getInstance()->registerIntegrator(new IntegratorBuilder("LD")); #if defined(HAVE_QHULL) - IntegratorFactory::getInstance()->registerIntegrator(new IntegratorBuilder("SMIPD")); + IntegratorFactory::getInstance()->registerIntegrator(new IntegratorBuilder("LHULL")); + IntegratorFactory::getInstance()->registerIntegrator(new IntegratorBuilder("LANGEVINHULL")); + IntegratorFactory::getInstance()->registerIntegrator(new IntegratorBuilder("SMIPD")); #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(){ @@ -124,9 +104,8 @@ namespace OpenMD { } void registerAll() { - registerForceFields(); registerIntegrators(); - registerMinimizers(); + registerOptimizers(); } }