Emdee
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
twoparticleforce.h
Go to the documentation of this file.
1 #ifndef TWOPARTICLEFORCE_H
2 #define TWOPARTICLEFORCE_H
3 
4 // Local headers
5 #include <math/vector3.h>
6 
7 // Forward declarations
8 class Atom;
9 
10 // System headers
11 #include <armadillo>
12 //#include <libconfig.h++>
13 
14 using namespace arma;
15 //using namespace libconfig;
16 
21 {
22 public:
24 
25  virtual void calculateAndApplyForce(Atom *atom1, Atom *atom2);
26  virtual void calculateAndApplyForce(Atom* atom1, Atom* atom2, const Vector3 &atom2Offset) = 0;
27 
28  void setNewtonsThirdLawEnabled(bool enable);
29  bool isNewtonsThirdLawEnabled();
30  void setCalculatePressureEnabled(bool enable);
31  bool isCalculatePressureEnabled();
32  void setCalculatePotentialEnabled(bool enable);
33  bool isCalculatePotentialEnabled();
34  double cutoffRadius() const;
35  void setCutoffRadius(double cutoffRadius);
36 
37 private:
38  bool m_isNewtonsThirdLawEnabled;
39  bool m_isCalculatePressureEnabled;
40  bool m_isCalculatePotentialEnabled;
41  double m_cutoffRadius;
42 };
43 
45  m_isNewtonsThirdLawEnabled = enable;
46 }
47 
49  return m_isNewtonsThirdLawEnabled;
50 }
51 
53  m_isCalculatePressureEnabled = enable;
54 }
55 
57  return m_isCalculatePressureEnabled;
58 }
59 
61  m_isCalculatePotentialEnabled = enable;
62 }
63 
65  return m_isCalculatePotentialEnabled;
66 }
67 
68 #endif // TWOPARTICLEFORCE_H