source: src/Potentials/Specifics/FourBodyPotential_Improper.hpp@ 40fe06

FitPartialCharges_GlobalError
Last change on this file since 40fe06 was 9c793c, checked in by Frederik Heber <heber@…>, 8 years ago

All ..Potentials now return BindingModel instead of HomologyGraph, Extractors::reorderArg..() uses it.

  • Extractors::filterArg..() and ::reorderArg..() expect BindingModel instead of HomologyGraph.
  • TESTFIX: Lennard Jones potential fitting regression test no longer fails because it is purely non-bonded.
  • Property mode set to 100644
File size: 2.5 KB
Line 
1/*
2 * FourBodyPotential_Improper.hpp
3 *
4 * Created on: Jul 10, 2013
5 * Author: heber
6 */
7
8#ifndef FOURBODYPOTENTIAL_IMPROPER_HPP_
9#define FOURBODYPOTENTIAL_IMPROPER_HPP_
10
11// include config.h
12#ifdef HAVE_CONFIG_H
13#include <config.h>
14#endif
15
16#include "FourBodyPotential_Torsion.hpp"
17
18class FourBodyPotential_ImproperTest;
19class PotentialFactory;
20
21/** The improper potential is identical to the torsion potential with exception
22 * of the way the angle is calculated.
23 *
24 * Hence, we only need to override function_theta().
25 *
26 */
27class FourBodyPotential_Improper : public FourBodyPotential_Torsion
28{
29 //!> grant unit test access to internal parts
30 friend class FourBodyPotential_ImproperTest;
31 //!> grant PotentialFactory access to default cstor
32 friend class PotentialFactory;
33 // some repeated typedefs to avoid ambiguities
34 typedef FunctionModel::result_t result_t;
35 typedef FunctionModel::results_t results_t;
36private:
37 /** Private default constructor.
38 *
39 * This prevents creation of potential without set ParticleTypes_t.
40 *
41 * \note PotentialFactory may use this default cstor
42 *
43 */
44 FourBodyPotential_Improper();
45
46 /** Returns the functor that converts argument_s into the
47 * internal coordinate described by this potential function.
48 *
49 * \return coordinator functor
50 */
51 Coordinator::ptr getCoordinator() const
52 { return coordinator; }
53
54public:
55 FourBodyPotential_Improper(const ParticleTypes_t &_ParticleTypes);
56 FourBodyPotential_Improper(
57 const ParticleTypes_t &_ParticleTypes,
58 const double _spring_constant,
59 const double _equilibrium_distance);
60 virtual ~FourBodyPotential_Improper() {}
61
62 /** Getter for the graph specifying the binding model of the potential.
63 *
64 * \return BindingModel ref of the binding model
65 */
66 const BindingModel& getBindingModel() const
67 { return bindingmodel; }
68
69private:
70
71 /** Return the token name of this specific potential.
72 *
73 * We need to override the function in order to use a different static variable.
74 *
75 * \return token name of the potential
76 */
77 const std::string& getToken() const
78 { return improper_token; }
79
80private:
81 //!> static definitions of the parameter name for this potential
82 static const ParameterNames_t ParameterNames;
83
84 //!> static token of this potential type
85 static const std::string improper_token;
86
87 //!> internal coordinator object for converting arguments_t
88 static Coordinator::ptr coordinator;
89
90 //!> binding model for this potential
91 const BindingModel bindingmodel;
92};
93
94#endif /* FOURBODYPOTENTIAL_IMPROPER_HPP_ */
Note: See TracBrowser for help on using the repository browser.