66 double cumPlastStrain;
88 double tempDam, tempTSED;
101 tempTSED = 0.5 * strainVector.
dotProduct(totalStress);
104 answer = totalStress;
115 double nonlocalContribution, nonlocalCumPlastStrain = 0.0;
123 for (
auto &lir: *list ) {
126 nonlocalContribution *= lir.weight;
127 nonlocalCumPlastStrain += nonlocalContribution;
188 if ( ( dist >= 0. ) && ( dist <= this->
R ) ) {
189 double help = ( 1. - dist * dist / ( R *
R ) );
209 fprintf(file,
"status {");
210 fprintf(file,
" plastrains ");
212 fprintf( file,
" %.4e", val );
216 fprintf(file,
" alpha %.4e ,",
alpha);
217 fprintf(file,
" dam %.4e ,",
dam);
218 fprintf(file,
" esed %.4e ,", this->
tempTSED);
219 fprintf(file,
" psed 0. ,");
220 fprintf(file,
" tsed %.4e ,", this->
tempTSED);
221 fprintf(file,
"}\n");
Abstract base class for all nonlocal structural materials.
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.
void updateDomainBeforeNonlocAverage(TimeStep *tStep)
Updates data in all integration points before nonlocal average takes place.
#define _IFT_TrabBoneNLEmbed_m
virtual void computeCumPlastStrain(double &alpha, GaussPoint *gp, TimeStep *tStep)
void setTempDam(double da)
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
virtual void giveRealStressVector_3d(FloatArray &answer, GaussPoint *gp, const FloatArray &strainVector, TimeStep *tStep)
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
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.
virtual Interface * giveInterface(InterfaceType)
Interface requesting service.
void buildNonlocalPointTable(GaussPoint *gp)
Builds list of integration points which take part in nonlocal average in given integration point...
void setLocalCumPlastStrainForAverage(double ls)
Sets the local cumulative plastic strain.
std::vector< localIntegrationRecord > * giveIntegrationDomainList()
Returns integration list of receiver.
void constructIsoComplTensor(FloatMatrix &answer, const double eps0, const double nu0)
Constructs the anisotropic compliance tensor.
void giveStressDependentPartOfStrainVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrainVector, TimeStep *tStep, ValueModeType mode)
Method for subtracting from reduced space strain vector its stress-independent parts (caused by tempe...
virtual void printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
void performPlasticityReturn(GaussPoint *gp, const FloatArray &totalStrain)
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
#define _IFT_TrabBoneNLEmbed_r
IRResultType initializeFrom(InputRecord *ir)
double distance(const FloatArray &x) const
Computes the distance between position represented by receiver and position given as parameter...
virtual void updateBeforeNonlocAverage(const FloatArray &strainVector, GaussPoint *gp, TimeStep *tStep)
Declares the service updating local variables in given integration points, which take part in nonloca...
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
double dotProduct(const FloatArray &x) const
Computes the dot product (or inner product) of receiver and argument.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual ~TrabBoneNLEmbed()
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.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
TrabBoneNLEmbedStatus(int n, Domain *d, GaussPoint *g)
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
Trabecular bone nonlocal material status.
Class representing vector of real numbers.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
Implementation of matrix containing floating point numbers.
Trabecular bone embedding material model.
IRResultType
Type defining the return values of InputRecord reading operations.
void letTempStressVectorBe(const FloatArray &v)
Assigns tempStressVector to given vector v.
virtual double computeWeightFunction(const FloatArray &src, const FloatArray &coord)
Evaluates the basic nonlocal weight function for two points with given coordinates.
void resize(int rows, int cols)
Checks size of receiver towards requested bounds.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
Base class for all nonlocal structural material statuses.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual ~TrabBoneNLEmbedStatus()
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
InterfaceType
Enumerative type, used to identify interface type.
double giveIntegrationScale()
Returns associated integration scale.
virtual void giveInputRecord(DynamicInputRecord &input)
Setups the input record string of receiver.
REGISTER_Material(DummyMaterial)
void setTempTSED(double tse)
the oofem namespace is to define a context or scope in which all oofem names are defined.
void computeLocalCumPlastStrain(double &alpha, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
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.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
TrabBoneNLEmbed(int n, Domain *d)
Class representing integration point in finite element program.
Class representing solution step.
double localCumPlastStrainForAverage
Equivalent strain for averaging.
void resize(int s)
Resizes receiver towards requested size.
double giveLocalCumPlastStrainForAverage()
Gives the local cumulative plastic strain.