35 #ifndef mplasticmaterial_h 36 #define mplasticmaterial_h 38 #include "../sm/Materials/structuralmaterial.h" 43 #include "../sm/Materials/structuralms.h" 111 { plasticStrainVector = std :: move(v); }
113 { tempPlasticStrainVector = std :: move(v); }
115 { tempStrainSpaceHardeningVarsVector = std :: move(v); }
117 { strainSpaceHardeningVarsVector = std :: move(v); }
129 virtual const char *
giveClassName()
const {
return "MPlasticMaterialStatus"; }
153 enum plastType { associatedPT, nonassociatedPT } plType;
161 virtual int hasMaterialModeCapability(
MaterialMode mode);
173 virtual void give3dMaterialStiffnessMatrix(
FloatMatrix &answer,
183 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
185 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
187 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
189 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
211 const FloatArray &fullStressSpaceHardeningVars);
214 const FloatArray &strainSpaceHardeningVariables, std :: vector< FloatArray > &gradVec);
215 virtual void giveConsistentStiffnessMatrix(
FloatMatrix &answer,
220 virtual void giveElastoPlasticStiffnessMatrix(
FloatMatrix &answer,
230 const FloatArray &fullStressSpaceHardeningVars);
236 const FloatArray &strainSpaceHardeningVariables) = 0;
238 const FloatArray &stressSpaceHardeningVars) = 0;
239 virtual void computeHardeningReducedModuli(
FloatMatrix &answer,
241 const FloatArray &strainSpaceHardeningVariables,
244 const FloatArray &stressSpaceHardeningVars) = 0;
247 const FloatArray &stressSpaceHardeningVars) = 0;
249 virtual void computeReducedGradientMatrix(
FloatMatrix &answer,
int isurf,
252 const FloatArray &stressSpaceHardeningVars) = 0;
262 virtual void givePlaneStressStiffMtrx(
FloatMatrix &answer,
266 virtual void givePlaneStrainStiffMtrx(
FloatMatrix &answer,
270 virtual void give1dStressStiffMtrx(
FloatMatrix &answer,
274 virtual void give2dBeamLayerStiffMtrx(
FloatMatrix &answer,
278 virtual void givePlateLayerStiffMtrx(
FloatMatrix &answer,
283 virtual void giveFiberStiffMtrx(
FloatMatrix &answer,
288 #endif // mplasticmaterial_h
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
IntArray tempActiveConditionMap
GaussPoint * gp
Associated integration point.
FloatArray plasticStrainVector
Plastic strain vector.
const FloatArray & giveTempGamma()
functType
Type that allows to distinguish between yield function and loading function.
void letTempPlasticStrainVectorBe(FloatArray v)
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
This class implements a structural material status information.
virtual const char * giveClassName() const
FloatArray stressVector
Equilibrated stress vector in reduced form.
LinearElasticMaterial * linearElasticMaterial
Reference to bulk (undamaged) material.
void letTempStateFlagBe(int v)
virtual int giveSizeOfFullHardeningVarsVector()
FloatArray tempPlasticStrainVector
virtual const char * giveClassName() const
MaterialMode
Type representing material mode of integration point.
LinearElasticMaterial * giveLinearElasticMaterial()
Returns reference to undamaged (bulk) material.
This class implements a general plastic material.
const FloatArray & givePlasticStrainVector() const
Returns the equilibrated strain vector.
Class implementing an array of integers.
MatResponseMode
Describes the character of characteristic material matrix.
const IntArray & giveTempActiveConditionMap()
This class is a abstract base class for all linear elastic material models in a finite element proble...
FloatArray strainSpaceHardeningVarsVector
Strain space hardening variables.
void letTempStrainSpaceHardeningVarsVectorBe(FloatArray v)
virtual void giveRealStressVector_PlaneStrain(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_3d.
virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
const FloatArray & giveStrainSpaceHardeningVars() const
Returns the equilibrated hardening variable vector.
int nsurf
Number of yield surfaces.
virtual int hasNonLinearBehaviour()
Returns nonzero if receiver is non linear.
virtual int giveSizeOfReducedHardeningVarsVector(GaussPoint *) const
virtual void giveRealStressVector_PlaneStress(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
virtual void giveRealStressVector_1d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
This class implements associated Material Status to MPlasticMaterial.
Abstract base class representing a material status information.
Class representing vector of real numbers.
const FloatArray & givetempStrainSpaceHardeningVarsVector() const
Returns the actual (temp) hardening variable vector.
Implementation of matrix containing floating point numbers.
void setTempActiveConditionMap(IntArray v)
virtual ~MPlasticMaterialStatus()
IntArray activeConditionMap
Active set of yield functions (needed for algorithmic stiffness).
FloatArray tempStrainSpaceHardeningVarsVector
void setTempGamma(FloatArray v)
int state_flag
Yield function status indicator.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Abstract base class for all "structural" constitutive models.
FloatArray gamma
Consistency parameter values (needed for algorithmic stiffness).
virtual int hasHardening()
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual bool isCharacteristicMtrxSymmetric(MatResponseMode rMode)
Returns true if stiffness matrix of receiver is symmetric.
void letPlasticStrainVectorBe(FloatArray v)
const FloatArray & giveTempPlasticStrainVector() const
Returns the actual (temp) strain vector.
ReturnMappingAlgoType
Protected type to determine the return mapping algorithm.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
Class representing integration point in finite element program.
Class representing solution step.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
void letStrainSpaceHardeningVarsVectorBe(FloatArray v)
MPlasticMaterialStatus(int n, Domain *d, GaussPoint *g, int statusSize)