ESyS-Particle  2.3
CappedBondedInteraction.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2014 by The University of Queensland //
4 // Centre for Geoscience Computing //
5 // http://earth.uq.edu.au/centre-geoscience-computing //
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 __CAPPEDBONDEDINTERACTION_H
14 #define __CAPPEDBONDEDINTERACTION_H
15 
16 // -- project includes --
17 #include "Model/IGParam.h" // keep this one first - it drags in mpi.h
19 #include "Model/Interaction.h"
20 #include "Model/Particle.h"
22 #include "Foundation/vec3.h"
23 
24 // -- I/O includes --
25 #include <iostream>
26 using std::ostream;
27 
28 // -- STL includes --
29 #include <utility>
30 
31 using std::pair;
32 
41 {
42 
43 public:
44  double m_force_limit; // maximum force
45 
47  CCappedBondedIGP(const std::string &name, int tag, double normalK, double breakDistance,double forceLimit);
48 
49  virtual std::string getTypeString() const {return "CappedBonded"; }
50 };
51 
60 {
61  public: // types
63 
64  typedef double (CCappedBondedInteraction::* ScalarFieldFunction)() const;
65  typedef pair<bool,double> (CCappedBondedInteraction::* CheckedScalarFieldFunction)() const;
67 
68  protected:
69  double m_force_limit;
71 
72  public:
75  CParticle *particle1,
76  CParticle *particle2,
77  const CCappedBondedIGP &params
78  );
79 
80  virtual ~CCappedBondedInteraction();
81 
82  static ScalarFieldFunction getScalarFieldFunction(const string&);
84  static VectorFieldFunction getVectorFieldFunction(const string&);
85 
86  static string getType() {return "CappedBonded";};
87 
88  virtual void calcForces();
89 
91 };
92 
93 #endif //__CAPPEDBONDEDINTERACTION_H
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: CappedBondedInteraction.cpp:124
static CheckedScalarFieldFunction getCheckedScalarFieldFunction(const string &)
Definition: CappedBondedInteraction.cpp:143
CCappedBondedIGP ParameterType
Definition: CappedBondedInteraction.h:62
virtual void calcForces()
Definition: CappedBondedInteraction.cpp:71
Definition: vec3.h:46
Interaction parameters for bonded interaction.
Definition: BondedInteraction.h:39
double m_force_limit
maximum allowed force
Definition: CappedBondedInteraction.h:69
Elastic interaction with force limit between bonded particles.
Definition: CappedBondedInteraction.h:59
int tag
Definition: BondedInteraction.h:53
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: CappedBondedInteraction.cpp:101
double m_force_limit
Definition: CappedBondedInteraction.h:44
static string getType()
Definition: CappedBondedInteraction.h:86
CCappedBondedIGP()
Definition: CappedBondedInteraction.cpp:19
Elastic interaction between bonded particles.
Definition: BondedInteraction.h:64
pair< bool, double >(CCappedBondedInteraction::* CheckedScalarFieldFunction)() const
Definition: CappedBondedInteraction.h:65
Interaction parameters for bonded interaction with a force limit.
Definition: CappedBondedInteraction.h:40
Vec3(CCappedBondedInteraction::* VectorFieldFunction)() const
Definition: CappedBondedInteraction.h:66
double(CCappedBondedInteraction::* ScalarFieldFunction)() const
Definition: CappedBondedInteraction.h:64
virtual std::string getTypeString() const
Definition: CappedBondedInteraction.h:49
CCappedBondedInteraction()
Definition: CappedBondedInteraction.cpp:29
Class for a basic particle.
Definition: Particle.h:50
virtual ~CCappedBondedInteraction()
Definition: CappedBondedInteraction.cpp:60
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:28