52 StructuralMaterial :: initializeFrom(ir);
65 StructuralMaterial :: giveInputRecord(input);
75 auto answer =
dot(tangent, reducedE);
79 status->letTempStressVectorBe(answer);
87 auto answer =
dot(tangent, reducedE);
91 status->letTempStressVectorBe(answer);
97WinklerMaterial :: give2dPlateSubSoilStiffMtrx(MatResponseMode mode,
GaussPoint *gp,
TimeStep *tStep)
const
100 answer.
at(1, 1) =
c1.at(1);
110 if ( this->
c1.giveSize() == 6 ) {
116 auto T = ei->B3SSMI_getUnknownsGtoLRotationMatrix();
119 OOFEM_ERROR(
"Beam3dSubsoilMaterialInterface required from element");
124 OOFEM_ERROR (
"C1 attribute size error (shouldequal to 6 for 3dBeamSubsoil mode)");
129std::unique_ptr<MaterialStatus>
132 return std::make_unique<StructuralMaterialStatus>(gp);
137WinklerMaterial :: hasMaterialModeCapability(MaterialMode mode)
const
142 return mode == _2dPlateSubSoil || mode == _3dBeamSubSoil;
#define REGISTER_Material(class)
virtual Interface * giveInterface(InterfaceType t)
double at(std::size_t i, std::size_t j) const
Element * giveElement()
Returns corresponding element to receiver.
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
void letTempStrainVectorBe(const FloatArray &v)
Assigns tempStrainVector to given vector v.
StructuralMaterial(int n, Domain *d)
FloatArrayF< 3 > giveRealStressVector_2dPlateSubSoil(const FloatArrayF< 3 > &reducedE, GaussPoint *gp, TimeStep *tStep) const override
Default implementation is not provided.
FloatArrayF< 6 > giveRealStressVector_3dBeamSubSoil(const FloatArrayF< 6 > &reducedE, GaussPoint *gp, TimeStep *tStep) const override
bool globalFromulation
Flag indicating whether subsoil model defined in global or element local c.s.
FloatArray c1
C1 constant, defined as $\int_0^hE_{oed}(z)\left(d\Psi(z)\over dz\right)^2\ dz$.
FloatMatrixF< 6, 6 > give3dBeamSubSoilStiffMtrx(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override
WinklerMaterial(int n, Domain *d)
FloatMatrixF< 3, 3 > give2dPlateSubSoilStiffMtrx(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override
FloatMatrixF< N, N > diag(const FloatArrayF< N > &v)
double dot(const FloatArray &x, const FloatArray &y)
FloatMatrixF< M, M > unrotate(FloatMatrixF< N, N > &a, const FloatMatrixF< M, N > &r)
Computes .
@ Beam3dSubsoilMaterialInterfaceType
#define _IFT_WinklerMaterial_globalFlag
#define _IFT_WinklerMaterial_C1