35#ifndef mfrontusermaterial_h
36#define mfrontusermaterial_h
46#include "MGIS/Behaviour/State.hxx"
47#include "MGIS/Behaviour/Behaviour.hxx"
48#include "MGIS/Behaviour/BehaviourData.hxx"
49#include "MGIS/Behaviour/Integrate.hxx"
50#include "MGIS/ThreadPool.hxx"
51#include "MGIS/Behaviour/MaterialDataManager.hxx"
55#define _IFT_MFrontUserMaterial_Name "mfrontusermaterial"
56#define _IFT_MFrontUserMaterial_numState "numstate"
57#define _IFT_MFrontUserMaterial_properties "properties"
58#define _IFT_MFrontUserMaterial_initialStress "initialstress"
59#define _IFT_MFrontUserMaterial_userMaterial "umat"
60#define _IFT_MFrontUserMaterial_name "name"
61#define _IFT_MFrontUserMaterial_numericalTangent "numericaltangent"
62#define _IFT_MFrontUserMaterial_numericalTangentPerturbation "perturbation"
63#define _IFT_MFrontUserMaterial_libpath "libpath"
64#define _IFT_MFrontUserMaterial_modelname "modelname"
72using namespace mgis::behaviour;
163 const char *
giveClassName()
const override {
return "MFrontUserMaterialStatus"; }
GaussPoint * gp
Associated integration point.
MFrontUserMaterialStatus(GaussPoint *gp, const mgis::behaviour::Behaviour &b)
Constructor.
const FloatMatrix & giveTempTangent()
FloatArray & letTempStateVectorBe(FloatArray &s)
FloatMatrix tempTangent
Temporary elastic tangent.
void updateYourself(TimeStep *tStep) override
const char * giveClassName() const override
FloatArray stateVector
General state vector.
const FloatArray & giveTempStateVector() const
FloatArray & letStateVectorBe(FloatArray &s)
const FloatArray & giveStateVector() const
void letTempTangentBe(FloatMatrix t)
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
bool hasTangentFlag
Checker to see if tangent has been computed.
void initTempStatus() override
FloatArray tempStateVector
Temporary state vector.
std::unique_ptr< mgis::behaviour::Behaviour > behaviour
pointer to the MGIS behaviour
FloatArrayF< 6 > giveRealStressVector_3d(const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
static int const mfront2oo9[9]
FloatMatrixF< 5, 5 > givePlaneStrainStiffMtrx_dPdF(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override
static int const mfront2oo6[6]
MFrontUserMaterial(int n, Domain *d)
Constructor.
FloatArray properties
Material properties.
virtual ~MFrontUserMaterial()
Destructor.
void giveInputRecord(DynamicInputRecord &input) override
const char * giveInputRecordName() const override
FloatArrayF< 6 > initialStress
Initial stress.
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
FloatMatrixF< 9, 9 > give3dMaterialStiffnessMatrix_dPdF(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< 6, 6 > give3dMaterialStiffnessMatrix(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
bool mUseNumericalTangent
void initializeFrom(InputRecord &ir) override
int mStressInterpretation
const char * giveClassName() const override
MaterialStatus * CreateStatus(GaussPoint *gp) const override
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
StructuralMaterial(int n, Domain *d)
#define _IFT_MFrontUserMaterial_Name