3#include "conmodelbase.h" 
    5#include "base/src/property.h" 
    8#include "shared/src/vector.h" 
   41        virtual string             getName()
 const { 
throw std::runtime_error(
"Base method called."); }
 
   50        virtual string             getFullName()
 const { 
throw std::runtime_error(
"Base method called."); }
 
   52        virtual bool               isNull()
 const { 
return false; }
 
   57        virtual bool               isKGEv()
 const { 
return false; }
 
   62        virtual bool isCreep()
 const { 
return false; }
 
   75        virtual string             getProperties()
 const { 
throw std::runtime_error(
"Base method called."); } 
 
   82        virtual string             getStates()
 const { 
throw std::runtime_error(
"Base method called."); }
 
  109        virtual void               save(std::ostream &o) 
const;
 
  111        virtual void               restore(std::istream &i,uint32 restoreVersion);
 
  124        virtual double             getShearModulus()
 const { 
throw std::runtime_error(
"Base method called."); }
 
  127        virtual double             getBulkModulus()
 const { 
throw std::runtime_error(
"Base method called."); }
 
  146        virtual void               run(uint32 d,
State *s) { 
if (!isValid(d)) initialize(d,s); }
 
  171        virtual void               scaleProperties(
const double &,
const std::vector<uint32> &) { 
throw std::logic_error(
"Does not support property scaling"); }
 
  197        void* 
operator new(
size_t size, 
const char* file, 
unsigned line);
 
  198        void* 
operator new(
size_t size);
 
  199        void  operator delete(
void* v);
 
  209        virtual void addToStorage(poly::vector<ConstitutiveModel>*, 
int = -1) {
 
  210            throw std::runtime_error(
"Base method called.");
 
 
  215        static uint32 getLibraryMinorVersion();
 
  217        bool isValid(uint32 d)
 const { 
return valid_==to<int8>(d); }
 
  226        std::vector<unsigned short> gEOB() 
const;
 
  228        void                        sEOB(
const std::vector<unsigned short> &reply);
 
  231        static void *(* conModelMemoryAlloc)(
size_t s);
 
  232        static void *(* conModelMemoryAllocDebug)(
size_t s,
const char *file,uint32 line);
 
  233        static void (* conModelMemoryFree)(
void *v);
 
  239        bool   canFail_ = 
true;
 
  244        static constexpr uint32 shear_now          = 0x001;
 
  245        static constexpr uint32 tension_now        = 0x002;
 
  246        static constexpr uint32 shear_past         = 0x004;
 
  247        static constexpr uint32 tension_past       = 0x008;
 
  248        static constexpr uint32 joint_shear_now    = 0x010;
 
  249        static constexpr uint32 joint_tension_now  = 0x020;
 
  250        static constexpr uint32 joint_shear_past   = 0x040;
 
  251        static constexpr uint32 joint_tension_past = 0x080;
 
  252        static constexpr uint32 volume_now         = 0x100;
 
  253        static constexpr uint32 volume_past        = 0x200;
 
  255        static constexpr double pi = 3.14159265358979323846264338327950;
 
  256        static constexpr double degrad = 0.01745329251994329576923690768488;
 
  257        static constexpr double d1d3 = 0.33333333333333333333333333333333;
 
  258        static constexpr double d2d3 = 0.66666666666666666666666666666667;
 
  259        static constexpr double d4d3 = 1.33333333333333333333333333333333;
 
  260        static constexpr double rt6 = 2.44948974278317809819728407470589; 
 
 
  263    using CM = ConstitutiveModel;
 
A symmetric 2nd order tensor.
Definition symtensor.h:22
debug checked shorthand for std::numeric_limits<T>::
Definition limit.h:25
The base class for constitutive model plug-ins.
Definition conmodel.h:33
virtual bool supportsStrengthStressRatio() const
Returns true if strength-stress ratio calculations are supported via getStrengthStressRatio().
Definition conmodel.h:175
virtual void setProperty(uint32, const base::Property &, uint32=0)
Sets the value of the property with index i (base 1).
Definition conmodel.h:98
virtual void initialize(uint32 d, State *)
Initializes the constitutive model in preparation for calls to run().
Definition conmodel.h:160
virtual bool supportsPlasticStrain() const
Returns true if palstic strain calculation is supported.
Definition conmodel.h:202
virtual string getProperties() const
Returns a string containing the names of model properties.
Definition conmodel.h:75
virtual bool isKGEv() const
Return TRUE if the model can input (bulk,shear) or (young,poisson).
Definition conmodel.h:57
virtual bool supportsSmallStrainEffect() const
Definition conmodel.h:180
virtual string getPluginName() const
There should be no reason for an implementation to override the default behavior of this function.
Definition conmodel.h:43
virtual string getFullName() const
The full name of the model.
Definition conmodel.h:50
virtual bool supportsPropertyScaling() const
Returns true if property scaling is supported for factor-of-safety calculations via scaleProperties()...
Definition conmodel.h:177
bool isValid(uint32 d) const
Indicates whether initializion is necessary - by dimension.
Definition conmodel.h:217
virtual bool isPropertyReadOnly(uint32) const
Definition conmodel.h:102
virtual void mixStrain(uint32, State *, SymTensor *, double *)
User defined strain mixing technique. .
Definition conmodel.h:137
virtual bool isModelAdvanced() const
Definition conmodel.h:55
virtual double getStrengthStressRatio(const SymTensor &) const
Returns the ratio of the stress tensor to the current yield strength.
Definition conmodel.h:165
virtual void addToStorage(poly::vector< ConstitutiveModel > *, int=-1)
For polymorphic container access.
Definition conmodel.h:209
virtual void scaleProperties(const double &, const std::vector< uint32 > &)
Scales failure property indices v by the factor f.
Definition conmodel.h:171
virtual string getName() const
Must be unique, used to identify model in save/restore, on command line, filename.
Definition conmodel.h:41
virtual double getConfinedModulus() const
Return estimate of maximum confined modulus.
Definition conmodel.h:120
virtual bool isOriented() const
Return TRUE if the model can input (dip, dip-direction) or (norm).
Definition conmodel.h:59
void setIfCanFail(bool b)
Specifies whether or not "failure" is being allowed for this instanced of the constitutive model.
Definition conmodel.h:224
virtual void run(uint32 d, State *s)
Calculate stress increment given a strain increment.
Definition conmodel.h:146
virtual bool supportsPlaneStress() const
Returns true if 2D plane-stress is supported by run().
Definition conmodel.h:182
virtual void mixStress(uint32, State *, SymTensor *, double *)
User defined stress mixing technique. .
Definition conmodel.h:148
virtual base::Property getProperty(uint32) const
Return the value of the property of that index (base 1).
Definition conmodel.h:88
virtual bool isNull() const
Returns true if this model represents a NULL material. Only the NULL model should return true.
Definition conmodel.h:52
bool canFail() const
Definition conmodel.h:222
virtual double getShearModulus() const
Return estimate of tangent shear-modulus.
Definition conmodel.h:124
virtual void destroy()
There should be no reason for an implementation to change the default behavior of this function.
Definition conmodel.h:186
virtual bool supportsUniaxial() const
Returns true if 1D uniaxial is supported by run().
Definition conmodel.h:184
virtual bool isPropertyAdvanced(uint32) const
Definition conmodel.h:105
virtual string getStates() const
Returns a string containing state names.
Definition conmodel.h:82
virtual bool isCreep() const
Definition conmodel.h:62
virtual ConstitutiveModel * clone() const
Returns an instance this class.
Definition conmodel.h:115
virtual double getBulkModulus() const
Return estimate of tangent bulk-modulus.
Definition conmodel.h:127
void setValid(uint32 d)
Sets the current valid state to dimension dim.
Definition conmodel.h:219
virtual bool isLiquefaction() const
Return TRUE if the model should be considered "Liquefaction" model.
Definition conmodel.h:64
virtual bool supportsHystereticDamping() const
Returns true if hysteretic damping is supported by run(). See State::hysteretic_damping_.
Definition conmodel.h:173
virtual void getPropertyValues(std::vector< double > *) const
Definition conmodel.h:207
virtual bool performMixing() const
Set true if an alternative mixing technqiue rather than the default one in the code is used....
Definition conmodel.h:135
EXPORT_TAG unsigned getMinorVersion()
Definition fishexample.cpp:62
EXPORT_TAG const char * getName()
Definition fishexample.cpp:43
The base class for constitutive model plug-ins.
The Constitutive Model interface library.
Definition conmodel.cpp:7
The structure used to pass information to the constitutive model.
Definition state.h:32