ESyS-Particle
2.2
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
HertzianElasticInteraction.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 __HERTZIANELASTICINTERACTION_H
14
#define __HERTZIANELASTICINTERACTION_H
15
16
#include "
Model/IGParam.h
"
17
#include "
Model/Interaction.h
"
18
#include "
Model/Particle.h
"
19
20
24
class
CHertzianElasticIGP
:
public
AIGParam
25
{
26
public
:
27
double
m_E
;
28
double
m_nu
;
// poisson ratio
29
30
CHertzianElasticIGP
();
31
CHertzianElasticIGP
(
const
std::string&,
double
,
double
);
32
33
virtual
std::string
getTypeString
()
const
{
return
"HertzianElastic"
;}
34
};
35
43
class
CHertzianElasticInteraction
:
public
APairInteraction
44
{
45
public
:
46
47
typedef
double (
CHertzianElasticInteraction
::*
ScalarFieldFunction
)()
const
;
48
typedef
Vec3
(
CHertzianElasticInteraction
::*
VectorFieldFunction
)()
const
;
49
typedef
pair<bool,double> (
CHertzianElasticInteraction
::*
CheckedScalarFieldFunction
)()
const
;
50
51
static
ScalarFieldFunction
getScalarFieldFunction
(
const
string
&);
52
static
VectorFieldFunction
getVectorFieldFunction
(
const
string
&);
53
static
CheckedScalarFieldFunction
getCheckedScalarFieldFunction
(
const
string
&);
54
55
private
:
56
double
m_E
;
57
double
m_nu
;
58
Vec3
m_force
;
// caching force for E_pot
59
double
m_dn
;
// caching displacement for E_pot
60
Vec3
m_cpos
;
// center position
61
62
public
:
63
typedef
CHertzianElasticIGP
ParameterType
;
64
65
CHertzianElasticInteraction
(
CParticle
*,
CParticle
*,
const
CHertzianElasticIGP
&);
66
virtual
~CHertzianElasticInteraction
(){};
67
68
virtual
Vec3
getPos
()
const
{
return
m_cpos
;};
69
double
getPotentialEnergy
()
const
;
70
71
virtual
void
calcForces
();
72
Vec3
getForce
()
const
;
73
};
74
#endif //__HERTZIANELASTICINTERACTION_H
Model
HertzianElasticInteraction.h
Generated on Mon May 6 2013 23:26:30 for ESyS-Particle by
1.8.3.1