ESyS-Particle  2.3.4
StressTensor.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 
14 #ifndef ESYS_LSMSTRESSTENSOR_H
15 #define ESYS_LSMSTRESSTENSOR_H
16 
17 #include "Foundation/vec3.h"
18 #include "Foundation/Matrix3.h"
21 
22 #include <vector>
23 #include <map>
24 
25 namespace esys
26 {
27  namespace lsm
28  {
29  class Tensor
30  {
31  public:
34 
36  : m_pos(),
37  m_tensor()
38  {
39  }
40 
41  Tensor(const Vec3 &pos, const Matrix3 &tensor)
42  : m_pos(pos),
43  m_tensor(tensor)
44  {
45  }
46 
47  virtual ~Tensor()
48  {
49  }
50 
51  const Vec3 &getPos() const
52  {
53  return m_pos;
54  }
55 
56  const Matrix3 &getTensor() const
57  {
58  return m_tensor;
59  }
60 
62  {
64  }
65 
66  private:
69  };
70 
71  class StressTensor : public Tensor
72  {
73  public:
76 
77  StressTensor(const Vec3 &pos, const Matrix3 &tensor, double radius)
78  : Tensor(pos, tensor),
79  m_radius(radius)
80  {
81  }
82 
83  StressTensor(const ParticleData &particleData, const Matrix3 &tensor)
84  : Tensor(particleData.getPos(), tensor),
85  m_radius(particleData.getRad())
86  {
87  }
88 
89  virtual ~StressTensor()
90  {
91  }
92 
93  double getRad() const
94  {
95  return m_radius;
96  }
97 
98  private:
99  double m_radius;
100  };
101  }
102 }
103 
104 #endif
esys::lsm::Tensor::Complex
EigenvalueCalculator::Complex Complex
Definition: StressTensor.h:32
esys::lsm::Tensor::Tensor
Tensor()
Definition: StressTensor.h:35
esys::lsm::EigenvalueCalculator::getEigenvalues
ComplexVector getEigenvalues(const Matrix3 &a)
Definition: EigenvalueCalculator.h:116
esys::lsm::StressTensor
Definition: StressTensor.h:72
esys::lsm::EigenvalueCalculator
Definition: EigenvalueCalculator.h:29
esys::lsm::StressTensor::~StressTensor
virtual ~StressTensor()
Definition: StressTensor.h:89
esys::lsm::ParticleData
Definition: Contact.h:26
Matrix3.h
esys::lsm::Tensor::getPos
const Vec3 & getPos() const
Definition: StressTensor.h:51
esys::lsm::StressTensor::StressTensor
StressTensor(const Vec3 &pos, const Matrix3 &tensor, double radius)
Definition: StressTensor.h:77
esys::lsm::Tensor::ComplexVector
EigenvalueCalculator::ComplexVector ComplexVector
Definition: StressTensor.h:33
esys
Definition: CheckPointable.cpp:17
esys::lsm::Tensor::getTensor
const Matrix3 & getTensor() const
Definition: StressTensor.h:56
esys::lsm::Tensor::getEigenvalues
ComplexVector getEigenvalues() const
Definition: StressTensor.h:61
esys::lsm::StressTensor::getRad
double getRad() const
Definition: StressTensor.h:93
esys::lsm::Tensor
Definition: StressTensor.h:30
esys::lsm::StressTensor::ComplexVector
EigenvalueCalculator::ComplexVector ComplexVector
Definition: StressTensor.h:75
Vec3
Definition: vec3.h:47
esys::lsm::Tensor::m_tensor
Matrix3 m_tensor
Definition: StressTensor.h:68
esys::lsm::StressTensor::Complex
EigenvalueCalculator::Complex Complex
Definition: StressTensor.h:74
vec3.h
Matrix3
3x3 Matrix
Definition: Matrix3.h:48
esys::lsm::Tensor::~Tensor
virtual ~Tensor()
Definition: StressTensor.h:47
esys::lsm::EigenvalueCalculator::ComplexVector
std::vector< Complex > ComplexVector
Definition: EigenvalueCalculator.h:32
esys::lsm::Tensor::m_pos
Vec3 m_pos
Definition: StressTensor.h:67
EigenvalueCalculator.h
esys::lsm::EigenvalueCalculator::Complex
std::complex< double > Complex
Definition: EigenvalueCalculator.h:31
esys::lsm::Tensor::Tensor
Tensor(const Vec3 &pos, const Matrix3 &tensor)
Definition: StressTensor.h:41
Contact.h
esys::lsm::StressTensor::m_radius
double m_radius
Definition: StressTensor.h:99
esys::lsm::StressTensor::StressTensor
StressTensor(const ParticleData &particleData, const Matrix3 &tensor)
Definition: StressTensor.h:83