ESyS-Particle  2.3.4
CappedBondedInteraction.h
Go to the documentation of this file.
1 // //
3 // Copyright (c) 2003-2017 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.apache.org/licenses/LICENSE-2.0 //
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
CBondedInteraction::m_dist
double m_dist
current distance, cached from last calcForces()
Definition: BondedInteraction.h:80
CCappedBondedIGP
Interaction parameters for bonded interaction with a force limit.
Definition: CappedBondedInteraction.h:41
CBondedInteraction::m_break
double m_break
breaking distance
Definition: BondedInteraction.h:81
CBondedInteraction::getTag
int getTag() const
Definition: BondedInteraction.h:109
CCappedBondedInteraction
Elastic interaction with force limit between bonded particles.
Definition: CappedBondedInteraction.h:60
APairInteraction::m_p2
CParticle * m_p2
Definition: Interaction.h:71
TML_PackedMessageInterface
Abstract base/interface class for packed messages to be used in TML_Pack.
Definition: packed_message_interface.h:29
CCappedBondedInteraction::ScalarFieldFunction
double(CCappedBondedInteraction::* ScalarFieldFunction)() const
Definition: CappedBondedInteraction.h:64
CBondedInteraction
Elastic interaction between bonded particles.
Definition: BondedInteraction.h:65
CBondedInteraction::m_tag
int m_tag
Interaction tag;.
Definition: BondedInteraction.h:84
AInteraction::Count
double Count() const
Definition: Interaction.h:56
CCappedBondedInteraction::getVectorFieldFunction
static VectorFieldFunction getVectorFieldFunction(const string &)
Definition: CappedBondedInteraction.cpp:124
CCappedBondedInteraction::getType
static string getType()
Definition: CappedBondedInteraction.h:86
CBondedInteraction::getForce
Vec3 getForce() const
Definition: BondedInteraction.cpp:168
CBondedInteraction::setTag
void setTag(int tag)
Definition: BondedInteraction.h:110
console.h
BondedInteraction.h
CBondedInteraction::m_k
double m_k
spring constant
Definition: BondedInteraction.h:78
CBondedInteraction::getPotentialEnergy
double getPotentialEnergy() const
Definition: BondedInteraction.cpp:147
TML_PackedMessageInterface::pop_int
virtual int pop_int()=0
APairInteraction::m_p1
CParticle * m_p1
Definition: Interaction.h:71
CCappedBondedInteraction::getScalarFieldFunction
static ScalarFieldFunction getScalarFieldFunction(const string &)
Definition: CappedBondedInteraction.cpp:101
Interaction.h
CParticle::applyForce
void applyForce(const Vec3 &, const Vec3 &)
Definition: Particle.cpp:384
CCappedBondedInteraction::~CCappedBondedInteraction
virtual ~CCappedBondedInteraction()
Definition: CappedBondedInteraction.cpp:60
CBondedInteraction::m_force
Vec3 m_force
current force, cached for E_pot calculation
Definition: BondedInteraction.h:82
TML_PackedMessageInterface::pop_double
virtual double pop_double()=0
BondedInteractionCpData.h
CCappedBondedInteraction::VectorFieldFunction
Vec3(CCappedBondedInteraction::* VectorFieldFunction)() const
Definition: CappedBondedInteraction.h:66
CBondedInteraction::m_r0
double m_r0
equilibrium distance
Definition: BondedInteraction.h:79
NULL
#define NULL
Definition: t_list.h:17
CCappedBondedInteraction::ParameterType
CCappedBondedIGP ParameterType
Definition: CappedBondedInteraction.h:62
CCappedBondedIGP::m_force_limit
double m_force_limit
Definition: CappedBondedInteraction.h:44
CCappedBondedInteraction::CCappedBondedInteraction
CCappedBondedInteraction()
Definition: CappedBondedInteraction.cpp:29
packed_message_interface.h
CappedBondedInteraction.h
CCappedBondedInteraction::calcForces
virtual void calcForces()
Definition: CappedBondedInteraction.cpp:71
TML_PackedMessageInterface::append
virtual void append(int)=0
CCappedBondedIGP::getTypeString
virtual std::string getTypeString() const
Definition: CappedBondedInteraction.h:49
CBondedInteraction::getStrain
double getStrain() const
Definition: BondedInteraction.cpp:158
Vec3
Definition: vec3.h:47
CCappedBondedInteraction::CheckedScalarFieldFunction
pair< bool, double >(CCappedBondedInteraction::* CheckedScalarFieldFunction)() const
Definition: CappedBondedInteraction.h:65
vec3.h
CCappedBondedInteraction::m_force_limit
double m_force_limit
maximum allowed force
Definition: CappedBondedInteraction.h:69
CBondedIGP::tag
int tag
Definition: BondedInteraction.h:53
CBondedIGP::k
double k
Spring constant.
Definition: BondedInteraction.h:51
CBondedInteraction::m_cpos
Vec3 m_cpos
Definition: BondedInteraction.h:83
CCappedBondedInteraction::getCheckedScalarFieldFunction
static CheckedScalarFieldFunction getCheckedScalarFieldFunction(const string &)
Definition: CappedBondedInteraction.cpp:143
CBondedIGP::rbreak
double rbreak
Breaking strain.
Definition: BondedInteraction.h:52
CBasicParticle::getRad
double getRad() const
Definition: BasicParticle.h:64
CCappedBondedIGP::CCappedBondedIGP
CCappedBondedIGP()
Definition: CappedBondedInteraction.cpp:19
CBasicParticle::getPos
Vec3 getPos() const
Definition: BasicParticle.h:62
AInteraction::m_id
vector< int > m_id
id's of the particles involved
Definition: Interaction.h:39
CBondedIGP
Interaction parameters for bonded interaction.
Definition: BondedInteraction.h:40
CParticle
Class for a basic particle.
Definition: Particle.h:51
IGParam.h
Particle.h