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/Specifics/ManyBodyPotential_Tersoff.hpp

    rdac89b1 r3ccea3  
    2727 *
    2828 */
    29 class ManyBodyPotential_Tersoff : public EmpiricalPotential, public FunctionModel
     29class ManyBodyPotential_Tersoff : virtual public EmpiricalPotential, virtual public FunctionModel
    3030{
     31  // some repeated typedefs to avoid ambiguities
     32  typedef FunctionModel::arguments_t arguments_t;
     33  typedef FunctionModel::result_t result_t;
     34  typedef FunctionModel::results_t results_t;
     35  typedef EmpiricalPotential::derivative_components_t derivative_components_t;
    3136private:
    3237  //!> cutoff_offset offset for cutoff parameter
     
    113118  derivative_components_t derivative(const arguments_t &arguments) const;
    114119
     120  /** Evaluates the derivative of the function with the given \a arguments
     121   * with respect to a specific parameter indicated by \a index.
     122   *
     123   * \param arguments set of arguments as input variables to the function
     124   * \param index derivative of which parameter
     125   * \return result vector containing the derivative with respect to the given
     126   *         input
     127   */
     128  virtual results_t paramter_derivative(const arguments_t &arguments, const size_t index) const=0;
     129
    115130private:
    116131  /** This function represents the cutoff \f$ f_C \f$.
Note: See TracChangeset for help on using the changeset viewer.