35 #ifndef nonlocalmaterialext_h 36 #define nonlocalmaterialext_h 48 #define _IFT_NonlocalMaterialExtensionInterface_regionmap "regionmap" 49 #define _IFT_NonlocalMaterialExtensionInterface_permanentNonlocTableFlag "permanentnonloctableflag" 50 #define _IFT_NonlocalMaterialExtensionInterface_r "r" 51 #define _IFT_NonlocalMaterialExtensionInterface_wft "wft" 52 #define _IFT_NonlocalMaterialExtensionInterface_averagingtype "averagingtype" 53 #define _IFT_NonlocalMaterialExtensionInterface_m "m" 54 #define _IFT_NonlocalMaterialExtensionInterface_scalingtype "scaling" 55 #define _IFT_NonlocalMaterialExtensionInterface_averagedquantity "averagedvar" 56 #define _IFT_NonlocalMaterialExtensionInterface_nonlocalvariation "nlvariation" 57 #define _IFT_NonlocalMaterialExtensionInterface_beta "beta" 58 #define _IFT_NonlocalMaterialExtensionInterface_zeta "zeta" 59 #define _IFT_NonlocalMaterialExtensionInterface_px "px" 60 #define _IFT_NonlocalMaterialExtensionInterface_averagingtype "averagingtype" 61 #define _IFT_NonlocalMaterialExtensionInterface_exp "exp" 62 #define _IFT_NonlocalMaterialExtensionInterface_rf "rf" 63 #define _IFT_NonlocalMaterialExtensionInterface_gridsize "gridsize" 64 #define _IFT_NonlocalMaterialExtensionInterface_initdiag "initdiag" 65 #define _IFT_NonlocalMaterialExtensionInterface_order "order" 66 #define _IFT_NonlocalMaterialExtensionInterface_centdiff "centdiff" 132 void clear() { integrationDomainList.clear(); }
282 void updateDomainBeforeNonlocAverage(
TimeStep *tStep);
307 void modifyNonlocalWeightFunctionAround(
GaussPoint *gp);
308 void modifyNonlocalWeightFunction_1D_Around(
GaussPoint *gp);
321 double computeDistanceModifier(
double damage);
327 double computeModifiedLength(
double length,
double dam1,
double dam2);
336 std :: vector< localIntegrationRecord > *giveIPIntegrationList(
GaussPoint *gp);
345 virtual double computeWeightFunction(
double distance);
361 double giveIntegralOfWeightFunction(
const int spatial_dimension);
365 virtual double maxValueOfWeightFunction();
371 int giveNumberOfRegions();
387 virtual double evaluateSupportRadius();
444 double giveDistanceBasedInteractionRadius(
const FloatArray &gpCoords);
446 int mapToGridPoint(
double x,
double x0) {
return 1 + gridSize + ( int ) ceil(gridSize * ( x - x0 ) / suprad - 0.5); }
447 double mapToGridCoord(
double x,
double x0) {
return 1. + gridSize + gridSize * ( x - x0 ) / suprad; }
448 double dist2FromGridNode(
double x,
double y,
int j,
int i) {
return ( ( x - j ) * ( x - j ) + ( y - i ) * ( y - i ) ); }
451 #endif // nonlocalmaterialext_h WeightFunctionType
Type characterizing the nonlocal weight function.
double beta
Parameter which multiplied with the interaction radius cl0 gives its minimum allowed value...
double exponent
Parameter used as an exponent by models with evolving characteristic length.
ScalingType
Type characterizing the scaling approach.
Abstract base class for all nonlocal materials.
AveragedVarType averagedVar
Parameter specifying the type of averaged (nonlocal) variable.
NlVariationType
Type characterizing the Nonlocal variation.
Domain * giveDomain()
Returns reference to domain.
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.
NlVariationType nlvar
Parameter specifying the type of nonlocal variation.
bool permanentNonlocTableFlag
Flag indicating whether to keep nonlocal interaction tables of integration points cached...
Abstract base class for all nonlocal constitutive model statuses.
ScalingType scaling
Parameter specifying the type of scaling of nonlocal weight function.
std::vector< localIntegrationRecord > * giveIntegrationDomainList()
Returns integration list of receiver.
virtual ~NonlocalMaterialExtensionInterface()
Destructor.
Class implementing an array of integers.
double mapToGridCoord(double x, double x0)
double weight
Corresponding integration weight.
AveragedVarType
Type characterizing the averaged (nonlocal) variable.
virtual int hasBoundedSupport()
Determines, whether receiver has bounded weighting function (limited support).
WeightFunctionType weightFun
Parameter specifying the type of nonlocal weight function.
double zeta
Parameter used when Distance-based nonlocal variation is applied When it is multiplied with the inter...
int averType
Parameter specifying how the weight function should be adjusted due to damage.
FloatMatrix * minDist2
Auxiliary matrix to store minimum distances of grid points from Gauss points.
int gridSize
Grid on which the eikonal equation will be solved (used by eikonal nonlocal models) ...
double cl0
Initial(user defined) characteristic length of the nonlocal model (its interpretation depends on the ...
double px
Parameter specifying the periodic shift in x-direction.
GaussPoint * nearGp
Reference to influencing integration point.
void clear()
clears the integration list of receiver
Class that solves certain problems on a regular 2D grid, consisting of n x m nodes.
std::vector< localIntegrationRecord > integrationDomainList
List containing localIntegrationRecord values.
double dist2FromGridNode(double x, double y, int j, int i)
Class representing vector of real numbers.
Implementation of matrix containing floating point numbers.
IRResultType
Type defining the return values of InputRecord reading operations.
void setIntegrationScale(double val)
Sets associated integration scale.
double mm
For "undernonlocal" or "overnonlocal" formulation.
double initDiag
Optional parameters setting details of the fast marching method.
IntArray regionMap
Map indicating regions to skip (region - cross section model).
double integrationScale
Nonlocal volume around the corresponding integration point.
double giveIntegrationScale()
Returns associated integration scale.
double volumeAround
Local volume around the corresponding integration point.
the oofem namespace is to define a context or scope in which all oofem names are defined.
void setVolumeAround(double val)
Sets associated integration scale.
double cl
Characteristic length of the nonlocal model (its interpretation depends on the type of weight functio...
Class representing integration point in finite element program.
double suprad
Support radius.
Class representing solution step.
double Rf
Final value of interaction radius, for a model with evolving characteristic length.
double giveVolumeAround()
Returns associated volume.
int mapToGridPoint(double x, double x0)
Structure containing reference to integration point and its corresponding nonlocal integration weight...