OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
oofem::StructuralNonlocalMaterialExtensionInterface Class Referenceabstract

Abstract base class for all nonlocal structural materials. More...

#include <structuralnonlocalmaterialext.h>

+ Inheritance diagram for oofem::StructuralNonlocalMaterialExtensionInterface:
+ Collaboration diagram for oofem::StructuralNonlocalMaterialExtensionInterface:

Public Member Functions

 StructuralNonlocalMaterialExtensionInterface (Domain *d)
 Constructor. More...
 
 ~StructuralNonlocalMaterialExtensionInterface ()
 Destructor. More...
 
virtual void updateBeforeNonlocAverage (const FloatArray &strainVector, GaussPoint *gp, TimeStep *tStep)=0
 Declares the service updating local variables in given integration points, which take part in nonlocal average process. More...
 
- Public Member Functions inherited from oofem::NonlocalMaterialExtensionInterface
 NonlocalMaterialExtensionInterface (Domain *d)
 Constructor. More...
 
virtual ~NonlocalMaterialExtensionInterface ()
 Destructor. More...
 
void updateDomainBeforeNonlocAverage (TimeStep *tStep)
 Updates data in all integration points before nonlocal average takes place. More...
 
void buildNonlocalPointTable (GaussPoint *gp)
 Builds list of integration points which take part in nonlocal average in given integration point. More...
 
void rebuildNonlocalPointTable (GaussPoint *gp, IntArray *contributingElems)
 Rebuild list of integration points which take part in nonlocal average in given integration point. More...
 
void modifyNonlocalWeightFunctionAround (GaussPoint *gp)
 Recompute the nonlocal interaction weights based on the current solution (e.g., on the damage field). More...
 
void modifyNonlocalWeightFunction_1D_Around (GaussPoint *gp)
 
virtual double giveNonlocalMetricModifierAt (GaussPoint *gp)
 Provide the current value of the variable that affects nonlocal interaction (e.g., of damage) This method is used e.g. More...
 
double computeDistanceModifier (double damage)
 Compute the factor that specifies how the interaction length should be modified, based on the current solution (e.g., on the damage field). More...
 
double computeModifiedLength (double length, double dam1, double dam2)
 Compute the modified interaction length based on the current solution (e.g., on the damage field). More...
 
std::vector< localIntegrationRecord > * giveIPIntegrationList (GaussPoint *gp)
 Returns integration list corresponding to given integration point. More...
 
virtual double computeWeightFunction (double distance)
 Evaluates the basic nonlocal weight function for a given distance between interacting points. More...
 
virtual double computeWeightFunction (const FloatArray &src, const FloatArray &coord)
 Evaluates the basic nonlocal weight function for two points with given coordinates. More...
 
double giveIntegralOfWeightFunction (const int spatial_dimension)
 Provides the integral of the weight function over the contributing volume in 1, 2 or 3D. More...
 
virtual double maxValueOfWeightFunction ()
 Determines the maximum value of the nonlocal weight function. More...
 
int giveNumberOfRegions ()
 Determines the number of material regions of domain. More...
 
virtual int hasBoundedSupport ()
 Determines, whether receiver has bounded weighting function (limited support). More...
 
virtual double evaluateSupportRadius ()
 Determines the width (radius) of limited support of weighting function. More...
 
DomaingiveDomain ()
 Returns reference to domain. More...
 
IRResultType initializeFrom (InputRecord *ir)
 
void giveInputRecord (DynamicInputRecord &input)
 Stores receiver in an input record. More...
 
void endIPNonlocalAverage (GaussPoint *gp)
 Notifies the receiver, that the nonlocal averaging has been finished for given ip. More...
 
- Public Member Functions inherited from oofem::Interface
 Interface ()
 Constructor. More...
 
virtual ~Interface ()
 
virtual const char * giveClassName () const =0
 

Additional Inherited Members

- Protected Types inherited from oofem::NonlocalMaterialExtensionInterface
enum  WeightFunctionType {
  WFT_Unknown, WFT_Bell, WFT_Gauss, WFT_Green,
  WFT_Uniform, WFT_UniformOverElement, WFT_Green_21
}
 Type characterizing the nonlocal weight function. More...
 
enum  ScalingType { ST_Unknown, ST_Standard, ST_Noscaling, ST_Borino }
 Type characterizing the scaling approach. More...
 
enum  AveragedVarType { AVT_Unknown, AVT_EqStrain, AVT_Compliance, AVT_Damage }
 Type characterizing the averaged (nonlocal) variable. More...
 
enum  NlVariationType { NLVT_Standard, NLVT_DistanceBasedLinear, NLVT_StressBased, NLVT_DistanceBasedExponential }
 Type characterizing the Nonlocal variation. More...
 
- Protected Member Functions inherited from oofem::NonlocalMaterialExtensionInterface
void applyBarrierConstraints (const FloatArray &gpCoords, const FloatArray &jGpCoords, double &weight)
 
void manipulateWeight (double &weight, GaussPoint *gp, GaussPoint *jGp)
 Manipulates weight on integration point in the element. More...
 
double giveDistanceBasedInteractionRadius (const FloatArray &gpCoords)
 Provides the distance based interaction radius This function is called when nlvariation is set to 1. More...
 
int mapToGridPoint (double x, double x0)
 
double mapToGridCoord (double x, double x0)
 
double dist2FromGridNode (double x, double y, int j, int i)
 
- Protected Attributes inherited from oofem::NonlocalMaterialExtensionInterface
Domaindomain
 
IntArray regionMap
 Map indicating regions to skip (region - cross section model). More...
 
bool permanentNonlocTableFlag
 Flag indicating whether to keep nonlocal interaction tables of integration points cached. More...
 
WeightFunctionType weightFun
 Parameter specifying the type of nonlocal weight function. More...
 
int gridSize
 Grid on which the eikonal equation will be solved (used by eikonal nonlocal models) More...
 
Gridgrid
 
FloatMatrixminDist2
 Auxiliary matrix to store minimum distances of grid points from Gauss points. More...
 
double initDiag
 Optional parameters setting details of the fast marching method. More...
 
int order
 
int centDiff
 
double cl
 Characteristic length of the nonlocal model (its interpretation depends on the type of weight function). More...
 
double suprad
 Support radius. More...
 
double mm
 For "undernonlocal" or "overnonlocal" formulation. More...
 
ScalingType scaling
 Parameter specifying the type of scaling of nonlocal weight function. More...
 
AveragedVarType averagedVar
 Parameter specifying the type of averaged (nonlocal) variable. More...
 
double cl0
 Initial(user defined) characteristic length of the nonlocal model (its interpretation depends on the weight function) Is different to cl when a Stress-based or a Distance-based nonlocal variation is applied. More...
 
NlVariationType nlvar
 Parameter specifying the type of nonlocal variation. More...
 
double beta
 Parameter which multiplied with the interaction radius cl0 gives its minimum allowed value. More...
 
double zeta
 Parameter used when Distance-based nonlocal variation is applied When it is multiplied with the interaction radius cl gives the maxinmum distance of the Gauss Point from the boundary. More...
 
double px
 Parameter specifying the periodic shift in x-direction. More...
 
double Rf
 Final value of interaction radius, for a model with evolving characteristic length. More...
 
double exponent
 Parameter used as an exponent by models with evolving characteristic length. More...
 
int averType
 Parameter specifying how the weight function should be adjusted due to damage. More...
 

Detailed Description

Abstract base class for all nonlocal structural materials.

Nonlocal in the sense that the response at a particular point depends not only on the state of that point, but also takes into account the state of surrounding points. The response typically depends on some nonlocal quantity obtained as weighted average over some characteristic volume. This class declares the necessary interface for all nonlocal structural constitutive models. It also stores the parameters needed for nonlocal averaging and provides services for evaluation of the weight function.

Definition at line 61 of file structuralnonlocalmaterialext.h.

Constructor & Destructor Documentation

oofem::StructuralNonlocalMaterialExtensionInterface::StructuralNonlocalMaterialExtensionInterface ( Domain d)
inline

Constructor.

Parameters
dDomain to which new material will belong.

Definition at line 68 of file structuralnonlocalmaterialext.h.

oofem::StructuralNonlocalMaterialExtensionInterface::~StructuralNonlocalMaterialExtensionInterface ( )
inline

Destructor.

Definition at line 71 of file structuralnonlocalmaterialext.h.

Member Function Documentation

virtual void oofem::StructuralNonlocalMaterialExtensionInterface::updateBeforeNonlocAverage ( const FloatArray strainVector,
GaussPoint gp,
TimeStep tStep 
)
pure virtual

Declares the service updating local variables in given integration points, which take part in nonlocal average process.

Because value of single integration point influences nonlocal variables in several near integration points, it is suitable to compute these variables only once. These should be stored in integration point associated statuses. The implementation is left on derived classes. Provide material local strain increment - as is provided to computeRealStresVector. This allows to update internal vars to be averaged to new state

Parameters
strainVectorTotal strain vector in given integration point.
gpIntegration point to update.
tStepSolution step indicating time of update.

Implemented in oofem::MDM, oofem::RankineMatNl, oofem::MisesMatNl, oofem::TrabBoneNL3D, oofem::IDNLMaterial, oofem::RCSDNLMaterial, oofem::FRCFCMNL, oofem::MazarsNLMaterial, oofem::TrabBoneNLEmbed, and oofem::TrabBoneNL.

Referenced by oofem::StructuralElement::updateBeforeNonlocalAverage().


The documentation for this class was generated from the following file:

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:42 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011