Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
state.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "conmodelbase.h"
4 #include "igenerictet.h"
5 #include "igenericzone.h"
6 #include <array>
7 
8 namespace itasca {
9  class IProgram;
10 }
11 
17 namespace models {
18  using namespace itasca;
19 
32  struct State {
33  public:
34  static const UInt max_working_ = 50;
35  static const UInt max_iworking_ = 10;
36 
40  virtual Double getSubZoneVolume() const=0;
42  virtual Double getZoneVolume(bool deformed = false) const=0;
47  virtual DVect3 getRotation() const=0;
48  virtual Double getDensity() const=0;
51  virtual void setDensity(const Double&)=0;
52  virtual Double getTemperature() const=0;
53  virtual Double getTimeStep() const=0;
54  virtual Double getPorosity() const=0;
55  virtual bool isLarge() const=0;
56  virtual bool isThermal() const=0;
57  virtual bool isCreep() const=0;
58  virtual bool isFluid() const=0;
59  virtual bool isThermalInUse() const = 0;
60  virtual bool isCreepInUse() const = 0;
61  virtual bool isFluidInUse() const = 0;
62  virtual SymTensor getEffectiveZoneStress() const=0;
65  virtual Double getAveragePP() const=0;
66  virtual double getTMUtility(unsigned index=0) const=0;
67  virtual double getFMUtility(unsigned index=0) const=0;
68  virtual void * getTableIndexFromID(const String &id) const=0;
74  virtual Double getYFromX(void *index,const Double &x) const=0;
76  virtual Double getSlopeFromX(void *index,const Double &x) const=0;
78  virtual IProgram *getIProgram()=0;
79  virtual IGenericZone *getIZone()=0;
80  virtual IGenericTet * getITet()=0;
81  virtual ULong getZoneID() const=0;
82  virtual ULong getTetID() const=0;
83  CONMODEL_EXPORT State();
87  unsigned int sub_zone_;
88  unsigned int total_sub_zones_;
89  unsigned int overlay_;
90  unsigned long state_;
99  SymTensor stnS_;
102  bool viscous_;
106  bool modulus_changed_;
110  Double pore_pressure_increment_;
113  std::array<Double,max_working_> working_;
114  std::array<Int,max_iworking_> iworking_;
115  };
116 } // namespace models
117 // EoF
unsigned __int64 ULong
unsigned 64 bit
Definition: basedef.h:37
namespace Itasca
Definition: basememory.cpp:9
std::array< Double, max_working_ > working_
This is a working area for values that must be stored between run() calls.
Definition: state.h:113
Generic base class for the tetra interface made available to the constitutive model system.
Definition: igenerictet.h:22
Generic base class for the zone interface made available to the constitutive model system.
The Constitutive Model interface library.
Definition: conmodel.cpp:7
SymTensor stnE_
6 components of strain increment, input to run().
Definition: state.h:98
unsigned int UInt
unsigned 32 bit
Definition: basedef.h:31
unsigned int total_sub_zones_
Total # of sub zones involved, from all overlays. Minimum value of 1.
Definition: state.h:88
unsigned int overlay_
Definition: state.h:89
A symmetric 2nd order tensor.
Definition: symtensor.h:19
Double modulus_reduction_factor_
modulus reduction factor from hysteretic damping or small strain effect.
Definition: state.h:101
double Double
64 bit floating point
Definition: basedef.h:40
Generic base class for the zone interface made available to the constitutive model system.
Definition: igenericzone.h:22
The main program access point.
Definition: iprogram.h:37
std::array< Int, max_iworking_ > iworking_
This is a working area for values that must be stored between run() calls.
Definition: state.h:114
The structure used to pass information to the constitutive model.
Definition: state.h:32
unsigned int sub_zone_
# of sub zone being operated on (starting at 0).
Definition: state.h:87