105 double nonlocalContribution, nonlocalEquivalentStrain = 0.0;
115 nonlocalContribution *= lir.weight;
117 nonlocalEquivalentStrain += nonlocalContribution;
122 kappa = nonlocalEquivalentStrain;
131 if ( result !=
IRRT_OK )
return result;
133 if ( result !=
IRRT_OK )
return result;
153 if ( ( dist >= 0. ) && ( dist <= this->
R ) ) {
154 double help = ( 1. - dist * dist / ( R *
R ) );
193 fprintf(file,
"status { ");
194 if ( this->
damage > 0.0 ) {
195 fprintf(file,
"nonloc-kappa %f, damage %f ", this->
kappa, this->
damage);
198 fprintf(file,
"}\n");
277 this->buildNonlocalPointTable(ip);
278 this->updateDomainBeforeNonlocAverage(tStep);
290 result = buff.
read(localEquivalentStrainForAverage);
Abstract base class for all nonlocal structural materials.
double giveLocalEquivalentStrainForAverage()
Returns the local equivalent strain to be averaged.
void updateDomainBeforeNonlocAverage(TimeStep *tStep)
Updates data in all integration points before nonlocal average takes place.
void endIPNonlocalAverage(GaussPoint *gp)
Notifies the receiver, that the nonlocal averaging has been finished for given ip.
double R
Interaction radius, related to the nonlocal characteristic length of material.
This class implements associated Material Status to MazarsNLModel.
double kappa
Scalar measure of the largest strain level ever reached in material.
virtual int unpackAndUpdateUnknowns(DataStream &buff, TimeStep *tStep, GaussPoint *ip)
Unpack and updates all necessary data of given integration point (according to element parallel_mode)...
virtual int estimatePackSize(DataStream &buff, GaussPoint *ip)
Estimates the necessary pack size to hold all packed data of receiver.
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
double damage
Damage level of material.
virtual double computeWeightFunction(const FloatArray &src, const FloatArray &coord)
Evaluates the basic nonlocal weight function for two points with given coordinates.
void setLe(double ls)
Sets characteristic length to given value.
void buildNonlocalPointTable(GaussPoint *gp)
Builds list of integration points which take part in nonlocal average in given integration point...
MazarsNLMaterialStatus(int n, Domain *d, GaussPoint *g)
Constructor.
MazarsNLMaterial(int n, Domain *d)
Constructor.
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 printOutputAt(FILE *file, TimeStep *tStep)
Print receiver's output to given stream.
virtual int read(int *data, int count)=0
Reads count integer values into array pointed by data.
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
double hReft
Reference elem-length for objectivity.
IRResultType initializeFrom(InputRecord *ir)
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
double distance(const FloatArray &x) const
Computes the distance between position represented by receiver and position given as parameter...
virtual int write(const int *data, int count)=0
Writes count integer values from array pointed by data.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
virtual ~MazarsNLMaterial()
Destructor.
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
void setLocalEquivalentStrainForAverage(double ls)
Sets the local equivalent strain for average to given value.
std::vector< localIntegrationRecord > * giveIPIntegrationList(GaussPoint *gp)
Returns integration list corresponding to given integration point.
virtual Interface * giveInterface(InterfaceType it)
Interface requesting service.
virtual ~MazarsNLMaterialStatus()
Destructor.
#define _IFT_MazarsNLMaterial_r
void computeLocalEquivalentStrain(double &kappa, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
Computes the equivalent local strain measure from given strain vector (full form).
virtual MaterialStatus * giveStatus(GaussPoint *gp) const
Returns material status of receiver in given integration point.
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
Class representing vector of real numbers.
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
IRResultType
Type defining the return values of InputRecord reading operations.
virtual int givePackSizeOfDouble(int count)=0
virtual void computeEquivalentStrain(double &kappa, const FloatArray &strain, GaussPoint *gp, TimeStep *tStep)
Computes the equivalent strain measure from given strain vector (full form).
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
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 contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
Base class for all nonlocal structural material statuses.
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
void initDamaged(double kappa, FloatArray &totalStrainVector, GaussPoint *gp)
Perfoms initialization, when damage first appear.
double localEquivalentStrainForAverage
Equivalent strain for averaging.
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.
REGISTER_Material(DummyMaterial)
void setLec(double ls)
Sets characteristic length to given value.
This class implements associated Material Status to MazarsMaterial.
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...
This class implements a Mazars damage model form concrete.
virtual void initTempStatus()
Initializes the temporary internal variables, describing the current state according to previously re...
virtual int packUnknowns(DataStream &buff, TimeStep *tStep, GaussPoint *ip)
Pack all necessary data of integration point (according to element parallel_mode) into given communic...
Class representing integration point in finite element program.
Class representing solution step.