48IsotropicLinearElasticMaterial :: IsotropicLinearElasticMaterial(
int n,
Domain *d) :
52IsotropicLinearElasticMaterial :: IsotropicLinearElasticMaterial(
int n,
Domain *d,
53 double _E,
double _nu) :
57 G(
E / ( 2.0 * ( 1. +
nu ) ) ),
65IsotropicLinearElasticMaterial :: initializeFrom(
InputRecord &ir)
67 LinearElasticMaterial :: initializeFrom(ir);
74 G =
E / ( 2.0 * ( 1. +
nu ) );
80IsotropicLinearElasticMaterial :: initTangents()
82 double K =
E / ( 3.0 * ( 1. - 2. *
nu ) );
93 this->LinearElasticMaterial :: giveInputRecord(input);
94 StructuralMaterial :: giveInputRecord(input);
104 LinearElasticMaterial :: saveContext(stream, mode);
122 LinearElasticMaterial :: restoreContext(stream, mode);
125 if ( !stream.
read(
E) ) {
131 if ( !stream.
read(
a) ) {
135 G =
E / ( 2.0 * ( 1. +
nu ) );
142IsotropicLinearElasticMaterial :: give(
int aProperty,
GaussPoint *gp)
const
144 if ( ( aProperty ==
NYxy ) || ( aProperty ==
NYxz ) || ( aProperty ==
NYyz ) ) {
148 if ( ( aProperty ==
'G' ) || ( aProperty ==
Gyz ) || ( aProperty ==
Gxz ) ||
149 ( aProperty ==
Gxy ) ) {
153 if ( ( aProperty ==
'E' ) || ( aProperty ==
Ex ) || ( aProperty ==
Ey ) ||
154 ( aProperty ==
Ez ) ) {
158 if ( ( aProperty ==
'n' ) || ( aProperty ==
NYzx ) || ( aProperty ==
NYzy ) ||
159 ( aProperty ==
NYyx ) ) {
163 return this->Material :: give(aProperty, gp);
168IsotropicLinearElasticMaterial :: givePlaneStressStiffMtrx(MatResponseMode mode,
181IsotropicLinearElasticMaterial :: givePlaneStrainStiffMtrx(MatResponseMode mode,
194IsotropicLinearElasticMaterial :: give1dStressStiffMtrx(MatResponseMode mode,
213IsotropicLinearElasticMaterial :: giveDeviatoric3dMaterialStiffnessMatrix(
FloatMatrix &answer,
214 MatResponseMode mode,
221 double mu = this->
E / 2 / ( 1. + this->
nu );
227 answer.at(1, 1) = answer.at(2, 2) = answer.at(3, 3) = 4. / 3.;
228 answer.at(1, 2) = answer.at(1, 3) = -2. / 3.;
229 answer.at(2, 1) = answer.at(2, 3) = -2. / 3.;
230 answer.at(3, 1) = answer.at(3, 2) = -2. / 3.;
232 answer.at(4, 4) = answer.at(5, 5) = answer.at(6, 6) = 1.0;
239IsotropicLinearElasticMaterial :: giveDeviatoricPlaneStrainStiffMtrx(
FloatMatrix &answer,
240 MatResponseMode mode,
246 double mu = this->
E / 2 / ( 1. + this->
nu );
249 answer.
at(1, 1) = answer.
at(2, 2) = answer.
at(3, 3) = 4. / 3.;
250 answer.
at(1, 2) = answer.
at(1, 3) = -2. / 3.;
251 answer.
at(2, 1) = answer.
at(2, 3) = -2. / 3.;
252 answer.
at(3, 1) = answer.
at(3, 2) = -2. / 3.;
254 answer.
at(4, 4) = 1.0;
272 answer.
at(1) -= pressure;
273 answer.
at(2) -= pressure;
274 answer.
at(3) -= pressure;
294 answer.
at(1) -= pressure;
295 answer.
at(2) -= pressure;
296 answer.
at(3) -= pressure;
307 case ElasticBulkModulus:
309 case ElasticBulkModulusInverse:
320 if (type == Stress) {
322 }
else if (type == DeviatoricStress) {
334 if (type == DeviatoricStiffness) {
#define REGISTER_Material(class)
virtual int read(int *data, std::size_t count)=0
Reads count integer values into array pointed by data.
virtual int write(const int *data, std::size_t count)=0
Writes count integer values from array pointed by data.
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
void resize(Index rows, Index cols)
void zero()
Zeroes all coefficient of receiver.
double at(std::size_t i, std::size_t j) const
void giveDeviatoric3dMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode, GaussPoint *gp, TimeStep *tStep) const override
double nu
Poisson's ratio.
double giveCharacteristicValue(MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const override
Returns characteristic value of the receiver.
void giveDeviatoricPlaneStrainStiffMtrx(FloatMatrix &answer, MatResponseMode, GaussPoint *gp, TimeStep *tStep) const override
void giveCharacteristicMatrix(FloatMatrix &answer, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const override
void initTangents()
Initialized fixed size tangents. Called by ctor and initializeFrom.
double giveBulkModulus() const
Returns the bulk elastic modulus .
void giveCharacteristicVector(FloatArray &answer, FloatArray &flux, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const override
Returns characteristic vector of the receiver.
void computesSubTangents()
FloatMatrixF< 4, 4 > tangentPlaneStrain
LinearElasticMaterial(int n, Domain *d)
Constructor.
FloatMatrixF< 3, 3 > tangentPlaneStress
FloatMatrixF< 6, 6 > tangent
Preconstructed 3d tangent.
FloatArrayF< 6 > alpha
Thermal expansion.
double preCastStiffnessReduction
artificial isotropic damage to reflect reduction in stiffness for time < castingTime.
virtual void giveCharacteristicMatrix(FloatMatrix &answer, MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
Returns characteristic matrix of the receiver.
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
virtual double giveCharacteristicValue(MatResponseMode type, GaussPoint *gp, TimeStep *tStep) const
Returns characteristic value of the receiver.
virtual void giveDeviatoricConstitutiveMatrix(FloatMatrix &answer, MatResponseMode, GaussPoint *gp, TimeStep *tStep) const
MixedPressureMaterialExtensionInterface(Domain *d)
void letTempStressVectorBe(const FloatArray &v)
Assigns tempStressVector to given vector v.
void letTempStrainVectorBe(const FloatArray &v)
Assigns tempStrainVector to given vector v.
void giveStressDependentPartOfStrainVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrainVector, TimeStep *tStep, ValueModeType mode) const
virtual void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep) const
double giveIntrinsicTime()
Returns intrinsic time, e.g. time in which constitutive model is evaluated.
#define _IFT_IsotropicLinearElasticMaterial_talpha
#define _IFT_IsotropicLinearElasticMaterial_n
#define _IFT_IsotropicLinearElasticMaterial_e
const FloatMatrixF< 6, 6 > I6_I6
I(x)I expressed in Voigt form.
const FloatMatrixF< 6, 6 > I_dev6
I_dev matrix in Voigt (stress) form.
@ CIO_IOERR
General IO error.