35#ifndef microplane_m1_h
36#define microplane_m1_h
39#define microplane_m1_new_implementation
41#ifdef microplane_m1_new_implementation
50 #define _IFT_M1Material_Name "microplane_m1"
51 #define _IFT_M1Material_s0 "s0"
52 #define _IFT_M1Material_hn "hn"
53 #define _IFT_M1Material_talpha "talpha"
66 const char *
giveClassName()
const override {
return "M1MaterialStatus"; }
109 std::unique_ptr<MaterialStatus>
CreateStatus(
GaussPoint *gp)
const override {
return std::make_unique<M1MaterialStatus>(gp); }
125 #define _IFT_M1Material_Name "microplane_m1"
126 #define _IFT_M1Material_e "e"
127 #define _IFT_M1Material_s0 "s0"
128 #define _IFT_M1Material_hn "hn"
129 #define _IFT_M1Material_talpha "talpha"
130 #define _IFT_M1Material_nmp "nmp"
146 const char *
giveClassName()
const override {
return "M1MaterialStatus"; }
148 void letNormalMplaneYieldStressesBe(FloatArray sigmaNyield) { sigNyield = std :: move(sigmaNyield); }
151 const FloatArray &giveNormalMplaneYieldStresses() {
return sigNyield; }
187 const FloatArray &reducedStrain, TimeStep *tStep)
override;
188 void giveElasticPlaneStressStiffMtrx(FloatMatrix &answer)
override;
189 void givePlaneStressStiffMtrx(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep)
override;
190 const char *
giveClassName()
const override {
return "M1Material"; }
194 MaterialStatus *
CreateStatus(GaussPoint *gp)
const override {
return new M1MaterialStatus(gp); }
void updateYourself(TimeStep *tStep) override
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
const FloatArray & giveTempNormalMplaneStresses()
M1MaterialStatus(GaussPoint *g)
const FloatArray & giveNormalMplaneStresses()
void letTempNormalMplanePlasticStrainsBe(FloatArray epsilonpN)
void letPlasticStateIndicatorsBe(IntArray plSt)
void letTempNormalMplaneStressesBe(FloatArray sigmaN)
void restoreContext(DataStream &stream, ContextMode mode) override
void initTempStatus() override
void saveContext(DataStream &stream, ContextMode mode) override
const char * giveClassName() const override
const IntArray & givePlasticStateIndicators()
const FloatArray & giveTempNormalMplanePlasticStrains()
const FloatArray & giveNormalMplanePlasticStrains()
const char * giveInputRecordName() const override
void initializeFrom(InputRecord &ir) override
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
FloatMatrixF< 6, 6 > give3dMaterialStiffnessMatrix(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
M1Material(int n, Domain *d)
const char * giveClassName() const override
FloatArrayF< 6 > giveRealStressVector_3d(const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
std::vector< FloatArrayF< 6 > > N
double nu
Poisson's ratio.
MicroplaneMaterial(int n, Domain *d)
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
virtual FloatMatrixF< 3, 3 > givePlaneStressStiffMtrx(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const
bool hasMaterialModeCapability(MaterialMode mode) const override
virtual FloatArrayF< 3 > giveRealStressVector_PlaneStress(const FloatArrayF< 3 > &reducedE, GaussPoint *gp, TimeStep *tStep) const
Default implementation relies on giveRealStressVector_StressControl.
#define _IFT_M1Material_Name