Changeset 48d20d
- Timestamp:
- May 3, 2013, 11:58:26 AM (12 years ago)
- Branches:
- Action_Thermostats, Add_AtomRandomPerturbation, Add_FitFragmentPartialChargesAction, Add_RotateAroundBondAction, Add_SelectAtomByNameAction, Added_ParseSaveFragmentResults, AddingActions_SaveParseParticleParameters, Adding_Graph_to_ChangeBondActions, Adding_MD_integration_tests, Adding_ParticleName_to_Atom, Adding_StructOpt_integration_tests, AtomFragments, Automaking_mpqc_open, AutomationFragmentation_failures, Candidate_v1.5.4, Candidate_v1.6.0, Candidate_v1.6.1, ChangeBugEmailaddress, ChangingTestPorts, ChemicalSpaceEvaluator, CombiningParticlePotentialParsing, Combining_Subpackages, Debian_Package_split, Debian_package_split_molecuildergui_only, Disabling_MemDebug, Docu_Python_wait, EmpiricalPotential_contain_HomologyGraph, EmpiricalPotential_contain_HomologyGraph_documentation, Enable_parallel_make_install, Enhance_userguide, Enhanced_StructuralOptimization, Enhanced_StructuralOptimization_continued, Example_ManyWaysToTranslateAtom, Exclude_Hydrogens_annealWithBondGraph, FitPartialCharges_GlobalError, Fix_BoundInBox_CenterInBox_MoleculeActions, Fix_ChargeSampling_PBC, Fix_ChronosMutex, Fix_FitPartialCharges, Fix_FitPotential_needs_atomicnumbers, Fix_ForceAnnealing, Fix_IndependentFragmentGrids, Fix_ParseParticles, Fix_ParseParticles_split_forward_backward_Actions, Fix_PopActions, Fix_QtFragmentList_sorted_selection, Fix_Restrictedkeyset_FragmentMolecule, Fix_StatusMsg, Fix_StepWorldTime_single_argument, Fix_Verbose_Codepatterns, Fix_fitting_potentials, Fixes, ForceAnnealing_goodresults, ForceAnnealing_oldresults, ForceAnnealing_tocheck, ForceAnnealing_with_BondGraph, ForceAnnealing_with_BondGraph_continued, ForceAnnealing_with_BondGraph_continued_betteresults, ForceAnnealing_with_BondGraph_contraction-expansion, FragmentAction_writes_AtomFragments, FragmentMolecule_checks_bonddegrees, GeometryObjects, Gui_Fixes, Gui_displays_atomic_force_velocity, ImplicitCharges, IndependentFragmentGrids, IndependentFragmentGrids_IndividualZeroInstances, IndependentFragmentGrids_IntegrationTest, IndependentFragmentGrids_Sole_NN_Calculation, JobMarket_RobustOnKillsSegFaults, JobMarket_StableWorkerPool, JobMarket_unresolvable_hostname_fix, MoreRobust_FragmentAutomation, ODR_violation_mpqc_open, PartialCharges_OrthogonalSummation, PdbParser_setsAtomName, PythonUI_with_named_parameters, QtGui_reactivate_TimeChanged_changes, Recreated_GuiChecks, Rewrite_FitPartialCharges, RotateToPrincipalAxisSystem_UndoRedo, SaturateAtoms_findBestMatching, SaturateAtoms_singleDegree, StoppableMakroAction, Subpackage_CodePatterns, Subpackage_JobMarket, Subpackage_LinearAlgebra, Subpackage_levmar, Subpackage_mpqc_open, Subpackage_vmg, Switchable_LogView, ThirdParty_MPQC_rebuilt_buildsystem, TrajectoryDependenant_MaxOrder, TremoloParser_IncreasedPrecision, TremoloParser_MultipleTimesteps, TremoloParser_setsAtomName, Ubuntu_1604_changes, stable
- Children:
- 661d2d
- Parents:
- 57f14c
- git-author:
- Frederik Heber <heber@…> (04/09/13 07:44:29)
- git-committer:
- Frederik Heber <heber@…> (05/03/13 11:58:26)
- Files:
-
- 6 added
- 1 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
configure.ac
r57f14c r48d20d 251 251 252 252 # Check for Levenberg-Marquardt implementation 253 enable_levmar=no 254 AX_LAPACK([enable_levmar=yes],[enable_levmar=no]) 253 AC_ARG_ENABLE( 254 [levmar], 255 AS_HELP_STRING([--enable-levmar],[turn on LevMar feature [default=no]]), 256 enable_levmar=$enableval, 257 enable_levmar="no") 258 AS_IF([test x"$enable_levmar" = x"yes"],[ 259 AX_LAPACK([enable_levmar=yes],[enable_levmar=no])]) 255 260 AC_MSG_CHECKING(whether to compile in Levenberg-Marquardt) 256 261 AS_IF([test x"$enable_levmar" = x"yes"],[ -
src/Actions/GlobalListOfActions.hpp
r57f14c r48d20d 122 122 (SelectionNotAllShapes) \ 123 123 (SelectionNotShapeByName) \ 124 (FragmentationAnalyseFragmentationResults) \ 124 125 (FragmentationFragmentation) \ 125 (FragmentationAnalyseFragmentationResults) \126 126 (FragmentationStoreSaturatedFragment) \ 127 127 (FillRegularGrid) \ … … 136 136 // we need to append the automation action in case we have the JobMarket 137 137 #ifdef HAVE_JOBMARKET 138 #define GLOBALLISTOFACTIONS \138 #define GLOBALLISTOFACTIONS_JOBMARKET \ 139 139 BOOST_PP_SEQ_PUSH_BACK( \ 140 140 BOOST_PP_SEQ_PUSH_BACK( \ … … 145 145 ) 146 146 #else 147 #define GLOBALLISTOFACTIONS \147 #define GLOBALLISTOFACTIONS_JOBMARKET \ 148 148 GLOBALLISTOFACTIONS_initial 149 149 #endif /* HAVE_JOBMARKET */ 150 150 151 #ifdef HAVE_LEVMAR 152 #define GLOBALLISTOFACTIONS_LEVMAR \ 153 BOOST_PP_SEQ_PUSH_BACK( \ 154 GLOBALLISTOFACTIONS_JOBMARKET, \ 155 FragmentationFitPotential \ 156 ) 157 #else 158 #define GLOBALLISTOFACTIONS_LEVMAR \ 159 GLOBALLISTOFACTIONS_JOBMARKET 160 #endif /* HAVE_LEVMAR */ 161 162 // define final list 163 #define GLOBALLISTOFACTIONS GLOBALLISTOFACTIONS_LEVMAR 164 151 165 #endif /* GLOBALLISTOFACTIONS_HPP_ */ 152 166 -
src/Actions/Makefile.am
r57f14c r48d20d 234 234 Actions/FragmentationAction/ParseFragmentJobsAction.def 235 235 endif 236 237 if CONDLEVMAR 238 FRAGMENTATIONACTIONSOURCE += \ 239 Actions/FragmentationAction/FitPotentialAction.cpp 240 FRAGMENTATIONACTIONHEADER += \ 241 Actions/FragmentationAction/FitPotentialAction.hpp 242 FRAGMENTATIONACTIONDEFS += \ 243 Actions/FragmentationAction/FitPotentialAction.def 244 endif 245 236 246 237 247 GRAPHACTIONSOURCE = \ … … 543 553 libMolecuilderActionPrototypes_la_CPPFLAGS += $(JobMarket_CFLAGS) 544 554 endif 555 if CONDLEVMAR 556 libMolecuilderActionPrototypes_la_CPPFLAGS += $(LEVMAR_CPPFLAGS) 557 endif 545 558 libMolecuilderActions_la_includedir = $(includedir)/MoleCuilder/ 546 559 libMolecuilderActionPrototypes_la_includedir = $(includedir)/MoleCuilder/ -
src/Makefile.am
r57f14c r48d20d 488 488 endif 489 489 490 if CONDLEVMAR491 bin_PROGRAMS += LevMartester492 LevMartester_SOURCES = LevMartester.cpp493 LevMartester_CPPFLAGS = $(AM_CPPFLAGS) $(LEVMAR_CPPFLAGS)494 LevMartester_LDFLAGS = $(AM_LDFLAGS) $(BOOST_SERIALIZATION_LDFLAGS) $(BOOST_PROGRAM_OPTIONS_LDFLAGS) $(BOOST_FILESYSTEM_LDFLAGS) $(BOOST_SYSTEM_LDFLAGS) ${CodePatterns_LDFLAGS} $(LEVMAR_LDFLAGS)495 LevMartester_LDADD = \496 libMolecuilderPotentials.la \497 libMolecuilderFunctionApproximation.la \498 libMolecuilderFragmentation.la \499 libMolecuilderFragmentation_getFromKeysetStub.la \500 libMolecuilderFragmentationSetValues.la \501 libMolecuilderHelpers.la \502 $(top_builddir)/LinearAlgebra/src/LinearAlgebra/libLinearAlgebra.la \503 $(BOOST_SERIALIZATION_LIBS) \504 $(BOOST_PROGRAM_OPTIONS_LIBS) \505 $(BOOST_FILESYSTEM_LIBS) \506 $(BOOST_SYSTEM_LIBS) \507 ${CodePatterns_LIBS} \508 $(LEVMAR_LIBS) \509 $(LAPACK_LIBS) $(BLAS_LIBS) $(LIBS) $(FLIBS)510 endif511 512 490 unity_SOURCES = unity.cpp 513 491 unity_CPPFLAGS = $(AM_CPPFLAGS) -
src/documentation/constructs/constructs.dox
r57f14c r48d20d 31 31 * \li \ref observers 32 32 * \li \ref parameters 33 * \li \ref parsers 34 * \li \ref potentials 33 * \li \ref parsers "Parsers" 34 * \li \ref potentials "Potentials" 35 35 * \li \ref qt-gui 36 36 * \li \ref queries … … 47 47 * 48 48 * 49 * \date 2013-0 2-0749 * \date 2013-04-09 50 50 * 51 51 */ -
src/documentation/constructs/potentials.dox
r57f14c r48d20d 71 71 * perform the fit. 72 72 * 73 * \section potentials-howto Howto use the potentials73 * \section potentials-howto-use Howto use the potentials 74 74 * 75 75 * We just give a brief run-down in terms of code on how to use the potentials. 76 * Here, we just describe what to do in order to perform the fitting. 76 * Here, we just describe what to do in order to perform the fitting. This is 77 * basically what is implemented in FragmentationFitPotentialAction. 77 78 * 78 79 * \code … … 102 103 * // give initial parameter 103 104 * FunctionModel::parameters_t params(PairPotential_Angle::MAXPARAMS, 0.); 104 * ... set some initial parameters105 * // ... set some potential-specific initial parameters in params struct 105 106 * angle.setParameters(params); 106 107 * … … 123 124 * // evaluate 124 125 * FunctionModel::arguments_t args; 125 * .. initialise args to the desired distances126 * // .. initialise args to the desired distances 126 127 * const double value = angle(args)[0]; // output is a vector! 127 128 * \endcode 128 129 * 129 * \date 2012-11-28 130 * \section potentials-stability-of-fit note in stability of fit 131 * 132 * As we always start from random initial parameters (within a certain sensible 133 * range at least), the non-linear fit does not always converge. For this case 134 * the FragmentationFitPotentialAction has the option "take-best-of" to allow 135 * for multiple fits where the best (in terms of l2 error) is taken eventually. 136 * 137 * \section potentials-howto-add Howto add new potentials 138 * 139 * Adding a new potential requires the following: 140 * -# Add the new modules to Potentials/Specifics 141 * -# Add a unit test on the potential in Potentials/Specifics/unittests 142 * -# Give the potential a type name and add it to PotentialTypes.def. Note 143 * that the name must not contain white space. 144 * -# Add the potential name as case to PotentialFactory such that it knows 145 * how to instantiate your new potential when requested. 146 * 147 * PotentialTypes.def contains a boost::preprocessor sequence of all 148 * potential names. PotentialFactory uses this sequence to build its enum to 149 * type map and inverse which the user sees when specifying the potential to 150 * fit via PotentialTypeValidator. 151 * 152 * 153 * \date 2013-04-09 130 154 */ -
src/documentation/install.dox
r57f14c r48d20d 55 55 * -# MPQC: see below for instructions 56 56 * -# ScaFaCoS: see below for instructions 57 * -# VTK: see below for instructions 58 * -# levmar: see below for instructions 57 59 * 58 60 * If you are programming with or for MoleCuilder, the following packages are … … 109 111 * \subsubsection install-prerequisites-other-scafacos ScaFaCoS 110 112 * 111 * ScaFaCoS is a library of fast Coulomb solvers, created by the same-named BMBF112 * funded project. The library contains Versatile MultiGrid (vmg) as one of its113 * solvers which is used in the BOSSANOVA scheme for the calculation of114 * long-range forces.113 * ScaFaCoS (http://www.scafacos.org/) is a library of fast Coulomb solvers, 114 * created by the same-named BMBF funded project. The library contains Versatile 115 * MultiGrid (vmg) as one of its solvers which is used in the BOSSANOVA scheme 116 * for the calculation of long-range forces. 115 117 * 116 118 * ScaFaCoS requires the following packages to compile: … … 118 120 * -# F2C: libf2c2-dev 119 121 * -# Fortran compiler: gfortan 122 * -# VTK >=5.10 123 * 124 * Firstly, you should obtain a recent copy of the visualization tool kit (VTK) 125 * (http://www.vtk.org/) and compile as 126 * \code 127 * export MPI_HOME=$( which mpirun | sed 's#/bin/mpirun##g') 128 * export CXX_FLAGS=-fPIC 129 * cmake -DCMAKE_INSTALL_PREFIX:PATH=<install-path> \ 130 * -DBUILD_SHARED_LIBS=TRUE \ 131 * -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF \ 132 * -DCMAKE_INSTALL_RPATH:PATH=<install-path>/lib/vtk-<install-version> \ 133 * -DCMAKE_INSTALL_RPATH_USE_LINK_PATH:BOOL=ON \ 134 * -DCMAKE_SKIP_BUILD_RPATH:BOOL=OFF \ 135 * -DVTK_USE_PARALLEL:BOOL=ON \ 136 * -DVTK_USE_MPI:BOOL=ON \ 137 * -DMPI_LIBRARY:PATH=${MPI_HOME}/lib/libmpi.so \ 138 * -DMPI_EXTRA_LIBRARY:PATH=${MPI_HOME}/lib/libmpi_cxx.so \ 139 * -DMPI_INCLUDE_PATH:PATH=${MPI_HOME}/include/mpi \ 140 * .. 141 * make -j4 142 * make install 143 * \endcode 144 * where we force rpath-linking and shared libraries (MPI is actually not 145 * required here). 146 * 120 147 * Compilation additionally required use of 121 148 * \code CPPFLAGS="-fPIC" \endcode … … 125 152 * for a debug compile you might want to use: 126 153 * \code 127 * ../configure -C --prefix=<path> --enable-shared BSPLINE_DEG=3 MPICC=mpicc.openmpi 128 * MPICXX=mpicxx.openmpi MPIEXEC=mpirun.openmpi CPPFLAGS="-Wall -g3 -O0 -ggdb -fPIC" 129 * --enable-mpi --with-boost-libdir=/usr/lib --with-boost=/usr --enable-fcs-solvers=vmg 154 * ../configure \ 155 * -C \ 156 * --prefix=<path> \ 157 * --enable-shared \ 158 * BSPLINE_DEG=3 \ 159 * MPICC=mpicc.openmpi \ 160 * MPICXX=mpicxx.openmpi \ 161 * MPIEXEC=mpirun.openmpi \ 162 * CPPFLAGS="-Wall -g3 -O0 -ggdb -fPIC" \ 163 * --enable-mpi \ 164 * --with-boost-libdir=/usr/lib --with-boost=/usr \ 165 * --with-vtk=<path-to-vtk> --with-vtk-version=<vtk-version path string, i.e. -5.10> \ 166 * --enable-fcs-solvers=vmg 130 167 * \endcode 168 * where we specify a recent boost and the installed VTK version from above. 169 * 170 * \subsubsection install-prerequisites-other-levmar LevMar 171 * 172 * We also require the levmar (http://www.ics.forth.gr/~lourakis/levmar/) which 173 * implements a Levenberg-Marquardt for non-linear regression which is employed 174 * for fitting empirical potentials to energies obtained from calculated 175 * fragment energies. 176 * 177 * Compile and install as follows 178 * \code 179 * cmake \ 180 * -DCMAKE_INSTALL_PREFIX:PATH=<install-path> \ 181 * -DCMAKE_C_FLAGS="-fPIC" \ 182 * .. 183 * make 184 * cp -f liblevmar.a <install-path>/lib 185 * cp -f levmar.h <install-path>/include 186 * \endcode 187 * where we have to copy the stuff by hand as no \a install target exists. 131 188 * 132 189 * \subsubsection install-prerequisites-other-mpqc MPQC … … 276 333 * from a distributed archive. This is checked for each release version. 277 334 * 278 * \date 201 2-12-20335 * \date 2013-04-09 279 336 */ -
tests/Python/AllActions/options.dat
r57f14c r48d20d 75 75 fill-void "water.data" 76 76 fill-void "water.xyz" 77 fit-potential "morse" 77 78 forces-file "test.forces" 79 fragment-charges "1 1" 78 80 fragment-executable "mpqc" 79 81 fragment-jobs "Job00.in" … … 131 133 position "7.283585982 3.275186040 3.535886037" 132 134 position "9.78 2.64 2.64" 135 potential-charges "1 1" 133 136 radius "20." 134 137 random-atom-displacement "0." … … 201 204 stretch-shapes "1. 2. 3." 202 205 suspend-in-water "1.0" 206 take-best-of "5" 203 207 tesselation-radius "5." 204 208 time-step-zero "0" -
tests/regression/Fragmentation/testsuite-fragmentation.at
r57f14c r48d20d 29 29 # check storing saturated fragment 30 30 m4_include([Fragmentation/StoreSaturatedFragment/testsuite-fragmentation-store-saturated-fragment.at]) 31 32 # fitting potential to fragment results 33 m4_include([Fragmentation/FitPotential/testsuite-fragmentation-fit-potential.at]) -
tests/regression/Makefile.am
r57f14c r48d20d 73 73 $(srcdir)/Fragmentation/testsuite-fragmentation.at \ 74 74 $(srcdir)/Fragmentation/AnalyseFragmentationResults/testsuite-fragmentation-analyse-fragment-results.at \ 75 $(srcdir)/Fragmentation/FitPotential/testsuite-fragmentation-fit-potential.at \ 75 76 $(srcdir)/Fragmentation/FragmentMolecule/testsuite-fragmentation-fragment-molecule.at \ 76 77 $(srcdir)/Fragmentation/FragmentMolecule-MaxOrder/testsuite-fragmentation-fragment-molecule-maxorder.at \ -
tests/regression/testsuite.at
r57f14c r48d20d 22 22 23 23 AT_INIT([Molecular Builder]) 24 AT_TESTED(diff grep egrep fgrep )24 AT_TESTED(diff grep egrep fgrep awk) 25 25 26 26 # makes functions in CheckCommand.sh available within the tests
Note:
See TracChangeset
for help on using the changeset viewer.