Ignore:
Timestamp:
May 3, 2013, 11:58:26 AM (12 years ago)
Author:
Frederik Heber <heber@…>
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)
Message:

Added new action FitPotentialAction to fit empirical potentials.

  • moved functionality from levmartester into new Action.
  • removed levmartester.
  • needs both enable-levmar and path to libs/include with-levmar. This allows checking as distinct enable switch.
  • added regression test Fragmentation/FitPotential for morse and harmonic_angle fit to water molecule. Using awk to check on L2 error.
  • added take-best-of option such that fits is done as many times and best (in terms of l2 error) is used. This should make regression test FitPotential more stable (right now we take best of 5).
  • DOCU: extended construct documentation due to new PotentialTypes construct.
  • DOCU: made construct lists items appear alphabetically.
  • DOCU: extended installation documentation with VTK and levmar.
  • DOCU: also URLs for scafacos, VTK, and levmar.
Location:
src/documentation/constructs
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • src/documentation/constructs/constructs.dox

    r57f14c r48d20d  
    3131 *  \li \ref observers
    3232 *  \li \ref parameters
    33  *  \li \ref parsers
    34  *  \li \ref potentials
     33 *  \li \ref parsers "Parsers"
     34 *  \li \ref potentials "Potentials"
    3535 *  \li \ref qt-gui
    3636 *  \li \ref queries
     
    4747 *
    4848 *
    49  * \date 2013-02-07
     49 * \date 2013-04-09
    5050 *
    5151 */
  • src/documentation/constructs/potentials.dox

    r57f14c r48d20d  
    7171 *    perform the fit.
    7272 *
    73  * \section potentials-howto Howto use the potentials
     73 * \section potentials-howto-use Howto use the potentials
    7474 *
    7575 *  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.
    7778 *
    7879 *  \code
     
    102103 *  // give initial parameter
    103104 *  FunctionModel::parameters_t params(PairPotential_Angle::MAXPARAMS, 0.);
    104  *  ... set some initial parameters
     105 *  // ... set some potential-specific initial parameters in params struct
    105106 *  angle.setParameters(params);
    106107 *
     
    123124 *  // evaluate
    124125 *  FunctionModel::arguments_t args;
    125  *  .. initialise args to the desired distances
     126 *  // .. initialise args to the desired distances
    126127 *  const double value = angle(args)[0]; // output is a vector!
    127128 *  \endcode
    128129 *
    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
    130154 */
Note: See TracChangeset for help on using the changeset viewer.