42 typedef void(*
pF_UMATMod) (
double* STRESS,
double* STATEV,
double** DDSDDE,
double* SSE,
double* SPD,
double* SCD,
43 double* rpl,
double* ddsddt,
double* drplde,
double* drpldt,
double* stran,
double* dstran,
44 double*
time,
double* dtime,
double*
temp,
double* dtemp,
double* predef,
double* dpred,
45 char* materl,
int* ndi,
int* nshr,
int* ntens,
int* nstatv,
const double* props,
int* nprops,
46 double* coords,
double** drot,
double* pnewdt,
double* celent,
double** dfgrd0,
47 double** dfgrd1,
int* noel,
int* npt,
double* kslay,
double* kspt,
int* kstep,
113 ConstitutiveLaw::Pointer Clone()
const override;
119 void GetLawFeatures(
Features& rFeatures)
override;
143 return StrainMeasure_Infinitesimal;
152 return StressMeasure_Cauchy;
207 double& rValue)
override;
238 int Check(
const Properties& rMaterialProperties,
240 const ProcessInfo& rCurrentProcessInfo)
const override;
250 void InitializeMaterial(
const Properties& rMaterialProperties,
252 const Vector& rShapeFunctionsValues)
override;
279 void ResetMaterial(
const Properties& rMaterialProperties,
281 const Vector& rShapeFunctionsValues)
override;
290 const double& rValue,
306 std::string
Info()
const override
308 return "SmallStrainUMAT3DLaw";
320 rOStream <<
"SmallStrainUMAT3DLaw Data";
354 virtual void SetExternalStressVector(
Vector& rStressVector);
355 virtual void SetInternalStressVector(
const Vector& rStressVector);
356 virtual void SetInternalStrainVector(
const Vector& rStrainVector);
387 bool mIsModelInitialized =
false;
388 bool mIsUMATLoaded =
false;
390 std::vector<int> mProjectDirectory;
393 Vector mStateVariablesFinalized;
411 bool loadUMAT(
const Properties& rMaterialProperties);
412 bool loadUMATWindows(
const Properties& rMaterialProperties);
413 bool loadUMATLinux(
const Properties& rMaterialProperties);
419 void ResetStateVariables(
const Properties& rMaterialProperties);
427 void save(
Serializer& rSerializer)
const override
430 rSerializer.
save(
"InitializedModel", mIsModelInitialized);
431 rSerializer.
save(
"StressVectorFinalized", mStressVectorFinalized);
432 rSerializer.
save(
"StrainVectorFinalized", mStrainVectorFinalized);
433 rSerializer.
save(
"StateVariablesFinalized", mStateVariablesFinalized);
439 rSerializer.
load(
"InitializedModel", mIsModelInitialized);
440 rSerializer.
load(
"StressVectorFinalized", mStressVectorFinalized);
441 rSerializer.
load(
"StrainVectorFinalized", mStrainVectorFinalized);
442 rSerializer.
load(
"StateVariablesFinalized", mStateVariablesFinalized);
PeriodicInterfaceProcess & operator=(const PeriodicInterfaceProcess &)=delete
std::string Info() const override
Turn back information as a string.
Definition: periodic_interface_process.hpp:93
Definition: constitutive_law.h:47
StrainMeasure
Definition: constitutive_law.h:52
StressMeasure
Definition: constitutive_law.h:69
virtual bool & CalculateValue(Parameters &rParameterValues, const Variable< bool > &rThisVariable, bool &rValue)
Calculates the value of a specified variable (bool)
Definition: constitutive_law.cpp:370
virtual void SetValue(const Variable< bool > &rVariable, const bool &Value, const ProcessInfo &rCurrentProcessInfo)
Sets the value of a specified variable (boolean)
Definition: constitutive_law.cpp:279
virtual bool & GetValue(const Variable< bool > &rThisVariable, bool &rValue)
Returns the value of a specified variable (boolean)
Definition: constitutive_law.cpp:201
std::size_t SizeType
Definition: constitutive_law.h:82
Geometry base class.
Definition: geometry.h:71
ProcessInfo holds the current value of different solution parameters.
Definition: process_info.h:59
Properties encapsulates data shared by different Elements or Conditions. It can store any type of dat...
Definition: properties.h:69
The serialization consists in storing the state of an object into a storage format like data file or ...
Definition: serializer.h:123
void load(std::string const &rTag, TDataType &rObject)
Definition: serializer.h:207
void save(std::string const &rTag, std::array< TDataType, TDataSize > const &rObject)
Definition: serializer.h:545
Short class definition.
Definition: small_strain_umat_3D_law.hpp:78
void PrintData(std::ostream &rOStream) const override
Print object's data.
Definition: small_strain_umat_3D_law.hpp:318
void PrintInfo(std::ostream &rOStream) const override
Print information about this object.
Definition: small_strain_umat_3D_law.hpp:312
SizeType GetStrainSize() const override
Voigt tensor size:
Definition: small_strain_umat_3D_law.hpp:132
~SmallStrainUMAT3DLaw() override=default
SmallStrainUMAT3DLaw & operator=(SmallStrainUMAT3DLaw &&)=delete
int GetStateVariableIndex(const Variable< double > &rThisVariable)
array_1d< double, VOIGT_SIZE_3D > mStressVectorFinalized
Definition: small_strain_umat_3D_law.hpp:333
StrainMeasure GetStrainMeasure() override
Returns the expected strain measure of this constitutive law (by default Green-Lagrange)
Definition: small_strain_umat_3D_law.hpp:141
SizeType WorkingSpaceDimension() override
Dimension of the law:
Definition: small_strain_umat_3D_law.hpp:124
array_1d< double, VOIGT_SIZE_3D > mStrainVectorFinalized
Definition: small_strain_umat_3D_law.hpp:336
SmallStrainUMAT3DLaw(SmallStrainUMAT3DLaw &&)=delete
KRATOS_CLASS_POINTER_DEFINITION(SmallStrainUMAT3DLaw)
Pointer definition of SmallStrainUMAT3DLaw.
array_1d< double, VOIGT_SIZE_3D > mDeltaStrainVector
Definition: small_strain_umat_3D_law.hpp:335
SmallStrainUMAT3DLaw()=default
StressMeasure GetStressMeasure() override
Definition: small_strain_umat_3D_law.hpp:150
std::string Info() const override
Turn back information as a string.
Definition: small_strain_umat_3D_law.hpp:306
array_1d< double, VOIGT_SIZE_3D > mStressVector
Definition: small_strain_umat_3D_law.hpp:332
#define KRATOS_SERIALIZE_SAVE_BASE_CLASS(Serializer, BaseType)
Definition: define.h:812
#define KRATOS_SERIALIZE_LOAD_BASE_CLASS(Serializer, BaseType)
Definition: define.h:815
Parameters GetValue(Parameters &rParameters, const std::string &rEntry)
Definition: add_kratos_parameters_to_python.cpp:53
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
constexpr SizeType N_DIM_3D
Definition: geo_mechanics_application_constants.h:25
void(* pF_UMATMod)(double *STRESS, double *STATEV, double **DDSDDE, double *SSE, double *SPD, double *SCD, double *rpl, double *ddsddt, double *drplde, double *drpldt, double *stran, double *dstran, double *time, double *dtime, double *temp, double *dtemp, double *predef, double *dpred, char *materl, int *ndi, int *nshr, int *ntens, int *nstatv, const double *props, int *nprops, double *coords, double **drot, double *pnewdt, double *celent, double **dfgrd0, double **dfgrd1, int *noel, int *npt, double *kslay, double *kspt, int *kstep, int *kinc)
Definition: small_strain_umat_3D_law.hpp:42
constexpr SizeType VOIGT_SIZE_3D
Definition: geo_mechanics_application_constants.h:41
def SetValue(entity, variable, value)
Definition: coupling_interface_data.py:256
time
Definition: face_heat.py:85
def load(f)
Definition: ode_solve.py:307
float temp
Definition: rotating_cone.py:85
Definition: constitutive_law.h:137
Definition: constitutive_law.h:189