Ignore:
Timestamp:
Dec 19, 2012, 3:25:31 PM (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:
1dca9a
Parents:
dac89b1
git-author:
Frederik Heber <heber@…> (10/03/12 19:08:38)
git-committer:
Frederik Heber <heber@…> (12/19/12 15:25:31)
Message:

EmpiricalPotential and FunctionModel are now inherited virtually, have overlapping function definitions.

  • EmpiricalPotential and FunctionModel differ only in the way of the derivative. The simple function evaluation is the same. EmpiricalPotential however desires the derivative with respect to the arguments, while FunctionModel requires the derivative with respect to the parameters.
  • therefore, we shifted some of the function definitions in between the two and had to some typedefs in PairPotential_Harmonic and ManyBodyPotential_Tersoff to clarify ambiguities.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/Potentials/EmpiricalPotential.hpp

    rdac89b1 r3ccea3  
    3131{
    3232public:
     33  //!> typedef for the argument vector as input to the function
     34  typedef std::vector<argument_t> arguments_t;
     35  //!> typedef for a single result degree of freedom
     36  typedef double result_t;
     37  //!> typedef for the result vector as returned by the function
     38  typedef std::vector<result_t> results_t;
     39  //!> typedef for the components of the derivative
     40  typedef std::vector<result_t> derivative_components_t;
     41
    3342  /** Default constructor for class EmpiricalPotential.
    3443   *
     
    4049   */
    4150  virtual ~EmpiricalPotential() {}
     51
     52  /** Evaluates the function with the given \a arguments and the current set of
     53   * parameters.
     54   *
     55   * \param arguments set of arguments as input variables to the function
     56   * \return result of the function
     57   */
     58  virtual results_t operator()(const arguments_t &arguments) const=0;
     59
     60  /** Evaluates the derivative of the function with the given \a arguments
     61   * for each component.
     62   *
     63   * \param arguments set of arguments as input variables to the function
     64   * \return result vector containing the derivative with respect to each
     65   *         input comonent of the function
     66   */
     67  virtual derivative_components_t derivative(const arguments_t &arguments) const=0;
    4268};
    4369
Note: See TracChangeset for help on using the changeset viewer.