35 #ifndef plasticmaterial_h 36 #define plasticmaterial_h 38 #include "../sm/Materials/structuralmaterial.h" 42 #include "../sm/Materials/structuralms.h" 101 virtual const char *
giveClassName()
const {
return "PlasticMaterialStatus"; }
132 virtual int hasMaterialModeCapability(
MaterialMode mode);
138 virtual void give3dMaterialStiffnessMatrix(
FloatMatrix &answer,
148 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
150 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
152 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
154 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
156 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
158 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
160 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
175 virtual void giveConsistentStiffnessMatrix(
FloatMatrix &answer,
183 double Gamma,
const FloatArray &fullStressVector,
184 const FloatArray &fullStressSpaceHardeningVars);
193 FloatArray *stressSpaceHardeningVars) {
return 0.; }
194 virtual void computeHardeningReducedModuli(
FloatMatrix &answer,
199 FloatArray *stressSpaceHardeningVars) {
return NULL; }
205 virtual void computeReducedGradientMatrix(
FloatMatrix &answer,
208 const FloatArray &stressSpaceHardeningVars) = 0;
226 virtual void givePlaneStressStiffMtrx(
FloatMatrix &answer,
231 virtual void givePlaneStrainStiffMtrx(
FloatMatrix &answer,
236 virtual void give1dStressStiffMtrx(
FloatMatrix &answer,
241 virtual void give2dBeamLayerStiffMtrx(
FloatMatrix &answer,
246 virtual void givePlateLayerStiffMtrx(
FloatMatrix &answer,
251 virtual void giveFiberStiffMtrx(
FloatMatrix &answer,
257 #endif // plasticmaterial_h
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
virtual int hasHardening()
GaussPoint * gp
Associated integration point.
virtual FloatArray * ComputeStressSpaceHardeningVars(GaussPoint *gp, FloatArray *strainSpaceHardeningVariables)
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
This class implements a structural material status information.
PlasticMaterialStatus(int n, Domain *d, GaussPoint *g, int statusSize)
FloatArray stressVector
Equilibrated stress vector in reduced form.
virtual int giveSizeOfFullHardeningVarsVector()
void letTempStateFlagBe(int v)
FloatArray plasticStrainVector
Plastic strain vector (reduced form).
virtual double computeYieldValueAt(GaussPoint *gp, FloatArray *stressVector, FloatArray *stressSpaceHardeningVars)
virtual const char * giveClassName() const
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
MaterialMode
Type representing material mode of integration point.
MatResponseMode
Describes the character of characteristic material matrix.
virtual int hasNonLinearBehaviour()
Returns nonzero if receiver is non linear.
void letStrainSpaceHardeningVarsVectorBe(FloatArray v)
This class is a abstract base class for all linear elastic material models in a finite element proble...
virtual ~PlasticMaterialStatus()
virtual FloatArray * ComputeStressSpaceHardeningVarsReducedGradient(GaussPoint *gp, FloatArray *stressVector, FloatArray *stressSpaceHardeningVars)
virtual FloatArray * ComputeStressGradient(GaussPoint *gp, FloatArray *stressVector, FloatArray *stressSpaceHardeningVars)
LinearElasticMaterial * linearElasticMaterial
Reference to bulk (undamaged) material.
FloatArray tempStrainSpaceHardeningVarsVector
virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
virtual void giveRealStressVector_1d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
virtual void giveRealStressVector_PlaneStrain(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_3d.
virtual void giveRealStressVector_Fiber(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
FloatArray tempPlasticStrainVector
double gamma
Plastic consistency parameter.
LinearElasticMaterial * giveLinearElasticMaterial()
Returns reference to undamaged (bulk) material.
void letTempStrainSpaceHardeningVarsVectorBe(FloatArray v)
virtual void copyStateVariables(const MaterialStatus &iStatus)
Functions for MaterialStatusMapperInterface.
const FloatArray & giveTempPlasticStrainVector() const
double giveTempPlasticConsistencyPrameter() const
Abstract base class representing a material status information.
double givePlasticConsistencyPrameter() const
void letTempPlasticStrainVectorBe(FloatArray v)
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
void letTempPlasticConsistencyPrameterBe(double v)
virtual void giveRealStressVector_2dBeamLayer(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
const FloatArray & givePlasticStrainVector() const
void letPlasticStrainVectorBe(FloatArray v)
virtual int giveSizeOfReducedHardeningVarsVector(GaussPoint *) const
FloatArray strainSpaceHardeningVarsVector
Strain space hardening variables.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Abstract base class for all "structural" constitutive models.
This class implements associated Material Status to PlasticMaterial.
virtual void addStateVariables(const MaterialStatus &iStatus)
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
int state_flag
Yield function status indicator.
the oofem namespace is to define a context or scope in which all oofem names are defined.
const FloatArray & givetempStrainSpaceHardeningVarsVector() const
virtual const char * giveClassName() const
virtual void giveRealStressVector_PlateLayer(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
int giveTempStateFlag() const
const FloatArray & giveStrainSpaceHardeningVars() const
virtual void printYourself()
Prints receiver state on stdout. Useful for debugging.
Class representing integration point in finite element program.
This class implements a general plastic material.
Class representing solution step.
int giveStateFlag() const
virtual void giveRealStressVector_PlaneStress(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.