OOFEM  2.4
OOFEM.org - Object Oriented Finite Element Solver
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 - 2013 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"
52 
53 
54 namespace oofem {
59 {
60 protected:
62  double maturity;
64  double tempMaturity;
66  double temperature;
69 
70 public:
71  Eurocode2CreepMaterialStatus(int n, Domain *d, GaussPoint *g, int nunits);
73 
74  virtual void updateYourself(TimeStep *tStep);
75 
76  virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj = NULL);
77  virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj = NULL);
78 
79  double giveConcreteMaturity() const { return maturity; }
80  void setTempConcreteMaturity(double src) { tempMaturity = src; }
81 
82  double giveTemperature() const { return temperature; }
83  void setTempTemperature(double src) { tempTemperature = src; }
84 
85 
86  // definition
87  virtual const char *giveClassName() const { return "Eurocode2CreepMaterialStatus"; }
88 };
89 
90 
101 {
102 protected:
103 
105  // the reason it is introduced is the application of the correction factors
106  // to achieve a better approximation of the compliance function by the retardation spectrum
107  double tau1;
108 
110  double EspringVal;
111 
112  // ELASTICITY + SHORT TERM + STRENGTH
114  double fcm28;
115 
117  double Ecm28;
118 
121 
123  double s;
124 
125  // CREEP
127  double phi_RH;
128 
130  double beta_fcm;
131 
133  double beta_H;
134 
136  double h0;
137 
140 
141 
142  // DRYING SHRINKAGE
144  double t0;
145 
147  double begOfDrying;
148 
150  double kh;
151 
153  double eps_cd_0;
154 
155 
156  // AUTEGENOUS SHRINKAGE
158  double eps_ca_infty;
159 
161  enum ec2ShrinkageType { EC2_NoShrinkage, EC2_TotalShrinkage, EC2_DryingShrinkage, EC2_AutogenousShrinkage } shType;
162 
168 
171 
172 
173 public:
175  shType = EC2_NoShrinkage;
176  }
178 
179  virtual void giveRealStressVector(FloatArray &answer, GaussPoint *gp,
180  const FloatArray &reducedStrain, TimeStep *tStep);
181 
182  virtual void giveShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode);
183 
184  virtual const char *giveClassName() const { return "Eurocode2CreepMaterial"; }
185  virtual const char *giveInputRecordName() const { return _IFT_Eurocode2CreepMaterial_Name; }
187 
188  virtual MaterialStatus *CreateStatus(GaussPoint *gp) const;
189 
191  virtual double computeConcreteStrengthAtAge(double age);
192 
194  virtual double computeMeanElasticModulusAtAge(double age);
195 
196 
198  virtual double computeCreepFunction(double t, double t_prime, GaussPoint *gp, TimeStep *tStep);
199 
201  virtual double computeCreepCoefficient(double t, double t_prime, GaussPoint *gp, TimeStep *tStep);
202 
203 
204 protected:
205  virtual int hasIncrementalShrinkageFormulation() { return 1; }
206 
207  virtual double giveEModulus(GaussPoint *gp, TimeStep *tStep);
208 
210  virtual double computeEquivalentAge(GaussPoint *gp, TimeStep *tStep);
211 
213  virtual double computeEquivalentMaturity(GaussPoint *gp, TimeStep *tStep);
214 
215 
217  void computeElasticityStrengthParams(int);
218 
220  void computeShrinkageParams(int, double);
221 
223  void computeCreepParams(int, double);
224 
226  virtual void computeCharTimes();
227 
229  double computeRetardationTimeCorrection(int mu);
230 
232  double evaluateSpectrumAt(double tau);
233 
235  virtual void computeCharCoefficients(FloatArray &answer, double tPrime, GaussPoint *gp, TimeStep *tStep);
236 
238  void computeIncrementOfDryingShrinkageVector(FloatArray &answer, GaussPoint *gp, double tNow, double tThen);
239 
241  void computeIncrementOfAutogenousShrinkageVector(FloatArray &answer, GaussPoint *gp, double tNow, double tThen);
242 };
243 } // end namespace oofem
244 #endif // eurocode2creep_h
double h0
effective thickness [mm]
ec2ShrinkageType
shrinkage option
virtual contextIOResultType restoreContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Restores the receiver state previously written in stream.
virtual contextIOResultType saveContext(DataStream &stream, ContextMode mode, void *obj=NULL)
Stores receiver state to output stream.
Eurocode2CreepMaterial(int n, Domain *d)
GaussPoint * gp
Associated integration point.
Class and object Domain.
Definition: domain.h:115
double t0
duration of curing [day, sec, ...]
This class implements a solidifying Kelvin chain model describing a viscoelastic material.
Definition: kelvinChM.h:67
double s
parameter determined by cement type
The purpose of DataStream abstract class is to allow to store/restore context to different streams...
Definition: datastream.h:54
double eps_cd_0
asymptotic value of drying shrinkage at zero relative humidity, B.11 in EC2
ValueModeType
Type representing the mode of UnknownType or CharType, or similar types.
Definition: valuemodetype.h:78
double alpha_T_cement
influence of cement type on concrete equivalent age, B.9 in EC2
double tempMaturity
temperature-dependent equivalent age, maturity (temporary value)
#define _IFT_Eurocode2CreepMaterial_Name
double maturity
temperature-dependent equivalent age, maturity (equilibrated value)
virtual void updateYourself(TimeStep *tStep)
Update equilibrium history variables according to temp-variables.
double Ecm28
Young's modulus at 28 days default [MPa].
bool temperatureDependent
switch for temperature dependence of concrete maturity (default option is off)
virtual IRResultType initializeFrom(InputRecord *ir)
Initializes receiver according to object description stored in input record.
Definition: matstatus.h:140
double eps_ca_infty
asymptotic value of autogenous shrinakge, 3.12 in EC2
double begOfDrying
age (absolute) when concrete started drying, must be in days!
double tau1
fixed retardation time of the first unit
double fcm28
mean compressive strength at 28 days default - to be specified in units of the analysis (e...
This class implements associated Material Status to KelvinChainMaterial.
Definition: kelvinChM.h:44
double beta_fcm
drying creep coefficient
double stiffnessFactor
factor unifying stiffnesses (Ecm is predicted from fcm...)
Abstract base class representing a material status information.
Definition: matstatus.h:84
double phi_RH
drying creep coefficient
virtual const char * giveClassName() const
Class representing vector of real numbers.
Definition: floatarray.h:82
double beta_H
drying creep coefficient
IRResultType
Type defining the return values of InputRecord reading operations.
Definition: irresulttype.h:47
double temperature
temperature (equilibrated value)
bool retardationSpectrumApproximation
If true, analysis of retardation spectrum is used for evaluation of Kelvin units moduli If false...
double EspringVal
stiffness of the zeroth Kelvin unit
Class representing the general Input Record.
Definition: inputrecord.h:101
FloatArray * giveShrinkageStrainVector()
Definition: rheoChM.h:104
This class implements a model for concrete creep and shrinkage according to EuroCode 2 The creep is a...
long ContextMode
Context mode (mask), defining the type of information written/read to/from context.
Definition: contextmode.h:43
This class implements associated Material Status to Eurocode2CreepMaterial.
Eurocode2CreepMaterialStatus(int n, Domain *d, GaussPoint *g, int nunits)
the oofem namespace is to define a context or scope in which all oofem names are defined.
double tempTemperature
temperature (temporary value)
virtual const char * giveClassName() const
Class representing integration point in finite element program.
Definition: gausspoint.h:93
virtual const char * giveInputRecordName() const
double kh
drying shrinkage coefficient
Class representing solution step.
Definition: timestep.h:80
virtual int hasIncrementalShrinkageFormulation()
If only incremental shrinkage strain formulation is provided, then total shrinkage strain must be tra...

This page is part of the OOFEM documentation. Copyright (c) 2011 Borek Patzak
Project e-mail: info@oofem.org
Generated at Tue Jan 2 2018 20:07:28 for OOFEM by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2011