42std::pair<FloatArrayF<6>,
double>
45 double epsp_vol = -( eps[0] + eps[1] + eps[2] );
47 return {stress_dev, epsp_vol};
51std::pair<FloatArrayF<3>,
double>
56 auto stress3 = val.first;
57 auto epsv = val.second;
58 return {stress3[{0, 1, 5}], epsv};
66 return stress3[{0, 1, 5}];
74 return stress3[{0, 1, 2, 5}];
79FluidDynamicMaterial :: computeTangent2D(MatResponseMode mode,
GaussPoint *gp,
TimeStep *tStep)
const
82 return dsdd3({0, 1, 5}, {0, 1, 5});
87FluidDynamicMaterial :: computeTangentAxi(MatResponseMode mode,
GaussPoint *gp,
TimeStep *tStep)
const
90 return dsdd3({0, 1, 2, 5}, {0, 1, 2, 5});
95FluidDynamicMaterial :: computeTangents3D(MatResponseMode mode,
GaussPoint *gp,
TimeStep *tStep)
const
107FluidDynamicMaterial :: computeTangents2D(MatResponseMode mode,
GaussPoint *gp,
TimeStep *tStep)
const
114 return {dsdd, dsdp, dedd, t.
dedp};
118FluidDynamicMaterialStatus :: FluidDynamicMaterialStatus(
GaussPoint *g) :
123FluidDynamicMaterialStatus :: printOutputAt(FILE *file,
TimeStep *tStep)
const
125 fprintf(file,
"\n deviatoric stresses");
127 fprintf(file,
" %.4e", e );
137 if ( type == IST_DeviatoricStress ) {
138 answer = status->giveDeviatoricStressVector();
140 }
else if ( type == IST_DeviatoricStrain ) {
141 answer = status->giveDeviatoricStrainRateVector();
143 }
else if ( type == IST_Viscosity ) {
147 }
else if ( type == IST_Density ) {
149 answer.
at(1) = this->
give(
'd', gp);
152 return Material :: giveIPValue(answer, gp, type, tStep);
160 MaterialStatus :: saveContext(stream, mode);
176 MaterialStatus :: restoreContext(stream, mode);
FloatArrayF< 6 > deviatoricStrainRateVector
Strain vector in reduced form.
FloatArrayF< 6 > deviatoricStressVector
Stress vector in reduced form.
virtual Tangents< 6 > computeTangents3D(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const
virtual FloatMatrixF< 6, 6 > computeTangent3D(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const =0
virtual double giveEffectiveViscosity(GaussPoint *gp, TimeStep *tStep) const =0
virtual std::pair< FloatArrayF< 6 >, double > computeDeviatoricStress3D(const FloatArrayF< 6 > &eps, double pressure, GaussPoint *gp, TimeStep *tStep) const
MaterialStatus(GaussPoint *g)
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
virtual double give(int aProperty, GaussPoint *gp) const
FloatArrayF< N > assemble(const FloatArrayF< M > &x, int const (&c)[M])
Assemble components into zero matrix.
FloatArrayF< N > zeros()
For more readable code.
FloatMatrixF< N, N > dsdd