OOFEM
2.4
OOFEM.org - Object Oriented Finite Element Solver
|
Abstract base class for all nonlocal materials. More...
#include <nonlocalmaterialext.h>
Public Member Functions | |
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... | |
Domain * | giveDomain () |
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 |
Protected Types | |
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 | |
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 | |
Domain * | domain |
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... | |
Grid * | grid |
FloatMatrix * | minDist2 |
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... | |
Abstract base class for all nonlocal materials.
Nonlocal in sense, that response in particular point depends not only on state in that point, but also takes into account state of surrounding points. Response typically depends on some nonlocal quantity obtained as nonlocal average over some characteristic volume. General services for updating domain before nonlocal average, building table of influencing integration points for given integration point and computing nonlocal weight function are declared. The general service for building table of influencing integration points for given integration point is also implemented. The use of multiple inheritance is assumed. Typically, the class representing nonlocal constitutive model is derived both from class representing local model and from this class or from one of its derived classes (which declare services and variables corresponding to specific analysis type).
Definition at line 150 of file nonlocalmaterialext.h.
|
protected |
Type characterizing the averaged (nonlocal) variable.
Enumerator | |
---|---|
AVT_Unknown | |
AVT_EqStrain | |
AVT_Compliance | |
AVT_Damage |
Definition at line 209 of file nonlocalmaterialext.h.
|
protected |
Type characterizing the Nonlocal variation.
Enumerator | |
---|---|
NLVT_Standard | |
NLVT_DistanceBasedLinear | |
NLVT_StressBased | |
NLVT_DistanceBasedExponential |
Definition at line 221 of file nonlocalmaterialext.h.
|
protected |
Type characterizing the scaling approach.
Enumerator | |
---|---|
ST_Unknown | |
ST_Standard | |
ST_Noscaling | |
ST_Borino |
Definition at line 204 of file nonlocalmaterialext.h.
Type characterizing the nonlocal weight function.
Enumerator | |
---|---|
WFT_Unknown | |
WFT_Bell | |
WFT_Gauss | |
WFT_Green | |
WFT_Uniform | |
WFT_UniformOverElement | |
WFT_Green_21 |
Definition at line 178 of file nonlocalmaterialext.h.
oofem::NonlocalMaterialExtensionInterface::NonlocalMaterialExtensionInterface | ( | Domain * | d | ) |
Constructor.
Creates material with given number, belonging to given domain.
d | Domain to which new material will belong. |
Definition at line 62 of file nonlocalmaterialext.C.
References averagedVar, averType, AVT_Unknown, beta, centDiff, cl, cl0, domain, exponent, oofem::Domain::giveNumberOfRegions(), grid, gridSize, hasBoundedSupport(), initDiag, minDist2, mm, nlvar, NLVT_Standard, order, permanentNonlocTableFlag, px, regionMap, oofem::IntArray::resize(), Rf, scaling, ST_Unknown, suprad, weightFun, WFT_Unknown, and zeta.
|
inlinevirtual |
Destructor.
Definition at line 264 of file nonlocalmaterialext.h.
|
protected |
Definition at line 908 of file nonlocalmaterialext.C.
References oofem::NonlocalBarrier::applyConstraint(), domain, oofem::Domain::giveNonlocalBarrier(), and oofem::Domain::giveNumberOfNonlocalBarriers().
Referenced by buildNonlocalPointTable(), and rebuildNonlocalPointTable().
void oofem::NonlocalMaterialExtensionInterface::buildNonlocalPointTable | ( | GaussPoint * | gp | ) |
Builds list of integration points which take part in nonlocal average in given integration point.
This list is stored in integration point corresponding nonlocal status. Generally speaking, the nonlocal weight function with "bounded" or limited support is assumed. When nonlocal weight function unbounded support is used, then keeping the list of influencing integration points would be wasting of space and should be cleared after averaging has been finished in integration point. The endIPNonlocalAverage method will ensure this.
Definition at line 117 of file nonlocalmaterialext.C.
References applyBarrierConstraints(), oofem::IntArray::at(), oofem::FloatArray::at(), cl, oofem::Element::computeGlobalCoordinates(), oofem::Element::computeVolumeAround(), computeWeightFunction(), evaluateSupportRadius(), oofem::SpatialLocalizer::giveAllElementsWithIpWithinBox_EvenIfEmpty(), oofem::SpatialLocalizer::giveAllElementsWithNodesWithinBox(), oofem::Element::giveDefaultIntegrationRulePtr(), giveDistanceBasedInteractionRadius(), giveDomain(), oofem::GaussPoint::giveElement(), oofem::Domain::giveElement(), oofem::NonlocalMaterialStatusExtensionInterface::giveIntegrationDomainList(), oofem::GaussPoint::giveMaterialStatus(), oofem::GaussPoint::giveNaturalCoordinates(), oofem::FEMComponent::giveNumber(), oofem::Element::giveRegionNumber(), oofem::IntArray::giveSize(), oofem::Domain::giveSpatialLocalizer(), manipulateWeight(), oofem::localIntegrationRecord::nearGp, nlvar, NLVT_DistanceBasedExponential, NLVT_DistanceBasedLinear, oofem::NonlocalMaterialStatusExtensionInterfaceType, OOFEM_ERROR, px, regionMap, oofem::NonlocalMaterialStatusExtensionInterface::setIntegrationScale(), oofem::NonlocalMaterialStatusExtensionInterface::setVolumeAround(), suprad, and oofem::localIntegrationRecord::weight.
Referenced by oofem::RankineMatNl::computeCumPlasticStrain(), oofem::MisesMatNl::computeCumPlasticStrain(), oofem::TrabBoneNL::computeCumPlastStrain(), oofem::TrabBoneNL3D::computeCumPlastStrain(), oofem::TrabBoneNLEmbed::computeCumPlastStrain(), oofem::MDM::computeDamageTensor(), oofem::MazarsNLMaterial::computeEquivalentStrain(), oofem::IDNLMaterial::computeEquivalentStrain(), oofem::FRCFCMNL::computeNonlocalStressInFibers(), oofem::FRCFCMNL::computeNonlocalStressInFibersInUncracked(), giveIPIntegrationList(), oofem::RCSDNLMaterial::giveRealStressVector(), oofem::TrabBoneNL3D::NonlocalMaterialStiffnessInterface_giveIntegrationDomainList(), oofem::MisesMatNl::NonlocalMaterialStiffnessInterface_giveIntegrationDomainList(), oofem::RankineMatNl::NonlocalMaterialStiffnessInterface_giveIntegrationDomainList(), oofem::IDNLMaterial::NonlocalMaterialStiffnessInterface_giveIntegrationDomainList(), oofem::MDM::packUnknowns(), and rebuildNonlocalPointTable().
double oofem::NonlocalMaterialExtensionInterface::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).
This method is used e.g. by eikonal nonlocal damage models.
Definition at line 544 of file nonlocalmaterialext.C.
References averType, cl, exponent, M_PI, and Rf.
Referenced by computeModifiedLength(), and modifyNonlocalWeightFunctionAround().
double oofem::NonlocalMaterialExtensionInterface::computeModifiedLength | ( | double | length, |
double | dam1, | ||
double | dam2 | ||
) |
Compute the modified interaction length based on the current solution (e.g., on the damage field).
This method is used e.g. by eikonal nonlocal damage models.
Definition at line 533 of file nonlocalmaterialext.C.
References averType, and computeDistanceModifier().
Referenced by modifyNonlocalWeightFunction_1D_Around().
|
virtual |
Evaluates the basic nonlocal weight function for a given distance between interacting points.
This function is NOT normalized by the condition of unit integral.
distance | Distance between interacting points. |
Definition at line 600 of file nonlocalmaterialext.C.
References cl, domain, giveIntegralOfWeightFunction(), oofem::Domain::giveNumberOfSpatialDimensions(), OOFEM_WARNING, suprad, weightFun, WFT_Bell, WFT_Gauss, WFT_Green, WFT_Green_21, WFT_Uniform, and WFT_UniformOverElement.
Referenced by oofem::SymmetryBarrier::applyConstraint(), buildNonlocalPointTable(), oofem::IDNLMaterial::computeStressBasedWeight(), oofem::IDNLMaterial::computeStressBasedWeightForPeriodicCell(), computeWeightFunction(), modifyNonlocalWeightFunction_1D_Around(), oofem::MisesMatNl::modifyNonlocalWeightFunctionAround(), modifyNonlocalWeightFunctionAround(), and rebuildNonlocalPointTable().
|
virtual |
Evaluates the basic nonlocal weight function for two points with given coordinates.
This function is NOT normalized by the condition of unit integral.
src | Coordinates of source point. |
coord | Coordinates of receiver point. |
Reimplemented in oofem::MDM, oofem::TrabBoneNL3D, oofem::RCSDNLMaterial, oofem::MazarsNLMaterial, oofem::TrabBoneNLEmbed, and oofem::TrabBoneNL.
Definition at line 657 of file nonlocalmaterialext.C.
References computeWeightFunction(), and oofem::FloatArray::distance().
|
inlineprotected |
Definition at line 448 of file nonlocalmaterialext.h.
Referenced by modifyNonlocalWeightFunctionAround().
void oofem::NonlocalMaterialExtensionInterface::endIPNonlocalAverage | ( | GaussPoint * | gp | ) |
Notifies the receiver, that the nonlocal averaging has been finished for given ip.
It deletes IP nonlocal table if permanentNonlocTableFlag is false. This can save significant memory, since nonlocal tables are not stored, but every time computed when needed, but on the other hand computational time may significantly grow.
Definition at line 584 of file nonlocalmaterialext.C.
References oofem::NonlocalMaterialStatusExtensionInterface::clear(), oofem::GaussPoint::giveMaterialStatus(), hasBoundedSupport(), oofem::NonlocalMaterialStatusExtensionInterfaceType, OOFEM_ERROR, and permanentNonlocTableFlag.
Referenced by oofem::MDM::computeDamageTensor(), oofem::MazarsNLMaterial::computeEquivalentStrain(), oofem::IDNLMaterial::computeEquivalentStrain(), and oofem::RCSDNLMaterial::giveRealStressVector().
|
virtual |
Determines the width (radius) of limited support of weighting function.
i.e., the distance at which the interaction weight becomes zero.
Definition at line 724 of file nonlocalmaterialext.C.
References cl, weightFun, WFT_Bell, WFT_Gauss, WFT_Green, WFT_Green_21, WFT_Uniform, and WFT_UniformOverElement.
Referenced by buildNonlocalPointTable(), initializeFrom(), and rebuildNonlocalPointTable().
|
protected |
Provides the distance based interaction radius This function is called when nlvariation is set to 1.
The function loops over all user defined nonlocal boundaries to to find minimum distance from the GP. Then calculates interaction radius
gpCoords | The Gauss points' coordinates, whose interaction radius is calculated based on the distance-based averaging approach. |
Definition at line 937 of file nonlocalmaterialext.C.
References beta, oofem::NonlocalBarrier::calculateMinimumDistanceFromBoundary(), cl0, domain, oofem::Domain::giveNonlocalBarrier(), oofem::Domain::giveNumberOfNonlocalBarriers(), nlvar, NLVT_DistanceBasedExponential, NLVT_DistanceBasedLinear, and zeta.
Referenced by buildNonlocalPointTable(), and rebuildNonlocalPointTable().
|
inline |
Returns reference to domain.
Definition at line 390 of file nonlocalmaterialext.h.
References oofem::localIntegrationRecord::weight.
Referenced by buildNonlocalPointTable(), initializeFrom(), rebuildNonlocalPointTable(), and updateDomainBeforeNonlocAverage().
void oofem::NonlocalMaterialExtensionInterface::giveInputRecord | ( | DynamicInputRecord & | input | ) |
Stores receiver in an input record.
input | Input record to be filled in. |
Definition at line 858 of file nonlocalmaterialext.C.
References _IFT_NonlocalMaterialExtensionInterface_averagedquantity, _IFT_NonlocalMaterialExtensionInterface_averagingtype, _IFT_NonlocalMaterialExtensionInterface_beta, _IFT_NonlocalMaterialExtensionInterface_exp, _IFT_NonlocalMaterialExtensionInterface_m, _IFT_NonlocalMaterialExtensionInterface_nonlocalvariation, _IFT_NonlocalMaterialExtensionInterface_permanentNonlocTableFlag, _IFT_NonlocalMaterialExtensionInterface_r, _IFT_NonlocalMaterialExtensionInterface_regionmap, _IFT_NonlocalMaterialExtensionInterface_rf, _IFT_NonlocalMaterialExtensionInterface_scalingtype, _IFT_NonlocalMaterialExtensionInterface_wft, _IFT_NonlocalMaterialExtensionInterface_zeta, averagedVar, averType, beta, cl, exponent, oofem::IntArray::giveSize(), mm, nlvar, NLVT_DistanceBasedExponential, NLVT_DistanceBasedLinear, NLVT_StressBased, permanentNonlocTableFlag, regionMap, Rf, scaling, oofem::DynamicInputRecord::setField(), weightFun, and zeta.
Referenced by oofem::RankineMatNl::giveInputRecord(), oofem::MisesMatNl::giveInputRecord(), oofem::IDNLMaterial::giveInputRecord(), and oofem::MDM::giveInputRecord().
double oofem::NonlocalMaterialExtensionInterface::giveIntegralOfWeightFunction | ( | const int | spatial_dimension | ) |
Provides the integral of the weight function over the contributing volume in 1, 2 or 3D.
Definition at line 663 of file nonlocalmaterialext.C.
References cl, M_PI, weightFun, WFT_Bell, WFT_Gauss, WFT_Green, WFT_Green_21, and WFT_Uniform.
Referenced by computeWeightFunction(), and maxValueOfWeightFunction().
std::vector< localIntegrationRecord > * oofem::NonlocalMaterialExtensionInterface::giveIPIntegrationList | ( | GaussPoint * | gp | ) |
Returns integration list corresponding to given integration point.
Contains localIntegrationRecord structures, containing references to integration points and their weights that influence to nonlocal average in receiver's associated integration point. Rebuilds the IP list by calling buildNonlocalPointTable if not available.
Definition at line 566 of file nonlocalmaterialext.C.
References buildNonlocalPointTable(), oofem::NonlocalMaterialStatusExtensionInterface::giveIntegrationDomainList(), oofem::GaussPoint::giveMaterialStatus(), oofem::NonlocalMaterialStatusExtensionInterfaceType, and OOFEM_ERROR.
Referenced by oofem::RankineMatNl::computeCumPlasticStrain(), oofem::MisesMatNl::computeCumPlasticStrain(), oofem::MDM::computeDamageTensor(), oofem::MazarsNLMaterial::computeEquivalentStrain(), oofem::IDNLMaterial::computeEquivalentStrain(), oofem::FRCFCMNL::computeNonlocalStressInFibers(), oofem::FRCFCMNL::computeNonlocalStressInFibersInUncracked(), oofem::RCSDNLMaterial::giveRealStressVector(), modifyNonlocalWeightFunction_1D_Around(), oofem::MisesMatNl::modifyNonlocalWeightFunctionAround(), and modifyNonlocalWeightFunctionAround().
|
inlinevirtual |
Provide the current value of the variable that affects nonlocal interaction (e.g., of damage) This method is used e.g.
by eikonal nonlocal damage models.
Reimplemented in oofem::IDNLMaterial.
Definition at line 314 of file nonlocalmaterialext.h.
Referenced by modifyNonlocalWeightFunction_1D_Around(), and modifyNonlocalWeightFunctionAround().
int oofem::NonlocalMaterialExtensionInterface::giveNumberOfRegions | ( | ) |
Determines the number of material regions of domain.
In the current implementation the region is associated with cross section model.
|
inlinevirtual |
Determines, whether receiver has bounded weighting function (limited support).
Reimplemented in oofem::MDM, oofem::RankineMatNl, oofem::MisesMatNl, oofem::TrabBoneNL3D, oofem::RCSDNLMaterial, oofem::MazarsNLMaterial, oofem::TrabBoneNLEmbed, and oofem::TrabBoneNL.
Definition at line 382 of file nonlocalmaterialext.h.
Referenced by endIPNonlocalAverage(), initializeFrom(), and NonlocalMaterialExtensionInterface().
IRResultType oofem::NonlocalMaterialExtensionInterface::initializeFrom | ( | InputRecord * | ir | ) |
Definition at line 743 of file nonlocalmaterialext.C.
References _IFT_NonlocalMaterialExtensionInterface_averagedquantity, _IFT_NonlocalMaterialExtensionInterface_averagingtype, _IFT_NonlocalMaterialExtensionInterface_beta, _IFT_NonlocalMaterialExtensionInterface_centdiff, _IFT_NonlocalMaterialExtensionInterface_exp, _IFT_NonlocalMaterialExtensionInterface_gridsize, _IFT_NonlocalMaterialExtensionInterface_initdiag, _IFT_NonlocalMaterialExtensionInterface_m, _IFT_NonlocalMaterialExtensionInterface_nonlocalvariation, _IFT_NonlocalMaterialExtensionInterface_order, _IFT_NonlocalMaterialExtensionInterface_permanentNonlocTableFlag, _IFT_NonlocalMaterialExtensionInterface_px, _IFT_NonlocalMaterialExtensionInterface_r, _IFT_NonlocalMaterialExtensionInterface_regionmap, _IFT_NonlocalMaterialExtensionInterface_rf, _IFT_NonlocalMaterialExtensionInterface_scalingtype, _IFT_NonlocalMaterialExtensionInterface_wft, _IFT_NonlocalMaterialExtensionInterface_zeta, averagedVar, averType, AVT_EqStrain, beta, centDiff, cl, cl0, evaluateSupportRadius(), exponent, giveDomain(), oofem::Domain::giveNumberOfRegions(), oofem::IntArray::giveSize(), grid, gridSize, hasBoundedSupport(), oofem::InputRecord::hasField(), initDiag, IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, oofem::IRRT_OK, minDist2, mm, nlvar, NLVT_DistanceBasedExponential, NLVT_DistanceBasedLinear, NLVT_StressBased, OOFEM_ERROR, order, permanentNonlocTableFlag, px, regionMap, Rf, scaling, ST_Standard, suprad, weightFun, WFT_Bell, WFT_UniformOverElement, oofem::IntArray::zero(), and zeta.
Referenced by oofem::TrabBoneNL::initializeFrom(), oofem::TrabBoneNL3D::initializeFrom(), oofem::TrabBoneNLEmbed::initializeFrom(), oofem::RankineMatNl::initializeFrom(), oofem::MisesMatNl::initializeFrom(), oofem::FRCFCMNL::initializeFrom(), oofem::MazarsNLMaterial::initializeFrom(), oofem::IDNLMaterial::initializeFrom(), oofem::RCSDNLMaterial::initializeFrom(), and oofem::MDM::initializeFrom().
|
protected |
Manipulates weight on integration point in the element.
By default is off, keyword 'averagingtype' specifies various methods. For example, a boundary layer method averages strains over the whole element without any radius.
weight | Modifies the weight with the jGp-th item. |
gp | Pointer to the GP owing the PointTable. |
jGp | Pointer to GP in the PointTable. |
Definition at line 923 of file nonlocalmaterialext.C.
References AVERAGING_TYPE, oofem::Material::give(), oofem::Element::giveDefaultIntegrationRulePtr(), oofem::GaussPoint::giveElement(), oofem::Element::giveMaterial(), oofem::IntegrationRule::giveNumberOfIntegrationPoints(), and oofem::Material::hasProperty().
Referenced by buildNonlocalPointTable(), and rebuildNonlocalPointTable().
|
inlineprotected |
Definition at line 447 of file nonlocalmaterialext.h.
Referenced by modifyNonlocalWeightFunctionAround().
|
inlineprotected |
Definition at line 446 of file nonlocalmaterialext.h.
Referenced by modifyNonlocalWeightFunctionAround().
|
virtual |
Determines the maximum value of the nonlocal weight function.
Definition at line 717 of file nonlocalmaterialext.C.
References domain, giveIntegralOfWeightFunction(), and oofem::Domain::giveNumberOfSpatialDimensions().
void oofem::NonlocalMaterialExtensionInterface::modifyNonlocalWeightFunction_1D_Around | ( | GaussPoint * | gp | ) |
Definition at line 428 of file nonlocalmaterialext.C.
References oofem::FloatArray::at(), oofem::Element::computeGlobalCoordinates(), computeModifiedLength(), oofem::Element::computeVolumeAround(), computeWeightFunction(), oofem::GaussPoint::giveElement(), giveIPIntegrationList(), oofem::GaussPoint::giveMaterialStatus(), oofem::GaussPoint::giveNaturalCoordinates(), giveNonlocalMetricModifierAt(), oofem::NonlocalMaterialStatusExtensionInterfaceType, and oofem::NonlocalMaterialStatusExtensionInterface::setIntegrationScale().
Referenced by modifyNonlocalWeightFunctionAround().
void oofem::NonlocalMaterialExtensionInterface::modifyNonlocalWeightFunctionAround | ( | GaussPoint * | gp | ) |
Recompute the nonlocal interaction weights based on the current solution (e.g., on the damage field).
This method is used e.g. by eikonal nonlocal damage models.
Definition at line 294 of file nonlocalmaterialext.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::at(), centDiff, computeDistanceModifier(), oofem::Element::computeGlobalCoordinates(), computeWeightFunction(), dist2FromGridNode(), oofem::GaussPoint::giveElement(), giveIPIntegrationList(), oofem::GaussPoint::giveMaterialStatus(), oofem::GaussPoint::giveNaturalCoordinates(), giveNonlocalMetricModifierAt(), oofem::Grid::givePrescribedField(), oofem::FloatArray::giveSize(), oofem::Grid::giveSolutionValueAt(), oofem::NonlocalMaterialStatusExtensionInterface::giveVolumeAround(), grid, gridSize, initDiag, mapToGridCoord(), mapToGridPoint(), minDist2, modifyNonlocalWeightFunction_1D_Around(), oofem::NonlocalMaterialStatusExtensionInterfaceType, OOFEM_ERROR, order, oofem::NonlocalMaterialStatusExtensionInterface::setIntegrationScale(), oofem::Grid::setMethod(), oofem::Grid::setZeroValues(), suprad, and oofem::Grid::unFreeze().
Referenced by oofem::IDNLMaterial::updateBeforeNonlocAverage().
void oofem::NonlocalMaterialExtensionInterface::rebuildNonlocalPointTable | ( | GaussPoint * | gp, |
IntArray * | contributingElems | ||
) |
Rebuild list of integration points which take part in nonlocal average in given integration point.
if contributingElems param is not NULL, then it is assumed that it contains a complete list of elements contributing to receiver. If equal to NULL existing list is cleared and buildNonlocalPointTable service is invoked.
Definition at line 212 of file nonlocalmaterialext.C.
References applyBarrierConstraints(), oofem::IntArray::at(), buildNonlocalPointTable(), cl, cl0, oofem::Element::computeGlobalCoordinates(), oofem::Element::computeVolumeAround(), computeWeightFunction(), evaluateSupportRadius(), oofem::Element::giveDefaultIntegrationRulePtr(), giveDistanceBasedInteractionRadius(), giveDomain(), oofem::GaussPoint::giveElement(), oofem::Domain::giveElement(), oofem::Element::giveGlobalNumber(), oofem::NonlocalMaterialStatusExtensionInterface::giveIntegrationDomainList(), oofem::GaussPoint::giveMaterialStatus(), oofem::GaussPoint::giveNaturalCoordinates(), oofem::GaussPoint::giveNumber(), oofem::Element::giveRegionNumber(), oofem::IntArray::giveSize(), manipulateWeight(), oofem::localIntegrationRecord::nearGp, nlvar, NLVT_DistanceBasedExponential, NLVT_DistanceBasedLinear, oofem::NonlocalMaterialStatusExtensionInterfaceType, OOFEM_ERROR, regionMap, oofem::NonlocalMaterialStatusExtensionInterface::setIntegrationScale(), suprad, and oofem::localIntegrationRecord::weight.
Referenced by oofem::NonlocalMaterialWTP::fastElementIPNonlocTableUpdater().
void oofem::NonlocalMaterialExtensionInterface::updateDomainBeforeNonlocAverage | ( | TimeStep * | tStep | ) |
Updates data in all integration points before nonlocal average takes place.
It is necessary, mainly due to resulting efficiency, to compute variable(s) which are nonlocally averaged in advance, before average process begins. These variables must be stored in integration point's associated statuses. This function updates the whole problem domain, by updating all integration points values, which take part in nonlocal average process. All elements are updated using Element::updateBeforeNonlocalAverage abstract service, which in turn updates all integration points associated with particular element. The service used to update element integration point depends on analysis type and is specified by element-specific type (like StructuralElement) corresponding to analysis type. This service can be invoked multiple times, but update for specific material is done only once, because last modification time mark is kept.
Definition at line 99 of file nonlocalmaterialext.C.
References giveDomain(), oofem::Domain::giveElements(), oofem::Domain::giveNonlocalUpdateStateCounter(), oofem::TimeStep::giveSolutionStateCounter(), OOFEM_LOG_DEBUG, and oofem::Domain::setNonlocalUpdateStateCounter().
Referenced by oofem::RankineMatNl::computeCumPlasticStrain(), oofem::MisesMatNl::computeCumPlasticStrain(), oofem::TrabBoneNL::computeCumPlastStrain(), oofem::TrabBoneNL3D::computeCumPlastStrain(), oofem::TrabBoneNLEmbed::computeCumPlastStrain(), oofem::MDM::computeDamageTensor(), oofem::MazarsNLMaterial::computeEquivalentStrain(), oofem::IDNLMaterial::computeEquivalentStrain(), oofem::RCSDNLMaterial::giveRealStressVector(), and oofem::MDM::packUnknowns().
|
protected |
Parameter specifying the type of averaged (nonlocal) variable.
Definition at line 211 of file nonlocalmaterialext.h.
Referenced by oofem::IDNLMaterial::computeDamageParam(), giveInputRecord(), initializeFrom(), NonlocalMaterialExtensionInterface(), and oofem::IDNLMaterial::updateBeforeNonlocAverage().
|
protected |
Parameter specifying how the weight function should be adjusted due to damage.
Definition at line 255 of file nonlocalmaterialext.h.
Referenced by computeDistanceModifier(), computeModifiedLength(), giveInputRecord(), initializeFrom(), NonlocalMaterialExtensionInterface(), and oofem::IDNLMaterial::updateBeforeNonlocAverage().
|
protected |
Parameter which multiplied with the interaction radius cl0 gives its minimum allowed value.
It is used when a Stress-based or a Distance-based nonlocal variation is applied
Definition at line 229 of file nonlocalmaterialext.h.
Referenced by oofem::IDNLMaterial::computeStressBasedWeight(), oofem::IDNLMaterial::computeStressBasedWeightForPeriodicCell(), oofem::TrabBoneNL3D::give3dMaterialStiffnessMatrix(), giveDistanceBasedInteractionRadius(), giveInputRecord(), oofem::TrabBoneNL3D::giveRemoteNonlocalStiffnessContribution(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
protected |
Definition at line 189 of file nonlocalmaterialext.h.
Referenced by initializeFrom(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
protected |
Characteristic length of the nonlocal model (its interpretation depends on the type of weight function).
Definition at line 195 of file nonlocalmaterialext.h.
Referenced by buildNonlocalPointTable(), oofem::MisesMatNl::computeDistanceModifier(), computeDistanceModifier(), computeWeightFunction(), evaluateSupportRadius(), giveInputRecord(), giveIntegralOfWeightFunction(), initializeFrom(), NonlocalMaterialExtensionInterface(), and rebuildNonlocalPointTable().
|
protected |
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.
Definition at line 219 of file nonlocalmaterialext.h.
Referenced by giveDistanceBasedInteractionRadius(), initializeFrom(), NonlocalMaterialExtensionInterface(), and rebuildNonlocalPointTable().
|
protected |
Definition at line 172 of file nonlocalmaterialext.h.
Referenced by applyBarrierConstraints(), computeWeightFunction(), giveDistanceBasedInteractionRadius(), maxValueOfWeightFunction(), and NonlocalMaterialExtensionInterface().
|
protected |
Parameter used as an exponent by models with evolving characteristic length.
Definition at line 253 of file nonlocalmaterialext.h.
Referenced by computeDistanceModifier(), giveInputRecord(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
protected |
Definition at line 183 of file nonlocalmaterialext.h.
Referenced by initializeFrom(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
protected |
Grid on which the eikonal equation will be solved (used by eikonal nonlocal models)
Definition at line 182 of file nonlocalmaterialext.h.
Referenced by initializeFrom(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
protected |
Optional parameters setting details of the fast marching method.
Definition at line 187 of file nonlocalmaterialext.h.
Referenced by initializeFrom(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
protected |
Auxiliary matrix to store minimum distances of grid points from Gauss points.
Definition at line 185 of file nonlocalmaterialext.h.
Referenced by initializeFrom(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
protected |
For "undernonlocal" or "overnonlocal" formulation.
Definition at line 201 of file nonlocalmaterialext.h.
Referenced by oofem::RankineMatNl::computeCumPlasticStrain(), oofem::MisesMatNl::computeCumPlasticStrain(), oofem::IDNLMaterial::computeEquivalentStrain(), oofem::MisesMatNl::give1dStressStiffMtrx(), giveInputRecord(), oofem::MisesMatNl::giveLocalNonlocalStiffnessContribution(), oofem::RankineMatNl::giveLocalNonlocalStiffnessContribution(), oofem::RankineMatNl::givePlaneStressStiffMtrx(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
protected |
Parameter specifying the type of nonlocal variation.
Definition at line 223 of file nonlocalmaterialext.h.
Referenced by buildNonlocalPointTable(), oofem::IDNLMaterial::computeEquivalentStrain(), giveDistanceBasedInteractionRadius(), giveInputRecord(), initializeFrom(), NonlocalMaterialExtensionInterface(), and rebuildNonlocalPointTable().
|
protected |
Definition at line 188 of file nonlocalmaterialext.h.
Referenced by initializeFrom(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
protected |
Flag indicating whether to keep nonlocal interaction tables of integration points cached.
Definition at line 176 of file nonlocalmaterialext.h.
Referenced by endIPNonlocalAverage(), giveInputRecord(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
protected |
Parameter specifying the periodic shift in x-direction.
Typically it is zero. If it is set to a positive value, the nonlocal interaction is considered not only if the distance between the receiver and the source is smaller than the interaction radius but also if the source point shifted by -px or +px satisfies this condition. This is useful if the mesh represents a periodic cell.
Definition at line 246 of file nonlocalmaterialext.h.
Referenced by buildNonlocalPointTable(), oofem::IDNLMaterial::computeStressBasedWeight(), oofem::IDNLMaterial::computeStressBasedWeightForPeriodicCell(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
protected |
Map indicating regions to skip (region - cross section model).
Definition at line 174 of file nonlocalmaterialext.h.
Referenced by buildNonlocalPointTable(), giveInputRecord(), initializeFrom(), NonlocalMaterialExtensionInterface(), and rebuildNonlocalPointTable().
|
protected |
Final value of interaction radius, for a model with evolving characteristic length.
Definition at line 251 of file nonlocalmaterialext.h.
Referenced by computeDistanceModifier(), giveInputRecord(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
protected |
Parameter specifying the type of scaling of nonlocal weight function.
Definition at line 206 of file nonlocalmaterialext.h.
Referenced by oofem::RankineMatNl::computeCumPlasticStrain(), oofem::MisesMatNl::computeCumPlasticStrain(), oofem::IDNLMaterial::computeEquivalentStrain(), giveInputRecord(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
protected |
Support radius.
Definition at line 198 of file nonlocalmaterialext.h.
Referenced by buildNonlocalPointTable(), computeWeightFunction(), initializeFrom(), modifyNonlocalWeightFunctionAround(), NonlocalMaterialExtensionInterface(), and rebuildNonlocalPointTable().
|
protected |
Parameter specifying the type of nonlocal weight function.
Definition at line 180 of file nonlocalmaterialext.h.
Referenced by computeWeightFunction(), evaluateSupportRadius(), giveInputRecord(), giveIntegralOfWeightFunction(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
protected |
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.
If the Gauss Point's distance from the boundary is larger than this value the interaction radius cl is set to cl0
Definition at line 237 of file nonlocalmaterialext.h.
Referenced by giveDistanceBasedInteractionRadius(), giveInputRecord(), initializeFrom(), and NonlocalMaterialExtensionInterface().