35 #ifndef perfectlyplasticmaterial_h 36 #define perfectlyplasticmaterial_h 38 #include "../sm/Materials/structuralmaterial.h" 42 #include "../sm/Materials/structuralms.h" 92 virtual const char *
giveClassName()
const {
return "PerfectlyPlasticMaterialStatus"; }
128 linearElasticMaterial = NULL;
132 delete linearElasticMaterial;
139 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
141 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
143 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
145 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
147 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
149 { this->giveRealStressVector(answer, gp, reducedE, tStep); }
158 virtual int hasMaterialModeCapability(
MaterialMode mode);
159 virtual const char *
giveClassName()
const {
return "PerfectlyPlasticMaterial"; }
163 virtual double give(
int aProperty,
GaussPoint *gp);
165 virtual void give3dMaterialStiffnessMatrix(
FloatMatrix &answer,
178 virtual void giveMaterialStiffnessMatrix(
FloatMatrix &answer,
181 virtual void giveEffectiveMaterialStiffnessMatrix(
FloatMatrix &answer,
185 virtual void givePlaneStressStiffMtrx(
FloatMatrix &answer,
189 virtual void givePlaneStrainStiffMtrx(
FloatMatrix &answer,
193 virtual void give1dStressStiffMtrx(
FloatMatrix &answer,
197 virtual void give2dBeamLayerStiffMtrx(
FloatMatrix &answer,
201 virtual void givePlateLayerStiffMtrx(
FloatMatrix &answer,
208 void computePlasticStiffnessAt(
FloatMatrix &answer,
234 #endif // perfectlyplasticmaterial_h
virtual FloatArray * GiveYCStressGradient(GaussPoint *gp, FloatArray *, FloatArray *)
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
const FloatArray & givePlasticStrainVector() const
const FloatArray & givePlasticStrainIncrementVector() const
virtual void updateTempLC(GaussPoint *gp, FloatArray *, FloatArray *)
virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
GaussPoint * gp
Associated integration point.
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
PerfectlyPlasticMaterial(int n, Domain *d)
void letPlasticStrainIncrementVectorBe(FloatArray v)
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
virtual FloatArray * GiveYCPlasticStrainGradient(GaussPoint *gp, FloatArray *, FloatArray *)
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
virtual const char * giveClassName() const
virtual void updateTempYC(GaussPoint *gp, FloatArray *, FloatArray *)
virtual void updateIfFailure(GaussPoint *gp, FloatArray *stressVector3d, FloatArray *PlasticStrainVector3d)
This class implements a structural material status information.
This class implements associated Material Status to PerfectlyPlasticMaterial.
virtual void giveRealStressVector_PlaneStress(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
void letPlasticStrainVectorBe(FloatArray v)
virtual void giveRealStressVector_PlaneStrain(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_3d.
virtual FloatArray * GiveLCPlasticStrainGradient(GaussPoint *gp, FloatArray *, FloatArray *)
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
virtual ~PerfectlyPlasticMaterial()
MaterialMode
Type representing material mode of integration point.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
MatResponseMode
Describes the character of characteristic material matrix.
virtual void giveRealStressVector_PlateLayer(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
This class is a abstract base class for all linear elastic material models in a finite element proble...
FloatArray plasticStrainVector
int setTempYieldFlag(int i)
LinearElasticMaterial * linearElasticMaterial
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
This class implements a perfectly plastic material in a finite element problem.
virtual int hasNonLinearBehaviour()
Returns nonzero if receiver is non linear.
LinearElasticMaterial * giveLinearElasticMaterial()
virtual void giveRealStressVector_1d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
virtual void giveRealStressVector_2dBeamLayer(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
Default implementation relies on giveRealStressVector_StressControl.
virtual FloatArray * GiveLCStressGradient(GaussPoint *gp, FloatArray *, FloatArray *)
Abstract base class representing a material status information.
PerfectlyPlasticMaterialStatus(int n, Domain *d, GaussPoint *g)
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual const char * giveClassName() const
FloatArray plasticStrainIncrementVector
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Abstract base class for all "structural" constitutive models.
virtual ~PerfectlyPlasticMaterialStatus()
virtual double computeYCValueAt(GaussPoint *gp, FloatArray *, FloatArray *)
the oofem namespace is to define a context or scope in which all oofem names are defined.
Class representing integration point in finite element program.
Class representing solution step.