|
OOFEM 3.0
|
#include <nonlocalmaterialext.h>
Public Member Functions | |
| NonlocalMaterialExtensionInterface (Domain *d) | |
| virtual | ~NonlocalMaterialExtensionInterface () |
| Destructor. | |
| void | updateDomainBeforeNonlocAverage (TimeStep *tStep) const |
| void | buildNonlocalPointTable (GaussPoint *gp) const |
| void | rebuildNonlocalPointTable (GaussPoint *gp, IntArray *contributingElems) const |
| void | modifyNonlocalWeightFunctionAround (GaussPoint *gp) const |
| void | modifyNonlocalWeightFunction_1D_Around (GaussPoint *gp) const |
| virtual double | giveNonlocalMetricModifierAt (GaussPoint *gp) const |
| double | computeDistanceModifier (double cl, double damage) const |
| double | computeModifiedLength (double length, double dam1, double dam2) const |
| std ::vector< localIntegrationRecord > * | giveIPIntegrationList (GaussPoint *gp) const |
| virtual double | computeWeightFunction (const double cl, const double distance) const |
| virtual double | computeWeightFunction (const double cl, const FloatArray &src, const FloatArray &coord) const |
| double | giveIntegralOfWeightFunction (double cl, const int spatial_dimension) const |
| virtual double | maxValueOfWeightFunction () |
| Determines the maximum value of the nonlocal weight function. | |
| int | giveNumberOfRegions () const |
| virtual int | hasBoundedSupport () const |
| virtual double | evaluateSupportRadius (double cl) const |
| Domain * | giveDomain () |
| Returns reference to domain. | |
| void | initializeFrom (InputRecord &ir) |
| void | giveInputRecord (DynamicInputRecord &input) |
| void | endIPNonlocalAverage (GaussPoint *gp) const |
| Public Member Functions inherited from oofem::Interface | |
| Interface () | |
| Constructor. | |
| virtual | ~Interface () |
| virtual const char * | giveClassName () const =0 |
Protected Types | |
| 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) const |
| void | manipulateWeight (double &weight, GaussPoint *gp, GaussPoint *jGp) const |
| double | giveDistanceBasedInteractionRadius (const FloatArray &gpCoords) const |
| int | mapToGridPoint (double x, double x0) const |
| double | mapToGridCoord (double x, double x0) const |
| double | dist2FromGridNode (double x, double y, int j, int i) const |
Protected Attributes | |
| Domain * | domain = nullptr |
| IntArray | regionMap |
| Map indicating regions to skip (region - cross section model). | |
| bool | permanentNonlocTableFlag = false |
| Flag indicating whether to keep nonlocal interaction tables of integration points cached. | |
| WeightFunctionType | weightFun |
| Parameter specifying the type of nonlocal weight function. | |
| int | gridSize = 0 |
| Grid on which the eikonal equation will be solved (used by eikonal nonlocal models). | |
| double | initDiag = 0. |
| Optional parameters setting details of the fast marching method. | |
| int | order = 0 |
| int | centDiff = 0 |
| double | cl = 0. |
| double | suprad = 0. |
| Support radius. | |
| double | mm = 0. |
| For "undernonlocal" or "overnonlocal" formulation. | |
| ScalingType | scaling |
| Parameter specifying the type of scaling of nonlocal weight function. | |
| AveragedVarType | averagedVar |
| Parameter specifying the type of averaged (nonlocal) variable. | |
| double | cl0 = 0. |
| NlVariationType | nlvar |
| Parameter specifying the type of nonlocal variation. | |
| double | beta = 0. |
| double | zeta = 0. |
| double | px = 0. |
| double | Rf = 0. |
| Final value of interaction radius, for a model with evolving characteristic length. | |
| double | exponent = 0. |
| Parameter used as an exponent by models with evolving characteristic length. | |
| int | averType = 0 |
| Parameter specifying how the weight function should be adjusted due to damage. | |
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 163 of file nonlocalmaterialext.h.
|
protected |
Type characterizing the averaged (nonlocal) variable.
| Enumerator | |
|---|---|
| AVT_Unknown | |
| AVT_EqStrain | |
| AVT_Compliance | |
| AVT_Damage | |
Definition at line 217 of file nonlocalmaterialext.h.
|
protected |
Type characterizing the Nonlocal variation.
| Enumerator | |
|---|---|
| NLVT_Standard | |
| NLVT_DistanceBasedLinear | |
| NLVT_StressBased | |
| NLVT_DistanceBasedExponential | |
Definition at line 229 of file nonlocalmaterialext.h.
|
protected |
Type characterizing the scaling approach.
| Enumerator | |
|---|---|
| ST_Unknown | |
| ST_Standard | |
| ST_Noscaling | |
| ST_Borino | |
Definition at line 212 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 67 of file nonlocalmaterialext.C.
References averagedVar, averType, AVT_Unknown, beta, centDiff, cl, cl0, domain, exponent, oofem::Domain::giveNumberOfRegions(), gridSize, hasBoundedSupport(), initDiag, oofem::Interface::Interface(), mm, nlvar, NLVT_Standard, order, permanentNonlocTableFlag, px, regionMap, Rf, scaling, ST_Unknown, suprad, weightFun, oofem::WFT_Unknown, and zeta.
Referenced by rebuildNonlocalPointTable(), and oofem::StructuralNonlocalMaterialExtensionInterface::StructuralNonlocalMaterialExtensionInterface().
|
inlinevirtual |
Destructor.
Definition at line 276 of file nonlocalmaterialext.h.
|
protected |
Definition at line 925 of file nonlocalmaterialext.C.
Referenced by buildNonlocalPointTable(), and rebuildNonlocalPointTable().
| void oofem::NonlocalMaterialExtensionInterface::buildNonlocalPointTable | ( | GaussPoint * | gp | ) | const |
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 134 of file nonlocalmaterialext.C.
References applyBarrierConstraints(), oofem::FloatArray::at(), cl, oofem::Element::computeGlobalCoordinates(), oofem::Element::computeVolumeAround(), computeWeightFunction(), domain, evaluateSupportRadius(), oofem::Element::giveDefaultIntegrationRulePtr(), giveDistanceBasedInteractionRadius(), oofem::GaussPoint::giveElement(), oofem::NonlocalMaterialStatusExtensionInterface::giveIntegrationDomainList(), oofem::GaussPoint::giveMaterialStatus(), oofem::GaussPoint::giveNaturalCoordinates(), oofem::FEMComponent::giveNumber(), oofem::Element::giveRegionNumber(), 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::MisesMatNl::computeCumPlasticStrain(), oofem::RankineMatNl::computeCumPlasticStrain(), oofem::TrabBoneNL3D::computeCumPlastStrain(), oofem::TrabBoneNL::computeCumPlastStrain(), oofem::MDM::computeDamageTensor(), oofem::IDNLMaterial::computeEquivalentStrain(), oofem::MazarsNLMaterial::computeEquivalentStrain(), oofem::FRCFCMNL::computeNonlocalStressInFibers(), oofem::FRCFCMNL::computeNonlocalStressInFibersInUncracked(), giveIPIntegrationList(), oofem::RCSDNLMaterial::giveRealStressVector(), oofem::IDNLMaterial::NonlocalMaterialStiffnessInterface_giveIntegrationDomainList(), oofem::MisesMatNl::NonlocalMaterialStiffnessInterface_giveIntegrationDomainList(), oofem::RankineMatNl::NonlocalMaterialStiffnessInterface_giveIntegrationDomainList(), oofem::TrabBoneNL3D::NonlocalMaterialStiffnessInterface_giveIntegrationDomainList(), oofem::IDNLMaterial::packUnknowns(), oofem::MazarsNLMaterial::packUnknowns(), oofem::MDM::packUnknowns(), oofem::MisesMatNl::packUnknowns(), oofem::RankineMatNl::packUnknowns(), oofem::RCSDNLMaterial::packUnknowns(), oofem::TrabBoneNL3D::packUnknowns(), and rebuildNonlocalPointTable().
| double oofem::NonlocalMaterialExtensionInterface::computeDistanceModifier | ( | double | cl, |
| double | damage ) const |
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 568 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 ) const |
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 557 of file nonlocalmaterialext.C.
References averType, cl, computeDistanceModifier(), and length().
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 623 of file nonlocalmaterialext.C.
References cl, oofem::distance(), domain, giveIntegralOfWeightFunction(), OOFEM_WARNING, oofem::sum(), suprad, weightFun, oofem::WFT_Bell, oofem::WFT_Gauss, oofem::WFT_Green, oofem::WFT_Green_21, oofem::WFT_Uniform, and oofem::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::MazarsNLMaterial, oofem::MDM, oofem::RCSDNLMaterial, oofem::TrabBoneNL3D, oofem::TrabBoneNL, and oofem::TrabBoneNLEmbed.
Definition at line 680 of file nonlocalmaterialext.C.
References cl, computeWeightFunction(), and oofem::distance().
|
inlineprotected |
Definition at line 460 of file nonlocalmaterialext.h.
Referenced by modifyNonlocalWeightFunctionAround().
| void oofem::NonlocalMaterialExtensionInterface::endIPNonlocalAverage | ( | GaussPoint * | gp | ) | const |
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 608 of file nonlocalmaterialext.C.
References oofem::NonlocalMaterialStatusExtensionInterface::clear(), oofem::GaussPoint::giveMaterialStatus(), hasBoundedSupport(), oofem::NonlocalMaterialStatusExtensionInterfaceType, OOFEM_ERROR, and permanentNonlocTableFlag.
Referenced by oofem::MDM::computeDamageTensor(), oofem::IDNLMaterial::computeEquivalentStrain(), oofem::MazarsNLMaterial::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 747 of file nonlocalmaterialext.C.
References cl, weightFun, oofem::WFT_Bell, oofem::WFT_Gauss, oofem::WFT_Green, oofem::WFT_Green_21, oofem::WFT_Uniform, and oofem::WFT_UniformOverElement.
Referenced by buildNonlocalPointTable(), and initializeFrom().
|
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 954 of file nonlocalmaterialext.C.
References beta, cl0, oofem::distance(), domain, nlvar, NLVT_DistanceBasedExponential, NLVT_DistanceBasedLinear, and zeta.
Referenced by buildNonlocalPointTable(), and rebuildNonlocalPointTable().
|
inline |
Returns reference to domain.
Definition at line 402 of file nonlocalmaterialext.h.
Referenced by rebuildNonlocalPointTable().
| void oofem::NonlocalMaterialExtensionInterface::giveInputRecord | ( | DynamicInputRecord & | input | ) |
Stores receiver in an input record
| input | Input record to be filled in. |
Definition at line 875 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, exponent, mm, nlvar, NLVT_DistanceBasedExponential, NLVT_DistanceBasedLinear, NLVT_StressBased, permanentNonlocTableFlag, regionMap, Rf, scaling, oofem::DynamicInputRecord::setField(), weightFun, and zeta.
| double oofem::NonlocalMaterialExtensionInterface::giveIntegralOfWeightFunction | ( | double | cl, |
| const int | spatial_dimension ) const |
Provides the integral of the weight function over the contributing volume in 1, 2 or 3D.
Definition at line 686 of file nonlocalmaterialext.C.
References cl, M_PI, weightFun, oofem::WFT_Bell, oofem::WFT_Gauss, oofem::WFT_Green, oofem::WFT_Green_21, and oofem::WFT_Uniform.
Referenced by computeWeightFunction(), and maxValueOfWeightFunction().
| std::vector< localIntegrationRecord > * oofem::NonlocalMaterialExtensionInterface::giveIPIntegrationList | ( | GaussPoint * | gp | ) | const |
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 590 of file nonlocalmaterialext.C.
References buildNonlocalPointTable(), oofem::NonlocalMaterialStatusExtensionInterface::giveIntegrationDomainList(), oofem::GaussPoint::giveMaterialStatus(), oofem::NonlocalMaterialStatusExtensionInterfaceType, and OOFEM_ERROR.
Referenced by oofem::MisesMatNl::computeCumPlasticStrain(), oofem::RankineMatNl::computeCumPlasticStrain(), oofem::MDM::computeDamageTensor(), oofem::IDNLMaterial::computeEquivalentStrain(), oofem::MazarsNLMaterial::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, and oofem::RankineMatNl.
Definition at line 326 of file nonlocalmaterialext.h.
Referenced by modifyNonlocalWeightFunction_1D_Around(), and modifyNonlocalWeightFunctionAround().
| int oofem::NonlocalMaterialExtensionInterface::giveNumberOfRegions | ( | ) | const |
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::MazarsNLMaterial, oofem::MDM, oofem::MisesMatNl, oofem::RankineMatNl, oofem::RCSDNLMaterial, oofem::TrabBoneNL3D, oofem::TrabBoneNL, and oofem::TrabBoneNLEmbed.
Definition at line 394 of file nonlocalmaterialext.h.
Referenced by endIPNonlocalAverage(), initializeFrom(), and NonlocalMaterialExtensionInterface().
| void oofem::NonlocalMaterialExtensionInterface::initializeFrom | ( | InputRecord & | ir | ) |
Definition at line 766 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, gridSize, hasBoundedSupport(), oofem::InputRecord::hasField(), initDiag, IR_GIVE_FIELD, IR_GIVE_OPTIONAL_FIELD, mm, nlvar, NLVT_DistanceBasedExponential, NLVT_DistanceBasedLinear, NLVT_StressBased, OOFEM_ERROR, order, permanentNonlocTableFlag, px, regionMap, Rf, scaling, ST_Standard, suprad, weightFun, oofem::WFT_Bell, oofem::WFT_UniformOverElement, and zeta.
|
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 940 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 459 of file nonlocalmaterialext.h.
References gridSize, and suprad.
Referenced by modifyNonlocalWeightFunctionAround().
|
inlineprotected |
Definition at line 458 of file nonlocalmaterialext.h.
References gridSize, and suprad.
Referenced by modifyNonlocalWeightFunctionAround().
|
virtual |
Determines the maximum value of the nonlocal weight function.
Definition at line 740 of file nonlocalmaterialext.C.
References cl, domain, and giveIntegralOfWeightFunction().
| void oofem::NonlocalMaterialExtensionInterface::modifyNonlocalWeightFunction_1D_Around | ( | GaussPoint * | gp | ) | const |
Definition at line 453 of file nonlocalmaterialext.C.
References oofem::FloatArray::at(), cl, oofem::Element::computeGlobalCoordinates(), computeModifiedLength(), oofem::Element::computeVolumeAround(), computeWeightFunction(), oofem::distance(), 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 | ) | const |
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 314 of file nonlocalmaterialext.C.
References oofem::FloatArray::at(), oofem::FloatMatrix::at(), centDiff, cl, computeDistanceModifier(), oofem::Element::computeGlobalCoordinates(), computeWeightFunction(), dist2FromGridNode(), oofem::distance(), oofem::GaussPoint::giveElement(), giveIPIntegrationList(), oofem::GaussPoint::giveMaterialStatus(), oofem::GaussPoint::giveNaturalCoordinates(), giveNonlocalMetricModifierAt(), oofem::Grid::givePrescribedField(), oofem::FloatArray::giveSize(), oofem::Grid::giveSolutionValueAt(), oofem::NonlocalMaterialStatusExtensionInterface::giveVolumeAround(), gridSize, initDiag, mapToGridCoord(), mapToGridPoint(), 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(), and oofem::RankineMatNl::updateBeforeNonlocAverage().
| void oofem::NonlocalMaterialExtensionInterface::rebuildNonlocalPointTable | ( | GaussPoint * | gp, |
| IntArray * | contributingElems ) const |
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 232 of file nonlocalmaterialext.C.
References applyBarrierConstraints(), oofem::IntArray::at(), buildNonlocalPointTable(), cl, cl0, oofem::Element::computeGlobalCoordinates(), oofem::Element::computeVolumeAround(), computeWeightFunction(), oofem::Element::giveDefaultIntegrationRulePtr(), giveDistanceBasedInteractionRadius(), giveDomain(), oofem::GaussPoint::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, NonlocalMaterialExtensionInterface(), oofem::NonlocalMaterialStatusExtensionInterfaceType, OOFEM_ERROR, regionMap, oofem::NonlocalMaterialStatusExtensionInterface::setIntegrationScale(), and oofem::localIntegrationRecord::weight.
Referenced by oofem::NonlocalMaterialWTP::fastElementIPNonlocTableUpdater().
| void oofem::NonlocalMaterialExtensionInterface::updateDomainBeforeNonlocAverage | ( | TimeStep * | tStep | ) | const |
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 106 of file nonlocalmaterialext.C.
References domain, oofem::Domain::giveElements(), oofem::Domain::giveNonlocalUpdateStateCounter(), oofem::TimeStep::giveSolutionStateCounter(), OOFEM_LOG_DEBUG, and oofem::Domain::setNonlocalUpdateStateCounter().
Referenced by oofem::MisesMatNl::computeCumPlasticStrain(), oofem::RankineMatNl::computeCumPlasticStrain(), oofem::TrabBoneNL3D::computeCumPlastStrain(), oofem::TrabBoneNL::computeCumPlastStrain(), oofem::MDM::computeDamageTensor(), oofem::IDNLMaterial::computeEquivalentStrain(), oofem::MazarsNLMaterial::computeEquivalentStrain(), oofem::RCSDNLMaterial::giveRealStressVector(), oofem::IDNLMaterial::packUnknowns(), oofem::MazarsNLMaterial::packUnknowns(), oofem::MDM::packUnknowns(), oofem::MisesMatNl::packUnknowns(), oofem::RankineMatNl::packUnknowns(), oofem::RCSDNLMaterial::packUnknowns(), and oofem::TrabBoneNL3D::packUnknowns().
|
protected |
Parameter specifying the type of averaged (nonlocal) variable.
Definition at line 219 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 263 of file nonlocalmaterialext.h.
Referenced by computeDistanceModifier(), computeModifiedLength(), giveInputRecord(), initializeFrom(), NonlocalMaterialExtensionInterface(), oofem::IDNLMaterial::updateBeforeNonlocAverage(), and oofem::RankineMatNl::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 237 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 197 of file nonlocalmaterialext.h.
Referenced by initializeFrom(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
mutableprotected |
Characteristic length of the nonlocal model (its interpretation depends on the type of weight function).
Definition at line 203 of file nonlocalmaterialext.h.
Referenced by applyBarrierConstraints(), buildNonlocalPointTable(), oofem::MisesMatNl::computeDistanceModifier(), computeDistanceModifier(), oofem::IDNLMaterial::computeEquivalentStrain(), computeModifiedLength(), oofem::IDNLMaterial::computeStressBasedWeight(), oofem::IDNLMaterial::computeStressBasedWeightForPeriodicCell(), computeWeightFunction(), computeWeightFunction(), evaluateSupportRadius(), giveIntegralOfWeightFunction(), initializeFrom(), maxValueOfWeightFunction(), modifyNonlocalWeightFunction_1D_Around(), oofem::MisesMatNl::modifyNonlocalWeightFunctionAround(), modifyNonlocalWeightFunctionAround(), 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 227 of file nonlocalmaterialext.h.
Referenced by giveDistanceBasedInteractionRadius(), initializeFrom(), NonlocalMaterialExtensionInterface(), and rebuildNonlocalPointTable().
|
protected |
Definition at line 185 of file nonlocalmaterialext.h.
Referenced by applyBarrierConstraints(), buildNonlocalPointTable(), computeWeightFunction(), giveDistanceBasedInteractionRadius(), maxValueOfWeightFunction(), NonlocalMaterialExtensionInterface(), and updateDomainBeforeNonlocAverage().
|
protected |
Parameter used as an exponent by models with evolving characteristic length.
Definition at line 261 of file nonlocalmaterialext.h.
Referenced by computeDistanceModifier(), giveInputRecord(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
protected |
Grid on which the eikonal equation will be solved (used by eikonal nonlocal models).
Definition at line 193 of file nonlocalmaterialext.h.
Referenced by initializeFrom(), mapToGridCoord(), mapToGridPoint(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
protected |
Optional parameters setting details of the fast marching method.
Definition at line 195 of file nonlocalmaterialext.h.
Referenced by initializeFrom(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
protected |
For "undernonlocal" or "overnonlocal" formulation.
Definition at line 209 of file nonlocalmaterialext.h.
Referenced by oofem::MisesMatNl::computeCumPlasticStrain(), oofem::RankineMatNl::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 231 of file nonlocalmaterialext.h.
Referenced by buildNonlocalPointTable(), oofem::IDNLMaterial::computeEquivalentStrain(), giveDistanceBasedInteractionRadius(), giveInputRecord(), initializeFrom(), NonlocalMaterialExtensionInterface(), and rebuildNonlocalPointTable().
|
protected |
Definition at line 196 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 189 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 254 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 187 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 259 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 214 of file nonlocalmaterialext.h.
Referenced by oofem::MisesMatNl::computeCumPlasticStrain(), oofem::RankineMatNl::computeCumPlasticStrain(), oofem::IDNLMaterial::computeEquivalentStrain(), giveInputRecord(), initializeFrom(), and NonlocalMaterialExtensionInterface().
|
mutableprotected |
Support radius.
Definition at line 206 of file nonlocalmaterialext.h.
Referenced by buildNonlocalPointTable(), computeWeightFunction(), initializeFrom(), mapToGridCoord(), mapToGridPoint(), modifyNonlocalWeightFunctionAround(), and NonlocalMaterialExtensionInterface().
|
protected |
Parameter specifying the type of nonlocal weight function.
Definition at line 191 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 245 of file nonlocalmaterialext.h.
Referenced by giveDistanceBasedInteractionRadius(), giveInputRecord(), initializeFrom(), and NonlocalMaterialExtensionInterface().