35#ifndef perfectlyplasticmaterial_h
36#define perfectlyplasticmaterial_h
90 const char *
giveClassName()
const override {
return "PerfectlyPlasticMaterialStatus"; }
174 const char *
giveClassName()
const override {
return "PerfectlyPlasticMaterial"; }
211 double &lambda)
const;
const FloatArray & givePlasticStrainIncrementVector() const
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
void letPlasticStrainIncrementVectorBe(FloatArray v)
void saveContext(DataStream &stream, ContextMode mode) override
const char * giveClassName() const override
void initTempStatus() override
int setTempYieldFlag(int i)
FloatArray plasticStrainVector
void letPlasticStrainVectorBe(FloatArray v)
void updateYourself(TimeStep *tStep) override
PerfectlyPlasticMaterialStatus(GaussPoint *g)
void restoreContext(DataStream &stream, ContextMode mode) override
const FloatArray & givePlasticStrainVector() const
FloatArray plasticStrainIncrementVector
virtual void updateTempYC(GaussPoint *gp, FloatArray *, FloatArray *) const
virtual void updateIfFailure(GaussPoint *gp, FloatArray *stressVector3d, FloatArray *PlasticStrainVector3d) const
FloatArray * GiveStressCorrectionBackToYieldSurface(GaussPoint *gp, FloatArray *stressVector3d, FloatArray *plasticVector3d) const
void computePlasticStiffnessAt(FloatMatrix &answer, GaussPoint *gp, FloatArray *currentStressVector, FloatArray *currentPlasticStrainVector, FloatArray *strainIncrement3d, TimeStep *tStep, double &lambda) const
void initializeFrom(InputRecord &ir) override
virtual FloatArray * GiveYCPlasticStrainGradient(GaussPoint *gp, FloatArray *, FloatArray *) const
FloatMatrixF< 4, 4 > givePlaneStrainStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
LinearElasticMaterial * linearElasticMaterial
virtual ~PerfectlyPlasticMaterial()
FloatArrayF< 6 > giveRealStressVector_3d(const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
const char * giveClassName() const override
virtual void updateTempLC(GaussPoint *gp, FloatArray *, FloatArray *) const
bool hasMaterialModeCapability(MaterialMode mode) const override
FloatMatrixF< 1, 1 > give1dStressStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep) const override
FloatArrayF< 2 > giveRealStressVector_2dBeamLayer(const FloatArrayF< 2 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
FloatArrayF< 1 > giveRealStressVector_1d(const FloatArrayF< 1 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
FloatMatrixF< 2, 2 > give2dBeamLayerStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 5 > giveRealStressVector_PlateLayer(const FloatArrayF< 5 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
FloatMatrixF< 3, 3 > givePlaneStressStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 4 > giveRealStressVector_PlaneStrain(const FloatArrayF< 4 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_3d.
virtual FloatArray * GiveYCStressGradient(GaussPoint *gp, FloatArray *, FloatArray *) const
virtual void giveEffectiveMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
FloatMatrixF< 6, 6 > give3dMaterialStiffnessMatrix(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
virtual FloatArray * GiveLCStressGradient(GaussPoint *gp, FloatArray *, FloatArray *) const
virtual double computeYCValueAt(GaussPoint *gp, FloatArray *, FloatArray *) const
virtual FloatArray * GiveLCPlasticStrainGradient(GaussPoint *gp, FloatArray *, FloatArray *) const
virtual void giveMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
double give(int aProperty, GaussPoint *gp) const override
FloatArrayF< 3 > giveRealStressVector_PlaneStress(const FloatArrayF< 3 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
FloatMatrixF< 5, 5 > givePlateLayerStiffMtrx(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
LinearElasticMaterial * giveLinearElasticMaterial() const
void computeTrialStressIncrement(FloatArray &answer, GaussPoint *gp, const FloatArray &strainIncrement, TimeStep *tStep) const
PerfectlyPlasticMaterial(int n, Domain *d)
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
StructuralMaterial(int n, Domain *d)