68 nlstatus->letTempStrainVectorBe(strainVector);
73 nlstatus->setLocalCumPlastStrainForAverage(cumPlastStrain);
83 auto elasticity =
inv(compliance);
89 auto totalStress =
dot(elasticity, strain);
91 double tempTSED = 0.5 *
dot(strain, totalStress);
93 nlStatus->setTempDam(tempDam);
94 nlStatus->letTempStrainVectorBe(strain);
95 nlStatus->letTempStressVectorBe(totalStress);
96 nlStatus->setTempTSED(tempTSED);
140 TrabBoneEmbed :: initializeFrom(ir);
141 StructuralNonlocalMaterialExtensionInterface :: initializeFrom(ir);
156 TrabBoneEmbed :: giveInputRecord(input);
167 if ( ( dist >= 0. ) && ( dist <= this->
R ) ) {
168 double help = ( 1. - dist * dist / (
R *
R ) );
176TrabBoneNLEmbedStatus :: TrabBoneNLEmbedStatus(
GaussPoint *g) :
183TrabBoneNLEmbedStatus :: printOutputAt(FILE *file,
TimeStep *tStep)
const
185 StructuralMaterialStatus :: printOutputAt(file, tStep);
186 fprintf(file,
"status {");
187 fprintf(file,
" plastrains ");
189 fprintf( file,
" %.4e", val );
193 fprintf(file,
" alpha %.4e ,",
alpha);
194 fprintf(file,
" dam %.4e ,",
dam);
195 fprintf(file,
" esed %.4e ,", this->
tempTSED);
196 fprintf(file,
" psed 0. ,");
197 fprintf(file,
" tsed %.4e ,", this->
tempTSED);
198 fprintf(file,
"}\n");
202TrabBoneNLEmbedStatus :: initTempStatus()
204 TrabBoneEmbedStatus :: initTempStatus();
208TrabBoneNLEmbedStatus :: updateYourself(
TimeStep *tStep)
210 TrabBoneEmbedStatus :: updateYourself(tStep);
216 TrabBoneEmbedStatus :: saveContext(stream, mode);
222 TrabBoneEmbedStatus :: restoreContext(stream, mode);
#define REGISTER_Material(class)
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
virtual void initTempStatus(GaussPoint *gp) const
void giveStressDependentPartOfStrainVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrainVector, TimeStep *tStep, ValueModeType mode) const
StructuralNonlocalMaterialExtensionInterface(Domain *d)
StructuralNonlocalMaterialStatusExtensionInterface()
TrabBoneEmbedStatus(GaussPoint *g)
static FloatMatrixF< 6, 6 > constructIsoComplTensor(double eps0, double nu0)
Constructs the anisotropic compliance tensor.
void performPlasticityReturn(GaussPoint *gp, const FloatArrayF< 6 > &totalStrain) const
TrabBoneEmbed(int n, Domain *d)
double computeLocalCumPlastStrain(const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const
double dot(const FloatArray &x, const FloatArray &y)
FloatMatrixF< N, N > inv(const FloatMatrixF< N, N > &mat, double zeropiv=1e-24)
Computes the inverse.
@ NonlocalMaterialStatusExtensionInterfaceType
@ NonlocalMaterialExtensionInterfaceType
double distance(const FloatArray &x, const FloatArray &y)
#define _IFT_TrabBoneNLEmbed_m
#define _IFT_TrabBoneNLEmbed_r