OOFEM 3.0
Loading...
Searching...
No Matches
fcm.h
Go to the documentation of this file.
1/*
2 *
3 * ##### ##### ###### ###### ### ###
4 * ## ## ## ## ## ## ## ### ##
5 * ## ## ## ## #### #### ## # ##
6 * ## ## ## ## ## ## ## ##
7 * ## ## ## ## ## ## ## ##
8 * ##### ##### ## ###### ## ##
9 *
10 *
11 * OOFEM : Object Oriented Finite Element Code
12 *
13 * Copyright (C) 1993 - 2025 Borek Patzak
14 *
15 *
16 *
17 * Czech Technical University, Faculty of Civil Engineering,
18 * Department of Structural Mechanics, 166 29 Prague, Czech Republic
19 *
20 * This library is free software; you can redistribute it and/or
21 * modify it under the terms of the GNU Lesser General Public
22 * License as published by the Free Software Foundation; either
23 * version 2.1 of the License, or (at your option) any later version.
24 *
25 * This program is distributed in the hope that it will be useful,
26 * but WITHOUT ANY WARRANTY; without even the implied warranty of
27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
28 * Lesser General Public License for more details.
29 *
30 * You should have received a copy of the GNU Lesser General Public
31 * License along with this library; if not, write to the Free Software
32 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
33 */
34
35#ifndef fcm_h
36#define fcm_h
37
38#include "material.h"
40#include "structuralmaterial.h"
41#include "structuralms.h"
42#include "intarray.h"
43
45
46#define _IFT_FCM_nAllowedCracks "ncracks"
47#define _IFT_FCM_crackSpacing "crackspacing"
48#define _IFT_FCM_multipleCrackShear "multiplecrackshear"
49#define _IFT_FCM_ecsm "ecsm"
50#define _IFT_FCM_shearCoeffNumer "shearcoeffnumer"
51#define _IFT_FCM_normalCoeffNumer "normalcoeffnumer"
53
54namespace oofem {
55// crack statuses
56#define pscm_NONE 0
57#define pscm_JUST_INIT 1
58#define pscm_SOFTENING 2
59#define pscm_UNLO_RELO 3
60#define pscm_CLOSED 4
61
62#define fcm_SMALL_STRAIN 1.e-12
63#define fcm_BIGNUMBER 1.e6
64#define fcm_TOLERANCE 1.e-6
65#define fcm_THRESHOLD_CRACK_STRAIN 1.e-8
66
67
72{
73protected:
84
93
95 int nMaxCracks = 0;
96
97public:
99
100 void printOutputAt(FILE *file, TimeStep *tStep) const override;
102 virtual int giveNumberOfCracks() const;
104 virtual int giveNumberOfTempCracks() const;
105
109 double giveMaxCrackStrain(int icrack) { return maxCrackStrains.at(icrack); }
111 void setMaxCrackStrain(int icrack, double val) { maxCrackStrains.at(icrack) = val; }
112
114 double giveTempMaxCrackStrain(int icrack) { return tempMaxCrackStrains.at(icrack); }
116 void setTempMaxCrackStrain(int icrack, double val) { tempMaxCrackStrains.at(icrack) = val; }
117
121 int giveTempCrackStatus(int icrack) const { return tempCrackStatuses.at(icrack); }
123 void setTempCrackStatus(int icrack, int val) { tempCrackStatuses.at(icrack) = val; }
125 int giveCrackStatus(int icrack) const { return crackStatuses.at(icrack); }
126
132 double giveCrackStrain(int icrack) const { return crackStrainVector.at(icrack); }
134 double giveTempCrackStrain(int icrack) const { return tempCrackStrainVector.at(icrack); }
140 void setTempCrackStrain(int icrack, double val) { tempCrackStrainVector.at(icrack) = val; }
151
160
162 double giveCharLength(int icrack) const {
163 if ( icrack ) {
164 return charLengths.at(icrack);
165 } else {
166 return 0.0;
167 }
168 }
169
170 void setCharLength(int icrack, double val) { charLengths.at(icrack) = val; }
176 void setCrackDirs(FloatMatrix a) { crackDirs = std :: move(a); }
178 virtual int giveMaxNumberOfCracks(GaussPoint *gp);
179
180 const char *giveClassName() const override { return "FCMMaterialStatus"; }
181
182 void initTempStatus() override;
183 void updateYourself(TimeStep *tStep) override;
184
185 void saveContext(DataStream &stream, ContextMode mode) override;
186 void restoreContext(DataStream &stream, ContextMode mode) override;
187};
188
197{
198protected:
200
201public:
202 FCMMaterial(int n, Domain *d);
203
204 bool hasMaterialModeCapability(MaterialMode mode) const override;
205
206 const char *giveClassName() const override { return "FCMMaterial"; }
207
208 void initializeFrom(InputRecord &ir) override;
209
210 double give(int aProperty, GaussPoint *gp) const override;
211
212 FloatMatrixF<6,6> give3dMaterialStiffnessMatrix(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override;
213
214 FloatMatrixF<3,3> givePlaneStressStiffMtrx(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override;
215
216 FloatMatrixF<4,4> givePlaneStrainStiffMtrx(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override;
217
219 const FloatArray &reducedStrain, TimeStep *tStep) const override;
220
221 virtual void initializeCrack(GaussPoint *gp, TimeStep *tStep, FloatMatrix &base, int nCrack) const;
222
224 {
225 FloatArray answer;
226 const_cast<FCMMaterial*>(this)->giveRealStressVector(answer, gp, strain, tStep);
227 return answer;
228 }
230 {
231 FloatArray answer;
232 const_cast<FCMMaterial*>(this)->giveRealStressVector(answer, gp, strain, tStep);
233 return answer;
234 }
236 {
237 FloatArray answer;
238 const_cast<FCMMaterial*>(this)->giveRealStressVector(answer, gp, strain, tStep);
239 return answer;
240 }
242 {
243 FloatArray answer;
244 const_cast<FCMMaterial*>(this)->giveRealStressVector(answer, gp, strain, tStep);
245 return answer;
246 }
248 {
249 FloatArray answer;
250 const_cast<FCMMaterial*>(this)->giveRealStressVector(answer, gp, strain, tStep);
251 return answer;
252 }
254 {
255 FloatArray answer;
256 const_cast<FCMMaterial*>(this)->giveRealStressVector(answer, gp, strain, tStep);
257 return answer;
258 }
259
260 int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override;
261
263 virtual double computeNormalCrackOpening(GaussPoint *gp, int i) const;
265 virtual double computeMaxNormalCrackOpening(GaussPoint *gp, TimeStep *tStep, int i) const;
266
268 virtual double computeShearSlipOnCrack(GaussPoint *gp, TimeStep *tStep, int i) const;
269
270 std::unique_ptr<MaterialStatus> CreateStatus(GaussPoint *gp) const override { return std::make_unique<FCMMaterialStatus>(gp); }
271
272protected:
273
276
279
282
284
286 virtual double giveTensileStrength(GaussPoint *gp, TimeStep *tStep) const = 0;
287
289 virtual void checkSnapBack(GaussPoint *gp, TimeStep *tStep, int crack) const = 0;
290
292 virtual void updateCrackStatus(GaussPoint *gp) const;
293
295 virtual double giveNormalCrackingStress(GaussPoint *gp, TimeStep *tStep, double eps_cr, int i) const = 0;
296
298 virtual double giveCharacteristicElementLength(GaussPoint *gp, const FloatArray &crackPlaneNormal) const;
299
301 virtual double giveCrackingModulus(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep, int i) const = 0;
302
304 virtual double giveCrackingModulusInTension(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep, int i) const = 0;
305
307 virtual double computeEffectiveShearModulus(GaussPoint *gp, TimeStep *tStep, int i) const = 0;
308
310 virtual double computeTotalD2Modulus(GaussPoint *gp, TimeStep *tStep, int i) const;
311
313 virtual double computeNumerD2Modulus(GaussPoint *gp, TimeStep *tStep, int i) const;
314
316 virtual double computeD2ModulusForCrack(GaussPoint *gp, TimeStep *tStep, int icrack) const = 0;
317
319 virtual double computeNumerD2ModulusForCrack(GaussPoint *gp, TimeStep *tStep, int icrack) const = 0;
320
322 virtual double maxShearStress(GaussPoint *gp, TimeStep *tStep, int i) const = 0;
323
325 virtual bool isIntactForShear(GaussPoint *gp, int i) const;
326
328 virtual bool isIntact(GaussPoint *gp, int icrack) const;
329
331 virtual bool isThisShearComponent(GaussPoint *gp, int component) const;
332
334 virtual bool checkStrengthCriterion(FloatMatrix &newBase, const FloatArray &globalStress, GaussPoint *gp, TimeStep *tStep, int nCrack) const;
335
337 virtual bool isStrengthExceeded(const FloatMatrix &base, GaussPoint *gp, TimeStep *tStep, int iCrack, double trialStress) const;
338
340 virtual double computeShearStiffnessRedistributionFactor(GaussPoint *gp, TimeStep *tStep, int ithCrackPlane, int jthCrackDirection) const;
341
344
347
350
351
353 virtual double giveCrackSpacing(void) const;
354
356 virtual double giveNumberOfCracksInDirection(GaussPoint *gp, int iCrack) const;
357
359 virtual double giveNumberOfCracksForShearDirection(GaussPoint *gp, int i) const;
360
361
362 virtual void giveMaterialStiffnessMatrix(FloatMatrix & answer, MatResponseMode,
363 GaussPoint * gp,
364 TimeStep * tStep) const;
365
368 MatResponseMode rMode,
369 GaussPoint *gp, TimeStep *tStep) const;
370
373 MatResponseMode rMode,
374 GaussPoint *gp, TimeStep *tStep) const;
375
377 virtual double computeOverallElasticStiffness(GaussPoint *gp, TimeStep *tStep) const { return linearElasticMaterial.giveYoungsModulus(); }
378
380 virtual double computeOverallElasticShearModulus(GaussPoint *gp, TimeStep *tStep) const { return linearElasticMaterial.giveShearModulus(); }
381
383 virtual double givePoissonsRatio() const { return linearElasticMaterial.givePoissonsRatio(); }
384
385
386
387};
388} // end namespace oofem
389#endif // fcm_h
void setCharLength(int icrack, double val)
sets characteristic length for i-th crack
Definition fcm.h:170
void setTempMaxCrackStrain(int icrack, double val)
sets value of the maximum crack strain for the i-th crack (temporary value)
Definition fcm.h:116
FloatMatrix transMatrix_G2Lstress
transformation matrix converting stress from global to local coordinate system
Definition fcm.h:86
void setL2GStressVectorTransformationMtrx(FloatMatrix t)
sets transformation matrix for stress transformation from local to global coordinate system
Definition fcm.h:148
const FloatMatrix & giveG2LStressVectorTransformationMtrx()
returns transformation matrix for stress transformation from global to local coordinate system
Definition fcm.h:153
const FloatMatrix & giveL2GStrainVectorTransformationMtrx()
sets transformation matrix for stress transformation from global to local coordinate system
Definition fcm.h:159
void setTempNormalCrackStrainVector(FloatArray a)
sets temporary vector of cracking strains (normal components)
Definition fcm.C:2463
FloatArray tempMaxCrackStrains
Definition fcm.h:77
void restoreContext(DataStream &stream, ContextMode mode) override
Definition fcm.C:2585
FloatMatrix transMatrix_L2Gstress
transformation matrix converting stress from local to global coordinate system
Definition fcm.h:90
IntArray crackStatuses
crack statuses (none, just initialized, softening, unload-reload, closed)
Definition fcm.h:75
double giveCharLength(int icrack) const
returns characteristic length associated with i-th crack direction
Definition fcm.h:162
void updateYourself(TimeStep *tStep) override
Definition fcm.C:2492
double giveCrackStrain(int icrack) const
returns i-th component of the crack strain vector (equilibrated)
Definition fcm.h:132
void setMaxCrackStrain(int icrack, double val)
sets value of the maximum crack strain for the i-th crack (equilibrated value)
Definition fcm.h:111
void setCrackStrainVector(FloatArray a)
sets equilibrated vector of cracking strains (max 6 components)
Definition fcm.h:142
FloatArray charLengths
Characteristic lengths computed from the crack orientation and element geometry.
Definition fcm.h:83
FloatMatrix crackDirs
Storing direction of cracks (crack normals) in columwise format.
Definition fcm.h:81
const IntArray & giveTempCrackStatus()
returns vector of temporary crack statuses
Definition fcm.h:119
FloatArray tempCrackStrainVector
Definition fcm.h:79
void setTempCrackStrain(int icrack, double val)
sets temporary value of i-th cracking strain (max 6 components)
Definition fcm.h:140
const FloatMatrix & giveG2LStrainVectorTransformationMtrx()
sets transformation matrix for strain transformation from global to local coordinate system
Definition fcm.h:155
const FloatArray & giveMaxCrackStrainVector()
returns vector with maximum cracking strains (max 3 components)
Definition fcm.h:107
const FloatMatrix & giveL2GStressVectorTransformationMtrx()
sets transformation matrix for stress transformation from local to global coordinate system
Definition fcm.h:157
int giveCrackStatus(int icrack) const
return equilibrated value of status associated with i-th crack direction
Definition fcm.h:125
FloatArray maxCrackStrains
Max. crack strain reached in the entire previous history.
Definition fcm.h:77
void saveContext(DataStream &stream, ContextMode mode) override
Definition fcm.C:2538
virtual int giveNumberOfCracks() const
returns number of cracks from the previous time step (equilibrated value)
Definition fcm.C:2403
double giveTempMaxCrackStrain(int icrack)
returns maximum crack strain for the i-th crack (temporary value)
Definition fcm.h:114
const IntArray & giveCrackStatus()
returns crack statuses
Definition fcm.h:174
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
Definition fcm.C:2356
const char * giveClassName() const override
Definition fcm.h:180
void setG2LStrainVectorTransformationMtrx(FloatMatrix s)
sets transformation matrix for strain transformation from global to local coordinate system
Definition fcm.h:146
void setTempCrackStrainVector(FloatArray a)
sets temporary vector of cracking strains (max 6 components)
Definition fcm.h:136
void setTempCrackStatus(int icrack, int val)
sets temporary value of status for of the i-th crack
Definition fcm.h:123
void setCrackDirs(FloatMatrix a)
sets matrix with crack directions (normal vectors)
Definition fcm.h:176
IntArray tempCrackStatuses
Definition fcm.h:75
virtual int giveNumberOfTempCracks() const
returns temporary number of cracks
Definition fcm.C:2421
int giveTempCrackStatus(int icrack) const
returns temporary value of status associated with i-th crack direction
Definition fcm.h:121
FloatMatrix transMatrix_L2Gstrain
transformation matrix converting strain from local to global coordinate system
Definition fcm.h:92
void setG2LStressVectorTransformationMtrx(FloatMatrix t)
sets transformation matrix for stress transformation from global to local coordinate system
Definition fcm.h:144
FloatArray crackStrainVector
Components of crack strain vector (normal as well as shear).
Definition fcm.h:79
void initTempStatus() override
Definition fcm.C:2477
FCMMaterialStatus(GaussPoint *g)
Definition fcm.C:2300
double giveMaxCrackStrain(int icrack)
returns maximum crack strain for the i-th crack (equilibrated value)
Definition fcm.h:109
double giveTempCrackStrain(int icrack) const
returns i-th component of the crack strain vector (temporary)
Definition fcm.h:134
void setL2GStrainVectorTransformationMtrx(FloatMatrix s)
sets transformation matrix for stress transformation from global to local coordinate system
Definition fcm.h:150
const FloatMatrix & giveCrackDirs()
returns crack directions
Definition fcm.h:172
int nMaxCracks
number of maximum possible cracks (optional parameter)
Definition fcm.h:95
const FloatArray & giveTempCrackStrainVector()
return temporary crack strain vector (max 6 components)
Definition fcm.h:130
virtual int giveMaxNumberOfCracks(GaussPoint *gp)
returns maximum number of cracks associated with current mode
Definition fcm.C:2438
FloatMatrix transMatrix_G2Lstrain
transformation matrix converting strain from global to local coordinate system
Definition fcm.h:88
const FloatArray & giveCrackStrainVector() const
return equilibrated crack strain vector (max 6 components)
Definition fcm.h:128
const char * giveClassName() const override
Definition fcm.h:206
FloatArrayF< 4 > giveRealStressVector_PlaneStrain(const FloatArrayF< 4 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_3d.
Definition fcm.h:229
virtual double computeNormalCrackOpening(GaussPoint *gp, int i) const
uses temporary cracking strain and characteristic length to obtain the crack opening
Definition fcm.C:1130
virtual double givePoissonsRatio() const
returns Poisson's ratio
Definition fcm.h:383
FloatArrayF< 2 > giveRealStressVector_2dBeamLayer(const FloatArrayF< 2 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
Definition fcm.h:247
virtual double giveCharacteristicElementLength(GaussPoint *gp, const FloatArray &crackPlaneNormal) const
returns characteristic element length in given direction
Definition fcm.C:1501
virtual void updateCrackStatus(GaussPoint *gp) const
updates crack statuses
Definition fcm.C:1508
bool multipleCrackShear
if true = takes shear compliance of all cracks, false = only dominant crack contribution,...
Definition fcm.h:281
virtual double giveTensileStrength(GaussPoint *gp, TimeStep *tStep) const =0
comutes tensile strength
FloatArrayF< 1 > giveRealStressVector_1d(const FloatArrayF< 1 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
Definition fcm.h:241
virtual void checkSnapBack(GaussPoint *gp, TimeStep *tStep, int crack) const =0
checks possible snap-back
double shearCoeffNumer
minimum ratio of effective shear modulus vs. shear modulus - just for numerical purpose
Definition fcm.h:346
virtual bool isIntactForShear(GaussPoint *gp, int i) const
returns true for closed or no cracks associated to given shear direction (i = 4, 5,...
Definition fcm.C:1060
int iterLimitGlobal
Definition fcm.h:283
virtual double giveNumberOfCracksForShearDirection(GaussPoint *gp, int i) const
returns number of cracks for given shear direction (i = 4, 5, 6) which is treated as the maximum of t...
Definition fcm.C:2051
virtual void giveMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode, GaussPoint *gp, TimeStep *tStep) const
Definition fcm.C:1643
virtual double computeTotalD2Modulus(GaussPoint *gp, TimeStep *tStep, int i) const
shear modulus for a given shear direction (4, 5, 6)
Definition fcm.C:1856
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
Definition fcm.C:2076
virtual double giveNormalCrackingStress(GaussPoint *gp, TimeStep *tStep, double eps_cr, int i) const =0
computes normal stress associated with i-th crack direction
virtual void giveTotalLocalCrackedStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const
returns local stiffness matrix in the cracks' direction (total according to the material mode)
Definition fcm.C:1593
virtual bool isIntact(GaussPoint *gp, int icrack) const
returns true for closed or no crack (i = 1, 2, 3)
Definition fcm.C:1042
virtual double computeShearSlipOnCrack(GaussPoint *gp, TimeStep *tStep, int i) const
computes total shear slip on a given crack plane (i = 1, 2, 3); the slip is computed from the tempora...
Definition fcm.C:1168
virtual double giveCrackSpacing(void) const
returns either user-provided value of crack spacing or a value computed from composition
Definition fcm.C:2025
virtual double giveNumberOfCracksInDirection(GaussPoint *gp, int iCrack) const
returns number of fictiotious parallel cracks in the direction of i-th crack
Definition fcm.C:2032
FloatMatrixF< 4, 4 > givePlaneStrainStiffMtrx(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override
Definition fcm.C:2289
virtual double computeEffectiveShearModulus(GaussPoint *gp, TimeStep *tStep, int i) const =0
returns Geff which is necessary in the global stiffness matrix
FloatMatrixF< 3, 3 > givePlaneStressStiffMtrx(MatResponseMode mmode, GaussPoint *gp, TimeStep *tStep) const override
Definition fcm.C:2278
double give(int aProperty, GaussPoint *gp) const override
Definition fcm.C:2017
virtual double computeOverallElasticShearModulus(GaussPoint *gp, TimeStep *tStep) const
returns overall shear modulus
Definition fcm.h:380
virtual double computeOverallElasticStiffness(GaussPoint *gp, TimeStep *tStep) const
returns overall Young's modulus
Definition fcm.h:377
double normalCoeffNumer
minimum ratio of effective normal stiffness vs. overall modulus - just for numerical purpose
Definition fcm.h:349
virtual void giveNormalLocalCrackedStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const
returns local stiffness matrix in the cracks' direction (only normal components)
Definition fcm.C:1622
virtual bool checkStrengthCriterion(FloatMatrix &newBase, const FloatArray &globalStress, GaussPoint *gp, TimeStep *tStep, int nCrack) const
checks if the globalStress does not exceed strength in the direction of newBase for n-th crack
Definition fcm.C:1301
virtual double computeMaxNormalCrackOpening(GaussPoint *gp, TimeStep *tStep, int i) const
uses maximum equilibrated cracking strain and characteristic length to obtain the maximum reached cra...
Definition fcm.C:1149
virtual bool isStrengthExceeded(const FloatMatrix &base, GaussPoint *gp, TimeStep *tStep, int iCrack, double trialStress) const
compares trial stress with strength. Returns true if the strength is exceeded. Function oveloaded in ...
Definition fcm.C:1275
FloatArrayF< 5 > giveRealStressVector_PlateLayer(const FloatArrayF< 5 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
Definition fcm.h:253
virtual double maxShearStress(GaussPoint *gp, TimeStep *tStep, int i) const =0
computes the maximum value of the shear stress; if the shear stress exceeds this value,...
virtual double computeNumerD2Modulus(GaussPoint *gp, TimeStep *tStep, int i) const
shear modulus in a STIFFNESS MATRIX for a given shear direction (4, 5, 6)
Definition fcm.C:1927
virtual bool isThisShearComponent(GaussPoint *gp, int component) const
returns true if current component is associated with shear
Definition fcm.C:1094
virtual double computeD2ModulusForCrack(GaussPoint *gp, TimeStep *tStep, int icrack) const =0
shear modulus for a given crack plane (1, 2, 3)
IsotropicLinearElasticMaterial linearElasticMaterial
Definition fcm.h:199
virtual void initializeCrack(GaussPoint *gp, TimeStep *tStep, FloatMatrix &base, int nCrack) const
Definition fcm.C:972
void initializeFrom(InputRecord &ir) override
Definition fcm.C:1974
virtual double computeShearStiffnessRedistributionFactor(GaussPoint *gp, TimeStep *tStep, int ithCrackPlane, int jthCrackDirection) const
function calculating ratio used to split shear slips on two crack planes
Definition fcm.C:1287
ElementCharSizeMethod ecsMethod
Method used for evaluation of characteristic element size.
Definition fcm.h:278
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
Definition fcm.h:270
bool hasMaterialModeCapability(MaterialMode mode) const override
Definition fcm.C:53
virtual double giveCrackingModulus(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep, int i) const =0
returns stiffness in the normal direction of the i-th crack
FloatArrayF< 6 > giveRealStressVector_3d(const FloatArrayF< 6 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector for second Piola-Kirchoff stress.
Definition fcm.h:223
FCMMaterial(int n, Domain *d)
Definition fcm.C:46
virtual double giveCrackingModulusInTension(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep, int i) const =0
returns stiffness in the normal direction of the i-th crack
void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep) const override
Definition fcm.C:60
FloatMatrixF< 6, 6 > give3dMaterialStiffnessMatrix(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
Definition fcm.C:2267
double crackSpacing
value of crack spacing (allows to "have" more parallel cracks in one direction if the element size ex...
Definition fcm.h:343
virtual double computeNumerD2ModulusForCrack(GaussPoint *gp, TimeStep *tStep, int icrack) const =0
shear modulus for numerical purpose (stiffness matrix) for a given crack plane (1,...
FloatArrayF< 3 > giveRealStressVector_PlaneStress(const FloatArrayF< 3 > &strain, GaussPoint *gp, TimeStep *tStep) const override
Default implementation relies on giveRealStressVector_StressControl.
Definition fcm.h:235
int nAllowedCracks
allowed number of cracks (user-defined)
Definition fcm.h:275
GaussPoint * gp
Associated integration point.
StructuralMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralMaterialStatus with IntegrationPoint g.
StructuralMaterial(int n, Domain *d)
long ContextMode
Definition contextmode.h:43

This page is part of the OOFEM-3.0 documentation. Copyright Copyright (C) 1994-2025 Borek Patzak Bořek Patzák
Project e-mail: oofem@fsv.cvut.cz
Generated at for OOFEM by doxygen 1.15.0 written by Dimitri van Heesch, © 1997-2011