43#define _IFT_FRCFCM_Name "frcfcm"
44#define _IFT_FRCFCM_Vf "vf"
45#define _IFT_FRCFCM_Lf "lf"
46#define _IFT_FRCFCM_Df "df"
47#define _IFT_FRCFCM_Ef "ef"
48#define _IFT_FRCFCM_nuf "nuf"
49#define _IFT_FRCFCM_Gfib "gfib"
50#define _IFT_FRCFCM_kfib "kfib"
51#define _IFT_FRCFCM_tau_0 "tau_0"
52#define _IFT_FRCFCM_b0 "b0"
53#define _IFT_FRCFCM_b1 "b1"
54#define _IFT_FRCFCM_b2 "b2"
55#define _IFT_FRCFCM_b3 "b3"
56#define _IFT_FRCFCM_f "f"
57#define _IFT_FRCFCM_M "m"
58#define _IFT_FRCFCM_orientationVector "fibreorientationvector"
59#define _IFT_FRCFCM_fssType "fsstype"
60#define _IFT_FRCFCM_fDamType "fdamtype"
61#define _IFT_FRCFCM_fiberType "fibertype"
62#define _IFT_FRCFCM_gammaCrack "gammacrack"
63#define _IFT_FRCFCM_computeCrackSpacing "computecrackspacing"
64#define _IFT_FRCFCM_fibreActivationOpening "fibreactivationopening"
65#define _IFT_FRCFCM_dw0 "dw0"
66#define _IFT_FRCFCM_dw1 "dw1"
117 std::unique_ptr<MaterialStatus>
CreateStatus(
GaussPoint *gp)
const override {
return std::make_unique<FRCFCMStatus>(gp); }
ConcreteFCMStatus(GaussPoint *g)
ConcreteFCM(int n, Domain *d)
IsotropicLinearElasticMaterial linearElasticMaterial
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
void initTempStatus() override
void saveContext(DataStream &stream, ContextMode mode) override
void setTempDamage(double newDamage)
Sets the temp damage level to given value.
double giveTempDamage() const
Returns the temporary damage level.
FRCFCMStatus(GaussPoint *g)
void updateYourself(TimeStep *tStep) override
double damage
Damage level of material.
const char * giveClassName() const override
double giveDamage() const
Returns the last equilibrated damage level.
void restoreContext(DataStream &stream, ContextMode mode) override
double tempDamage
Non-equilibrated damage level of material.
FiberDamageType
Type of fibre damage which is triggered by crack shearing strain = w / u.
FiberDamageType fiberDamageType
virtual double computeFiberBond(double w) const
evaluates the fiber bond if w > w*
double computeOverallElasticStiffness(GaussPoint *gp, TimeStep *tStep) const override
returns overall Young's modulus
double f
snubbing factor "f"
virtual double computeStressInFibersInCracked(GaussPoint *gp, TimeStep *tStep, double eps_cr, int i) const
compute the nominal stress in fibers in the i-th crack
virtual double estimateD2ModulusForCrack(GaussPoint *gp, TimeStep *tStep, int icrack) const
estimate shear modulus for a given crack plane (1, 2, 3). Uses equilibrated value of damage.
double kfib
fiber cross-sectional shear factor
double tau_0
fiber shear strength at zero slip
void initializeFrom(InputRecord &ir) override
double gammaCrackFail
shear strain at full fibers rupture
double computeOverallElasticShearModulus(GaussPoint *gp, TimeStep *tStep) const override
returns overall shear modulus
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
double b0
micromechanical parameter for fiber shear according to Sajdlova
double b1
micromechanical parameter for fiber shear according to Kabele
virtual double computeTempDamage(GaussPoint *gp, TimeStep *tStep) const
evaluates temporary value of damage caused by fibre shearing
double g
auxiliary parameter computed from snubbing factor "f"
void checkSnapBack(GaussPoint *gp, TimeStep *tStep, int crack) const override
checks possible snap-back
double Ef
fiber Young's modulus
double giveNormalCrackingStress(GaussPoint *gp, TimeStep *tStep, double eps_cr, int i) const override
computes normal stress associated with i-th crack direction
double w_star
transitional opening
FiberShearStrengthType fiberShearStrengthType
double computeD2ModulusForCrack(GaussPoint *gp, TimeStep *tStep, int icrack) const override
shear modulus for a given crack plane (1, 2, 3)
double computeEffectiveShearModulus(GaussPoint *gp, TimeStep *tStep, int i) const override
returns Geff which is necessary in the global stiffness matrix
double maxShearStress(GaussPoint *gp, TimeStep *tStep, int i) const override
computes the maximum value of the shear stress; if the shear stress exceeds this value,...
double computeShearStiffnessRedistributionFactor(GaussPoint *gp, TimeStep *tStep, int ithCrackPlane, int jthCrackDirection) const override
function calculating ratio used to split shear slips on two crack planes
virtual double computeCrackSpacing()
computes crack spacing based on composition of the fibre composite
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 ...
virtual double computeCrackFibreAngle(GaussPoint *gp, int i) const
compute the angle between the fibre and i-th crack normal
double minDamageOpening
minimum opening at which damage can start
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
double giveCrackingModulus(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep, int i) const override
returns stiffness in the normal direction of the i-th crack
double fibreActivationOpening
crack opening at which the crossing fibers begin to be activated
FloatArray orientationVector
orientation of fibres
double Gfib
fiber shear modulus
double Vf
volume fraction of fibers