119 double tempDam, tempTSED;
138 tempTSED = 0.5 * totalStrain.
dotProduct(totalStress);
141 answer = totalStress;
152 double mu0 = eps0 / ( 2 * ( 1 +
nu0 ) );
155 answer.
at(1, 1) = answer.
at(2, 2) = answer.
at(3, 3) = 1 /
eps0;
156 answer.
at(1, 2) = answer.
at(2, 1) = answer.
at(1, 3) = -nu0 /
eps0;
157 answer.
at(3, 1) = answer.
at(2, 3) = answer.
at(3, 2) = -nu0 /
eps0;
158 answer.
at(4, 4) = answer.
at(5, 5) = answer.
at(6, 6) = 1 / mu0;
180 if ( type == IST_DamageScalar ) {
185 }
else if ( type == IST_PlasticStrainTensor ) {
187 OOFEM_WARNING(
"Unsure what components are stored in the plastic strain tensor");
189 }
else if ( type == IST_MaxEquivalentStrainLevel ) {
193 }
else if ( type == IST_BoneVolumeFraction ) {
197 }
else if ( type == IST_PlasStrainEnerDens ) {
201 }
else if ( type == IST_ElasStrainEnerDens ) {
205 }
else if ( type == IST_TotalStrainEnerDens ) {
246 fprintf(file,
"status { ");
248 fprintf(file,
" , alpha 0. , dam 0. , esed %f , psed 0. , tsed %f ", this->
tempTSED, this->
tempTSED);
249 fprintf(file,
"}\n");
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
InternalStateType
Type representing the physical meaning of element or constitutive model internal variable.
void letTempStrainVectorBe(const FloatArray &v)
Assigns tempStrainVector to given vector v.
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
const FloatArray & givePlasDef() const
GaussPoint * gp
Associated integration point.
void setTempDam(double da)
void setSmtrx(FloatMatrix smt)
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
double & at(int i)
Coefficient access function.
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
This class implements a structural material status information.
virtual ~TrabBoneEmbedStatus()
void constructIsoComplTensor(FloatMatrix &answer, const double eps0, const double nu0)
Constructs the anisotropic compliance tensor.
void setTempAlpha(double al)
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
MatResponseMode
Describes the character of characteristic material matrix.
void performPlasticityReturn(GaussPoint *gp, const FloatArray &totalStrain)
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual void give3dMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode mode, GaussPoint *gp, TimeStep *tStep)
Computes full 3d material stiffness matrix at given integration point, time, respecting load history ...
double dotProduct(const FloatArray &x) const
Computes the dot product (or inner product) of receiver and argument.
virtual MaterialStatus * CreateStatus(GaussPoint *gp) const
Creates new copy of associated status and inserts it into given integration point.
This class implements associated Material Status to TrabBoneEmbed.
void beProductOf(const FloatMatrix &aMatrix, const FloatArray &anArray)
Receiver becomes the result of the product of aMatrix and anArray.
double at(int i, int j) const
Coefficient access function.
TrabBoneEmbedStatus(int n, Domain *d, GaussPoint *g)
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
double computeDamage(GaussPoint *gp, TimeStep *tStep)
Abstract base class representing a material status information.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep)
Returns the integration point corresponding value in Reduced form.
virtual void computeCumPlastStrain(double &alpha, GaussPoint *gp, TimeStep *tStep)
void letTempStressVectorBe(const FloatArray &v)
Assigns tempStressVector to given vector v.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
TrabBoneEmbed(int n, Domain *d)
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Abstract base class for all "structural" constitutive models.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
Domain * giveDomain() const
virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep)
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
REGISTER_Material(DummyMaterial)
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
void setTempTSED(double tse)
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
the oofem namespace is to define a context or scope in which all oofem names are defined.
virtual void initTempStatus(GaussPoint *gp)
Initializes temporary variables stored in integration point status at the beginning of new time step...
void beInverseOf(const FloatMatrix &src)
Modifies receiver to become inverse of given parameter.
double computeDamageParam(double alpha, GaussPoint *gp)
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
#define _IFT_TrabBoneEmbed_nu0
Class representing integration point in finite element program.
#define OOFEM_WARNING(...)
Class representing solution step.
#define _IFT_TrabBoneEmbed_eps0
void setTempPlasDef(FloatArray epsip)
void resize(int s)
Resizes receiver towards requested size.