OOFEM 3.0
Loading...
Searching...
No Matches
eurocode2creep.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 eurocode2creep_h
36#define eurocode2creep_h
37
38#include "kelvinChM.h"
39
41
42#define _IFT_Eurocode2CreepMaterial_Name "ec2creepmat"
43#define _IFT_Eurocode2CreepMaterial_fcm28 "fcm28"
44#define _IFT_Eurocode2CreepMaterial_stiffnessFactor "stiffnessfactor"
45#define _IFT_Eurocode2CreepMaterial_t0 "t0"
46#define _IFT_Eurocode2CreepMaterial_cemType "cemtype"
47#define _IFT_Eurocode2CreepMaterial_henv "henv"
48#define _IFT_Eurocode2CreepMaterial_h0 "h0"
49#define _IFT_Eurocode2CreepMaterial_shType "shtype"
50#define _IFT_Eurocode2CreepMaterial_spectrum "spectrum"
51#define _IFT_Eurocode2CreepMaterial_temperatureDependent "temperaturedependent"
53
54namespace oofem {
59{
60protected:
62 double maturity = 0.;
64 double tempMaturity = 0.;
66 double temperature = 0.;
68 double tempTemperature = 0.;
69
70public:
72
73 void updateYourself(TimeStep *tStep) override;
74
75 void saveContext(DataStream &stream, ContextMode mode) override;
76 void restoreContext(DataStream &stream, ContextMode mode) override;
77
78 double giveConcreteMaturity() const { return maturity; }
79 void setTempConcreteMaturity(double src) { tempMaturity = src; }
80
81 double giveTemperature() const { return temperature; }
82 void setTempTemperature(double src) { tempTemperature = src; }
83
84
85 // definition
86 const char *giveClassName() const override { return "Eurocode2CreepMaterialStatus"; }
87};
88
89
100{
101protected:
102
104 // the reason it is introduced is the application of the correction factors
105 // to achieve a better approximation of the compliance function by the retardation spectrum
106 double tau1 = 0.;
107
109 mutable double EspringVal = 0.;
110
111 // ELASTICITY + SHORT TERM + STRENGTH
113 double fcm28 = 0.;
114
116 double Ecm28 = 0.;
117
119 double stiffnessFactor = 0.;
120
122 double s = 0.;
123
124 // CREEP
126 double phi_RH = 0.;
127
129 double beta_fcm = 0.;
130
132 double beta_H = 0.;
133
135 double h0 = 0.;
136
138 double alpha_T_cement = 0.;
139
140
141 // DRYING SHRINKAGE
143 double t0 = 0.;
144
146 double begOfDrying = 0.;
147
149 double kh = 0.;
150
152 double eps_cd_0 = 0.;
153
154
155 // AUTEGENOUS SHRINKAGE
157 double eps_ca_infty = 0.;
158
161
167
170
171
172public:
174
176 const FloatArray &reducedStrain, TimeStep *tStep) const override;
177
178 void giveShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const override;
179
180 const char *giveClassName() const override { return "Eurocode2CreepMaterial"; }
181 const char *giveInputRecordName() const override { return _IFT_Eurocode2CreepMaterial_Name; }
182 void initializeFrom(InputRecord &ir) override;
183
184 std::unique_ptr<MaterialStatus> CreateStatus(GaussPoint *gp) const override;
185
187 virtual double computeConcreteStrengthAtAge(double age) const;
188
190 virtual double computeMeanElasticModulusAtAge(double age) const;
191
192
194 double computeCreepFunction(double t, double t_prime, GaussPoint *gp, TimeStep *tStep) const override;
195
197 virtual double computeCreepCoefficient(double t, double t_prime, GaussPoint *gp, TimeStep *tStep) const;
198
199
200protected:
201 bool hasIncrementalShrinkageFormulation() const override { return true; }
202
203 double giveEModulus(GaussPoint *gp, TimeStep *tStep) const override;
204
206 virtual double computeEquivalentAge(GaussPoint *gp, TimeStep *tStep) const;
207
209 virtual double computeEquivalentMaturity(GaussPoint *gp, TimeStep *tStep) const;
210
211
214
216 void computeShrinkageParams(int, double);
217
219 void computeCreepParams(int, double);
220
222 void computeCharTimes() override;
223
225 double computeRetardationTimeCorrection(int mu) const;
226
228 double evaluateSpectrumAt(double tau) const;
229
231 FloatArray computeCharCoefficients(double tPrime, GaussPoint *gp, TimeStep *tStep) const override;
232
234 void computeIncrementOfDryingShrinkageVector(FloatArray &answer, GaussPoint *gp, double tNow, double tThen) const;
235
237 void computeIncrementOfAutogenousShrinkageVector(FloatArray &answer, GaussPoint *gp, double tNow, double tThen) const;
238};
239} // end namespace oofem
240#endif // eurocode2creep_h
void saveContext(DataStream &stream, ContextMode mode) override
double maturity
temperature-dependent equivalent age, maturity (equilibrated value)
double temperature
temperature (equilibrated value)
void restoreContext(DataStream &stream, ContextMode mode) override
const char * giveClassName() const override
Eurocode2CreepMaterialStatus(GaussPoint *g, int nunits)
double tempTemperature
temperature (temporary value)
double tempMaturity
temperature-dependent equivalent age, maturity (temporary value)
void updateYourself(TimeStep *tStep) override
void computeCreepParams(int, double)
sets parameters for creep according to formulas from EC
void giveRealStressVector(FloatArray &answer, GaussPoint *gp, const FloatArray &reducedStrain, TimeStep *tStep) const override
void computeShrinkageParams(int, double)
sets parameters for shrinkage according to formulas from EC
double begOfDrying
age (absolute) when concrete started drying, must be in days!
double alpha_T_cement
influence of cement type on concrete equivalent age, B.9 in EC2
double eps_ca_infty
asymptotic value of autogenous shrinakge, 3.12 in EC2
double kh
drying shrinkage coefficient
double fcm28
mean compressive strength at 28 days default - to be specified in units of the analysis (e....
double computeRetardationTimeCorrection(int mu) const
computes correction factor which multiplies the retardation times
virtual double computeEquivalentAge(GaussPoint *gp, TimeStep *tStep) const
implements B.9
double h0
effective thickness [mm]
double Ecm28
Young's modulus at 28 days default [MPa].
const char * giveInputRecordName() const override
double s
parameter determined by cement type
void computeCharTimes() override
computes retardation times of the aging Kelvin chain
void computeIncrementOfDryingShrinkageVector(FloatArray &answer, GaussPoint *gp, double tNow, double tThen) const
computes increment of drying shrinkage - the shrinkage strain is isotropic
double t0
duration of curing [day, sec, ...]
double giveEModulus(GaussPoint *gp, TimeStep *tStep) const override
Evaluation of the incremental modulus.
void computeElasticityStrengthParams(int)
sets parameters for elasticity and strength according to formulas from EC
double evaluateSpectrumAt(double tau) const
evaluates retardation spectrum at given time (t-t')
bool hasIncrementalShrinkageFormulation() const override
const char * giveClassName() const override
virtual double computeConcreteStrengthAtAge(double age) const
evaluates concrete strength at given age
virtual double computeMeanElasticModulusAtAge(double age) const
evaluates concrete mean elastic modulus at given age
double eps_cd_0
asymptotic value of drying shrinkage at zero relative humidity, B.11 in EC2
double stiffnessFactor
factor unifying stiffnesses (Ecm is predicted from fcm...)
void computeIncrementOfAutogenousShrinkageVector(FloatArray &answer, GaussPoint *gp, double tNow, double tThen) const
computes increment of autogenous shrinkage - the shrinkage strain is isotropic
double tau1
fixed retardation time of the first unit
FloatArray computeCharCoefficients(double tPrime, GaussPoint *gp, TimeStep *tStep) const override
Evaluation of characteristic moduli of the Kelvin chain.
virtual double computeEquivalentMaturity(GaussPoint *gp, TimeStep *tStep) const
implements B.10
double computeCreepFunction(double t, double t_prime, GaussPoint *gp, TimeStep *tStep) const override
Evaluation of the compliance function.
void giveShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const override
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
double phi_RH
drying creep coefficient
double beta_fcm
drying creep coefficient
double EspringVal
stiffness of the zeroth Kelvin unit
void initializeFrom(InputRecord &ir) override
enum oofem::Eurocode2CreepMaterial::ec2ShrinkageType shType
virtual double computeCreepCoefficient(double t, double t_prime, GaussPoint *gp, TimeStep *tStep) const
Evaluation of the compliance function (according to appendix B from the EC).
Eurocode2CreepMaterial(int n, Domain *d)
bool temperatureDependent
switch for temperature dependence of concrete maturity (default option is off)
double beta_H
drying creep coefficient
KelvinChainMaterialStatus(GaussPoint *g, int nunits)
Definition kelvinChM.C:290
KelvinChainMaterial(int n, Domain *d)
Definition kelvinChM.C:44
#define _IFT_Eurocode2CreepMaterial_Name
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