OOFEM 3.0
Loading...
Searching...
No Matches
rcsde.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// ***************************************************************************************************************
36// *** CLASS ROTATING SMEARED CRACK MODEL WITH TRANSITION TO SCALAR DAMAGE WITH EXPONENTIAL SOFTENING ************
37// ***************************************************************************************************************
38
39#ifndef rcsde_h
40#define rcsde_h
41
42#include "rcm2.h"
43
45
46#define _IFT_RCSDEMaterial_Name "rcsde"
47#define _IFT_RCSDEMaterial_sdtransitioncoeff "sdtransitioncoeff"
49
50namespace oofem {
51#define rcsd_Omega 300
52#define pscm_SDTransitionCoeff 306
53#define RCSDE_DAMAGE_EPS 1.e-4
54
59{
60public:
62
63protected:
65 double damageCoeff = 1., tempDamageCoeff = 1.;
67 double transitionEps = 0., epsF2 = 0.;
69
70public:
72
73 void printOutputAt(FILE *file, TimeStep *tStep) const override;
74
75 double giveTempMaxEquivStrain() const { return tempMaxEquivStrain; }
76 void setTempMaxEquivStrain(double val) { tempMaxEquivStrain = val; }
77 // double giveDamageStiffCoeff () {return damageStiffCoeff;}
78 // void setDamageStiffCoeff (double val) {damageStiffCoeff = val;}
79 double giveTempDamageCoeff() const { return tempDamageCoeff; }
80 void setTempDamageCoeff(double val) { tempDamageCoeff = val; }
81 const FloatMatrix *giveDs0Matrix() { return & Ds0; }
82 void setDs0Matrix(FloatMatrix &mtrx) { Ds0 = mtrx; }
83
84 double giveTransitionEpsCoeff() const { return transitionEps; }
85 void setTransitionEpsCoeff(double val) { transitionEps = val; }
86 double giveEpsF2Coeff() const { return epsF2; }
87 void setEpsF2Coeff(double val) { epsF2 = val; }
88
91
92 // query for non-tem variables (usefull for postprocessing)
93 double giveMaxEquivStrain() const { return maxEquivStrain; }
94 double giveDamageCoeff() const { return damageCoeff; }
95
96 __rcsdModeType giveMode() const { return rcsdMode; }
97
98 const char *giveClassName() const override { return "RCSDEMaterialStatus"; }
99
100 void initTempStatus() override;
101 void updateYourself(TimeStep *tStep) override;
102
103 void saveContext(DataStream &stream, ContextMode mode) override;
104 void restoreContext(DataStream &stream, ContextMode mode) override;
105};
106
107
116{
117protected:
118 double SDTransitionCoeff = 0.;
119
120public:
121 RCSDEMaterial(int n, Domain * d);
122 virtual ~RCSDEMaterial();
123
124 const char *giveInputRecordName() const override { return _IFT_RCSDEMaterial_Name; }
125 const char *giveClassName() const override { return "RCSDEMaterial"; }
126
127 void initializeFrom(InputRecord &ir) override;
128
129 double give(int aProperty, GaussPoint *gp) const override;
130
131 void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &, TimeStep *) const override;
132
133 std::unique_ptr<MaterialStatus> CreateStatus(GaussPoint *gp) const override { return std::make_unique<RCSDEMaterialStatus>(gp); }
134
135protected:
136 double computeCurrEquivStrain(GaussPoint *, const FloatArray &, double, TimeStep *tStep) const;
137 // two functions used to initialize and updating temporary variables in
138 // gp's status. These variables are used to control process, when
139 // we try to find equlibrium state.
140
142 MatResponseMode rMode,
143 GaussPoint *gp, TimeStep *tStep) const override;
144
145 double computeDamageCoeff(double, double, double) const;
146 double giveCrackingModulus(MatResponseMode rMode, GaussPoint *gp,
147 double crackStrain, int i) const override;
148 //double giveShearRetentionFactor(GaussPoint* gp, double eps_cr, int i) override;
149 double giveNormalCrackingStress(GaussPoint *gp, double eps_cr, int i) const override;
150 double giveMinCrackStrainsForFullyOpenCrack(GaussPoint *gp, int i) const override;
151 //void updateStatusForNewCrack(GaussPoint *gp, int, double) override;
152 double computeStrength(GaussPoint *gp, double) const override;
153 int checkSizeLimit(GaussPoint *gp, double) const override;
154};
155} // end namespace oofem
156#endif // rcsde_h
RCM2MaterialStatus(GaussPoint *g)
Definition rcm2.C:977
RCM2Material(int n, Domain *d)
Definition rcm2.C:48
RCSDEMaterialStatus(GaussPoint *g)
Definition rcsde.C:448
void saveContext(DataStream &stream, ContextMode mode) override
Definition rcsde.C:531
double giveTransitionEpsCoeff() const
Definition rcsde.h:84
void restoreContext(DataStream &stream, ContextMode mode) override
Definition rcsde.C:564
double giveMaxEquivStrain() const
Definition rcsde.h:93
const char * giveClassName() const override
Definition rcsde.h:98
void setTempMaxEquivStrain(double val)
Definition rcsde.h:76
void setDs0Matrix(FloatMatrix &mtrx)
Definition rcsde.h:82
void setTransitionEpsCoeff(double val)
Definition rcsde.h:85
double giveEpsF2Coeff() const
Definition rcsde.h:86
double giveTempMaxEquivStrain() const
Definition rcsde.h:75
__rcsdModeType rcsdMode
Definition rcsde.h:68
void setTempDamageCoeff(double val)
Definition rcsde.h:80
double giveDamageCoeff() const
Definition rcsde.h:94
__rcsdModeType giveTempMode() const
Definition rcsde.h:89
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
Definition rcsde.C:454
void setTempMode(__rcsdModeType mode)
Definition rcsde.h:90
void initTempStatus() override
Definition rcsde.C:500
const FloatMatrix * giveDs0Matrix()
Definition rcsde.h:81
void setEpsF2Coeff(double val)
Definition rcsde.h:87
void updateYourself(TimeStep *tStep) override
Definition rcsde.C:515
double giveTempDamageCoeff() const
Definition rcsde.h:79
__rcsdModeType giveMode() const
Definition rcsde.h:96
__rcsdModeType tempRcsdMode
Definition rcsde.h:68
void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &, TimeStep *) const override
Definition rcsde.C:62
double giveCrackingModulus(MatResponseMode rMode, GaussPoint *gp, double crackStrain, int i) const override
Definition rcsde.C:364
int checkSizeLimit(GaussPoint *gp, double) const override
Definition rcsde.C:276
double giveMinCrackStrainsForFullyOpenCrack(GaussPoint *gp, int i) const override
Definition rcsde.C:321
double giveNormalCrackingStress(GaussPoint *gp, double eps_cr, int i) const override
Definition rcsde.C:416
void initializeFrom(InputRecord &ir) override
Definition rcsde.C:255
const char * giveClassName() const override
Definition rcsde.h:125
const char * giveInputRecordName() const override
Definition rcsde.h:124
double give(int aProperty, GaussPoint *gp) const override
Definition rcsde.C:263
RCSDEMaterial(int n, Domain *d)
Definition rcsde.C:49
double computeDamageCoeff(double, double, double) const
Definition rcsde.C:223
virtual ~RCSDEMaterial()
Definition rcsde.C:55
double computeCurrEquivStrain(GaussPoint *, const FloatArray &, double, TimeStep *tStep) const
Definition rcsde.C:235
void giveEffectiveMaterialStiffnessMatrix(FloatMatrix &answer, MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
Definition rcsde.C:181
double computeStrength(GaussPoint *gp, double) const override
Definition rcsde.C:295
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
Definition rcsde.h:133
double SDTransitionCoeff
Definition rcsde.h:118
long ContextMode
Definition contextmode.h:43
#define _IFT_RCSDEMaterial_Name
Definition rcsde.h:46

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