44#define _IFT_FRCFCMNL_Name "frcfcmnl"
45#define _IFT_FRCFCMNL_participAngle "alpha"
118 std::unique_ptr<MaterialStatus>
CreateStatus(
GaussPoint *gp)
const override {
return std::make_unique<FRCFCMNLStatus>(gp); }
void restoreContext(DataStream &stream, ContextMode mode) override
double giveFiberStressLoc(int icrack) const
LOCAL FIBER STRESSES (from crack opening).
void initTempStatus() override
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
FloatArray fiberStressLoc
bulk stress in fibers - evaluated from crack opening
Interface * giveInterface(InterfaceType) override
double giveTempFiberStressNL(int icrack) const
double giveTempFiberStressLoc(int icrack) const
const char * giveClassName() const override
void saveContext(DataStream &stream, ContextMode mode) override
void setTempFiberStressLoc(int icrack, double newFiberStressLoc)
FloatArray tempFiberStressNL
Non-equilibrated stress (bulk) in fibers.
void updateYourself(TimeStep *tStep) override
FloatArray fiberStressNL
bulk stress in fibers - evaluated from crack opening
void setTempFiberStressNL(int icrack, double newFiberStressNL)
double giveFiberStressNL(int icrack) const
NON-LOCAL FIBER STRESSES (from surrounding cracks).
FloatArray tempFiberStressLoc
Non-equilibrated stress (bulk) in fibers.
FRCFCMNLStatus(GaussPoint *g)
FRCFCMNL(int n, Domain *d)
void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep) const override
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
virtual double computeNonlocalStressInFibers(const FloatArray &crackVector, GaussPoint *gp, TimeStep *tStep) const
computes nonlocal stress in fibers in cracked GP
void giveMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode, GaussPoint *gp, TimeStep *tStep) const override
bool isInElementProjection(GaussPoint *homeGp, GaussPoint *nearGp, int iNlCrack) const
checks if a element center of homeGP is in projection of element containing nearGP
double computeDecreaseInFibreStress(double distance, double delta, double debondedLength) const
compute the the difference in fiber stress in the target (local stress) and receiver (nonlocal stress...
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
double computeDebondedLength(double delta) const
computes debonded length of the fibers from the crack opening. Delta is here one half of the crack op...
void updateBeforeNonlocAverage(const FloatArray &strainVector, GaussPoint *gp, TimeStep *tStep) const override
double participAngle
participation angle. The target gauss point must fall into this angle to contribute to the nonlocal s...
const char * giveClassName() const override
const char * giveInputRecordName() const override
bool isStrengthExceeded(const FloatMatrix &base, GaussPoint *gp, TimeStep *tStep, int iCrack, double trialStress) const override
compares trial stress with strength. Returns true if the strength is exceeded. Function oveloaded in ...
double computeAngleBetweenVectors(const FloatArray &vec1, const FloatArray &vec2) const
computes an angle between two vectors
Interface * giveInterface(InterfaceType it) override
void computeElementCentroid(FloatArray &answer, GaussPoint *gp) const
computes cetroid of a finite element - works only for linear 3 and 4-node elements
void initializeFrom(InputRecord &ir) override
virtual double computeNonlocalStressInFibersInUncracked(GaussPoint *gp, TimeStep *tStep) const
computes nonlocal stress in fibers in uncracked GP
FRCFCMStatus(GaussPoint *g)
StructuralNonlocalMaterialExtensionInterface(Domain *d)
StructuralNonlocalMaterialStatusExtensionInterface()
#define _IFT_FRCFCMNL_Name
double distance(const FloatArray &x, const FloatArray &y)