29PLMaterialForce :: PLMaterialForce():
31 mIncrementLength(0.0),
32 mCrackPropThreshold(0.0),
36PLMaterialForce :: ~PLMaterialForce()
101 printf(
"Propagating crack in PLMaterialForce :: propagateInterface.\n");
105 dir.
times(1.0/forceNorm);
108 const double cosAngTol = 1.0/sqrt(2.0);
125 printf(
"//////////////////////////////////////////// Resticting crack propagation direction.\n");
#define REGISTER_PropagationLaw(class)
SpatialLocalizer * giveSpatialLocalizer()
EngngModel * giveEngngModel()
virtual TimeStep * giveCurrentStep(bool force=false)
const TipInfo & giveTipInfo() const
virtual bool propagationIsAllowed() const
double computeNorm() const
double dotProduct(const FloatArray &x) const
Index giveSize() const
Returns the size of receiver.
void add(const FloatArray &src)
std ::unique_ptr< MaterialForceEvaluator > mpMaterialForceEvaluator
const char * giveInputRecordName() const override
double mCrackPropThreshold
virtual Element * giveElementClosestToPoint(FloatArray &lcoords, FloatArray &closest, const FloatArray &coords, int region=0)=0
double distance(const FloatArray &x, const FloatArray &y)
#define _IFT_PLMaterialForce_IncLength
Increment length per time step.
#define _IFT_PLMaterialForce_CrackPropThreshold
Threshold for crack propagation.
#define _IFT_PLMaterialForce_Radius
Radius of region for domain integral.
double mPropagationLength
FloatArray mPropagationDir