35 #include "../sm/CrossSections/structuralcrosssection.h" 36 #include "../sm/Materials/structuralmaterial.h" 37 #include "../sm/Materials/structuralms.h" 47 if ( mode == _2dBeam ) {
49 }
else if ( mode == _3dBeam ) {
51 }
else if ( mode == _2dPlate ) {
53 }
else if ( mode == _3dShell ) {
55 }
else if ( mode == _3dMat ) {
57 }
else if ( mode == _PlaneStrain ) {
59 }
else if ( mode == _PlaneStress ) {
61 }
else if ( mode == _1dMat ) {
63 }
else if ( mode == _Warping ) {
96 if ( gradientStressVector3d->
giveSize() != 6 ) {
97 OOFEM_ERROR(
"gradientStressVector3d size mismatch");
100 if ( mode == _3dMat ) {
101 return gradientStressVector3d;
107 gradientStressVector3d->
at(3) = 0.;
108 gradientStressVector3d->
at(4) = 0.;
109 gradientStressVector3d->
at(5) = 0.;
113 gradientStressVector3d->
at(4) = 0.;
114 gradientStressVector3d->
at(5) = 0.;
117 for (
int i = 2; i <= 6; i++ ) {
118 gradientStressVector3d->
at(i) = 0.;
127 return gradientStressVector3d;
159 if ( gradientStrainVector3d->
giveSize() != 6 ) {
160 OOFEM_ERROR(
"gradientStrainVector3d size mismatch");
163 if ( mode == _3dMat ) {
164 return gradientStrainVector3d;
170 gradientStrainVector3d->
at(3) = 0.;
171 gradientStrainVector3d->
at(4) = 0.;
172 gradientStrainVector3d->
at(5) = 0.;
175 gradientStrainVector3d->
at(3) = 0.;
176 gradientStrainVector3d->
at(4) = 0.;
177 gradientStrainVector3d->
at(5) = 0.;
180 for (
int i = 2; i <= 6; i++ ) {
181 gradientStrainVector3d->
at(i) = 0.;
190 return gradientStrainVector3d;
virtual FloatArray * imposeStressConstrainsOnGradient(GaussPoint *gp, FloatArray *gradientStressVector3d)
Returns modified gradient of stress vector, which is used to bring stresses back to yield surface...
MaterialMode giveMaterialMode()
Returns corresponding material mode of receiver.
virtual void giveRealStress_PlaneStress(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)=0
virtual void giveGeneralizedStress_Beam2d(FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)=0
Computes the generalized stress vector for given strain and integration point.
virtual void giveGeneralizedStress_3dBeamSubSoil(FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)
virtual FloatArray * imposeStrainConstrainsOnGradient(GaussPoint *gp, FloatArray *gradientStressVector3d)
Returns modified gradient of strain vector, which is used to compute plastic strain increment...
double & at(int i)
Coefficient access function.
virtual void giveGeneralizedStress_Beam3d(FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)=0
MaterialMode
Type representing material mode of integration point.
virtual void giveRealStressVector_3dBeamSubSoil(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedE, TimeStep *tStep)
MatResponseMode
Describes the character of characteristic material matrix.
virtual void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Computes the real stress vector for given total strain and integration point.
const char * __MaterialModeToString(MaterialMode _value)
virtual void giveRealStress_Warping(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)=0
virtual void giveRealStress_PlaneStrain(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)=0
virtual void giveGeneralizedStress_Plate(FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)=0
void giveRealStresses(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Computes the real stress vector for given strain and integration point.
virtual void giveRealStress_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)=0
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
virtual int hasMaterialModeCapability(MaterialMode mode)
Tests if material supports material mode.
virtual void giveRealStress_1d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)=0
virtual void give3dBeamSubSoilStiffMtrx(FloatMatrix &answer, MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep)
Method for computing stiffness matrix of beam3d subsoil model.
Abstract base class for all "structural" constitutive models.
virtual void giveGeneralizedStress_Shell(FloatArray &answer, GaussPoint *gp, const FloatArray &generalizedStrain, TimeStep *tStep)=0
int giveSize() const
Returns the size of receiver.
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.
virtual Material * giveMaterial(IntegrationPoint *ip)
Returns the material associated with the GP.
virtual void give3dBeamSubSoilStiffMtrx(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
Method for computing subsoil stiffness matrix for 2d beams.