ESyS-Particle  2.2
ShortBondedInteraction.h
Go to the documentation of this file.
1 
2 // //
3 // Copyright (c) 2003-2013 by The University of Queensland //
4 // Earth Systems Science Computational Centre (ESSCC) //
5 // http://www.uq.edu.au/esscc //
6 // //
7 // Primary Business: Brisbane, Queensland, Australia //
8 // Licensed under the Open Software License version 3.0 //
9 // http://www.opensource.org/licenses/osl-3.0.php //
10 // //
12 
13 #ifndef __SHORTBONDEDINTERACTION_H
14 #define __SHORTBONDEDINTERACTION_H
15 
16 // -- project includes --
17 #include "Model/IGParam.h" // keep this one first - it drags in mpi.h
18 #include "Model/Interaction.h"
19 #include "Model/Particle.h"
20 #include "Model/BondedInteraction.h"
22 #include "Foundation/vec3.h"
23 
24 
34 {
35  public: // types
41 
42  typedef double (CShortBondedInteraction::* ScalarFieldFunction)() const;
43  typedef pair<bool,double> (CShortBondedInteraction::* CheckedScalarFieldFunction)() const;
45 
46  private:
47 
48  public:
51 
52  virtual ~CShortBondedInteraction();
53 
54  static ScalarFieldFunction getScalarFieldFunction(const string&);
56  static VectorFieldFunction getVectorFieldFunction(const string&);
57 
58  static string getType() {return "ShortBonded";};
59  double getEquiDist() const {return m_r0;};
60 
61  void saveCheckPointData(std::ostream &oStream);
62  void loadCheckPointData(std::istream &iStream);
63 
64  friend ostream& operator<<(ostream&,const CBondedInteraction&);
66 };
67 
68 
69 #endif // __SHORTBONDEDINTERACTION_H