10 #include "contactmodel/interface/icontactmodelmechanical.h"
11 #include "shared/src/vector.h"
15 #pragma warning(disable : 4251)
19 class IContactMechanical;
20 class IContactThermal;
28 class ContactModelThermalState;
29 class ContactModelFluidState;
51 DVect2 end1Curvature_ = DVect2(0.0);
52 DVect2 end2Curvature_ = DVect2(0.0);
53 double inertialMass_ = 0.0;
56 double maxConvergence_ = 0.0;
57 double end1Volume_ = 0.0;
58 double end2Volume_ = 0.0;
60 std::array<double,6> end1Stress_ = {0,0,0,0,0,0};
61 std::array<double,6> end2Stress_ = {0,0,0,0,0,0};
63 std::array<double,3> end1Stress_ = {0,0,0};
64 std::array<double,3> end2Stress_ = {0,0,0};
75 public IContactModelMechanical {
85 void setIndex(
int)
override {
throw Exception(
"Not at this level");};
86 double getActivityDistance()
const override {
throw Exception(
"Not at this level");};
87 void resetForcesAndMoments()
override {
throw Exception(
"Not at this level");};
89 void setArea(
const double &)
override {
throw Exception(
"Not at this level");};
90 double getArea()
const override {
throw Exception(
"Not at this level");};
128 DVect3
getNormal()
const override {
return DVect3(0.0); }
132 throw Exception(
"The contact model does not support pore pressures.");
138 [[maybe_unused]]
const CAxes& l =
CAxes())
override {}
166 virtual DVect2 getEffectiveTranslationalStiffness()
const {
return DVect2(0.0, 0.0); }
173 std::vector<double>*)
override {}
177 void getDiskList(
const IContact*, std::vector<DVect>*, std::vector<DVect>*,
178 std::vector<double>*, std::vector<double>*)
override {}
183 std::vector<double>*, std::vector<double>*, std::vector<double>*)
override {}
209 virtual void addToStorage(poly::vector<ContactModelMechanical> *,
int = -1) {
throw std::runtime_error(
"Base method called."); }
Class for specifying a particular 3D cartesian axes system, and converting to and from it.
Definition: caxes.h:103
Base exception class for all Itasca code.
Definition: baseexception.h:10
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
CAxes3D CAxes
Compact axis system, either 2D or 3D.
Definition: dim.h:161
DVect3 DVect
Vector of doubles, either 2D or 3D.
Definition: dim.h:150
DAVect3 DAVect
Angular vector of doubles, either 2D or 3D.
Definition: dim.h:158
namespace Itasca
Definition: basememory.cpp:10
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4