3#include "conmodelbase.h"
4#include "igenerictet.h"
36 enum class CondType {D3=0, D2, D1};
77 virtual double getYFromX(
void *index,
const double &x)
const=0;
85 CONMODEL_EXPORT
State();
A symmetric 2nd order tensor.
Definition symtensor.h:22
The main program access point.
Definition iprogram.h:37
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.
Definition igenericzone.h:23
Generic base class for the zone interface made available to the constitutive model system.
namespace Itasca
Definition basememory.cpp:10
The Constitutive Model interface library.
Definition conmodel.cpp:7
The structure used to pass information to the constitutive model.
Definition state.h:32
virtual uint64 getTetID() const =0
The ID or index of the Tetra being processed. May be 0.
virtual bool isLarge() const =0
true if in large strain mode.
virtual double getTimeStep() const =0
The current time step.
virtual bool isCreepInUse() const =0
true if creep is in use.
virtual double getYFromX(void *index, const double &x) const =0
The index pointer should be previously obtained from a getTableIndexFromID() call.
SymTensor stnE_
6 components of strain increment, input to run().
Definition state.h:100
virtual double getFMUtility(unsigned index=0) const =0
Returns Fluid to Mechanical communication utility values.
virtual bool isThermal() const =0
true if thermal is configured.
virtual double getPorosity() const =0
The current zone fluid porosity.
unsigned int total_sub_zones_
Total # of sub zones involved, from all overlays. Minimum value of 1.
Definition state.h:90
double modulus_reduction_factor_
modulus reduction factor from hysteretic damping or small strain effect.
Definition state.h:103
virtual double getZoneVolume(bool deformed=false) const =0
Volume of the current zone as a whole.
virtual uint64 getZoneID() const =0
The ID or index of the Zone being processed. May be 0.
virtual double getSubZoneVolume() const =0
virtual double getTemperature() const =0
Temperature of the zone.
CondType condition_
condition number to define conditions.
Definition state.h:116
virtual void setDensity(const double &)=0
set Density of the zone.
virtual void * getTableIndexFromID(const string &id) const =0
Return a table index given an ID.
virtual bool isFluid() const =0
true if fluid/flow is configured.
std::array< int32, max_iworking_ > iworking_
This is a working area for values that must be stored between run() calls.
Definition state.h:118
virtual double getTMUtility(unsigned index=0) const =0
Returns Thermal to Mechanical communication utility values.
virtual double getDensity() const =0
Density of the zone.
bool modulus_changed_
Definition state.h:111
virtual SymTensor getEffectiveZoneStress() const =0
The average effective stress in the zone.
virtual bool isCreep() const =0
true if creep is configured.
virtual IGenericZone * getIZone()=0
A pointer to the IZone being processed. May be null.
double pore_pressure_increment_
Set to true in run() if modulus has changed (confined, shear, bulk).
Definition state.h:114
virtual DVect3 getRotation() const =0
Three components of overlay unit rotation in large strain.
unsigned int sub_zone_
# of sub zone being operated on (starting at 0).
Definition state.h:89
SymTensor stnS_
The current stress tensor is input to run(), and the model must return the updated tensor.
Definition state.h:102
virtual IGenericTet * getITet()=0
A pointer to the ITet in the IZone being processed. May be null.
virtual double getSlopeFromX(void *index, const double &x) const =0
The index pointer should be previously obtained from a getTableIndexFromID() call.
std::array< double, max_working_ > working_
= 0, 3D general (default); = 1, 2D plane-stress; = 2, 1D uniaxial
Definition state.h:117
virtual bool isFluidInUse() const =0
true if fluid/flow is in use.
unsigned long state_
Sub zone state bit flag.
Definition state.h:99
unsigned int overlay_
Definition state.h:91
virtual double getAveragePP() const =0
The average pore pressure in the zone.
virtual IProgram * getIProgram()=0
A pointer to an IProgram interface for this code. May be null.
bool viscous_
True if viscous strains are to be computed.
Definition state.h:107
static const uint32 max_iworking_
The size of the iworking_ array.
Definition state.h:35
virtual bool isThermalInUse() const =0
true if thermal is in use.
static const uint32 max_working_
The size of the working_ array.
Definition state.h:34