OOFEM 3.0
Loading...
Searching...
No Matches
hydratingconcretemat.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 hydratingconcretemat_h
36#define hydratingconcretemat_h
37
40
42
43#define _IFT_HydratingConcreteMat_Name "hydratingconcretemat"
44#define _IFT_HydratingConcreteMat_referenceTemperature "referencetemperature"
45#define _IFT_HydratingConcreteMat_relMatAge "relmatage"
46#define _IFT_HydratingConcreteMat_hydrationModelType "hydrationmodeltype"
47#define _IFT_HydratingConcreteMat_maxModelIntegrationTime "maxmodelintegrationtime"
48#define _IFT_HydratingConcreteMat_minModelTimeStepIntegrations "minmodeltimestepintegrations"
49#define _IFT_HydratingConcreteMat_conductivitytype "conductivitytype"
50#define _IFT_HydratingConcreteMat_capacitytype "capacitytype"
51#define _IFT_HydratingConcreteMat_densitytype "densitytype"
52#define _IFT_HydratingConcreteMat_activationEnergy "activationenergy"
53#define _IFT_HydratingConcreteMat_massCement "masscement"
54#define _IFT_HydratingConcreteMat_reinforcementDegree "reinforcementdegree"
55#define _IFT_HydratingConcreteMat_tau "tau"
56#define _IFT_HydratingConcreteMat_beta "beta"
57#define _IFT_HydratingConcreteMat_B1 "b1"
58#define _IFT_HydratingConcreteMat_B2 "b2"
59#define _IFT_HydratingConcreteMat_eta "eta"
60#define _IFT_HydratingConcreteMat_DoHInf "dohinf"
61#define _IFT_HydratingConcreteMat_DoH1 "doh1"
62#define _IFT_HydratingConcreteMat_P1 "p1"
63#define _IFT_HydratingConcreteMat_qpot "qpot"
64#define _IFT_HydratingConcreteMat_wc "w/c"
65#define _IFT_HydratingConcreteMat_ac "a/c"
66#define _IFT_HydratingConcreteMat_rhoCem "rhocem"
67#define _IFT_HydratingConcreteMat_rhoAgg "rhoagg"
68#define _IFT_HydratingConcreteMat_Blaine "blaine"
69#define _IFT_HydratingConcreteMat_alphaSet0 "alphaset0"
70#define _IFT_HydratingConcreteMat_timeSet "timeset"
71#define _IFT_HydratingConcreteMat_alphaCrit0 "alphacrit0"
72#define _IFT_HydratingConcreteMat_B0 "b0"
73#define _IFT_HydratingConcreteMat_timeToSeconds "timetoseconds"
74
75
77
78namespace oofem {
85{
86public:
87 HydratingConcreteMat(int n, Domain * d);
88
89 bool hasInternalSource() const override { return true; }
90 bool hasCastingTimeSupport() const override { return true; }
91 void computeInternalSourceVector(FloatArray &val, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const override;
92
93 double giveCharacteristicValue(MatResponseMode mode,
94 GaussPoint *gp,
95 TimeStep *tStep) const override;
96
97 const char *giveClassName() const override { return "HydratingConcreteMat"; }
98
99 void initializeFrom(InputRecord &ir) override;
100
101 // post-processing
102 int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override;
103 double giveIsotropicConductivity(GaussPoint *gp, TimeStep *tStep) const override;
104 virtual double giveConcreteCapacity(GaussPoint *gp, TimeStep *tStep) const;
105 virtual double giveConcreteDensity(GaussPoint *gp, TimeStep *tStep) const;
106
113 double Qpot = 0.;
115 double massCement = 0.;
117 double activationEnergy = 0.;
125 double relMatAge = 0.;
126
127 double tau = 0., beta = 0.;
128
133 double B1 = 0., B2 = 0., eta = 0., DoHInf = 0.;
135
136 double DoH1 = 0., P1=0.;
141 double wc, ac;
143 double rhoCem, rhoAgg;
145 double Vc0, Vw0;
149 double a0;
151 double ng;
153 double alphaSet;
155 double timeSet;
157 double aSet;
159 double zSet;
161 double alphaCrit;
163 double B0;
166
167protected:
168 double GivePower(TimeStep *tStep, GaussPoint *gp, ValueModeType mode) const;
169 double scaleTemperature(GaussPoint *gp) const;
171 double affinity25(double alpha) const;
172
177 std::unique_ptr<MaterialStatus> CreateStatus(GaussPoint *gp) const override;
178};
179
184{
185public:
188 double giveDoHActual() const;
189 void updateYourself(TimeStep *tStep) override;
190 void printOutputAt(FILE *file, TimeStep *tStep) const override;
191 double power = 0.;
192 double lastEvalTime = -1.e20;
193 double equivalentTime = 0.;
196 double zShell = 0., lastZShell = 0.;
197 // Radius of cement particle
198 double aCement = 0., lastACement = 0.;
199 // Volume fractions of cement, gel, CH;
200 double VCem = 0., lastVCem = 0., VGel = 0., lastVGel = 0., VCH = 0., lastVCH = 0.;
201 // When the hydration model is called the first time - imposing relMatAge;
202 bool firstCall = true;
203};
204} // end namespace oofem
205#endif // hydratingconcretemat_h
double zShell
Radius of the equivalent contact-free C-S-H shells.
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
void updateYourself(TimeStep *tStep) override
double giveDoHActual() const
Returns actual degree of hydration at last known equilibrium.
double relMatAge
Relative material age (as "equivalent time") at the time of casting (castingTime),...
double DoH1
Optional extension to slag-rich, high-blended cements.
double zSet
Radius of gel barrier at setting time.
double rhoCem
Density of cement and aggregates (weighted average from fine and coarse aggregates.
double GivePower(TimeStep *tStep, GaussPoint *gp, ValueModeType mode) const
const char * giveClassName() const override
double affinity25(double alpha) const
Return affinity scaled to 25C.
double massCement
Mass of cement in kg per 1m3 of concrete.
void computeInternalSourceVector(FloatArray &val, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const override
virtual double giveConcreteCapacity(GaussPoint *gp, TimeStep *tStep) const
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
double alphaCrit
Degree of hydration at which the gel barrier will be completed.
bool hasInternalSource() const override
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
virtual double giveConcreteDensity(GaussPoint *gp, TimeStep *tStep) const
double activationEnergy
Activation energy of concrete (default 38400 J/mol/K).
double referenceTemperature
Reference temperature for hydration model.
double reinforcementDegree
Degree of reinforcement, if defined, reinforcement effect for conductivity and capacity is accounted ...
int hydrationModelType
Type of hydration model, e.g. exponential curve, Cervera's model.
double giveIsotropicConductivity(GaussPoint *gp, TimeStep *tStep) const override
double a0
Average cement particle radius (m).
double B0
Basic diffusivity (about 1.1e-11 m2/day for Portland cements).
double wc
Water/cement ratio and aggregate/cement ratio.
double Vc0
Initial volume fraction of cement and water.
double ng
Number of cement particles in a unit volume.
double Qpot
Potential heat of hydration, for ordinary Portland cement approximately 500 J/g.
double minModelTimeStepIntegrations
Minimum number of integration steps for hydration model within a given timeStep.
int conductivityType
Use different methods to evaluate material conductivity, capacity, or density.
double aSet
Radius of cement particle at setting time.
double VCemSet
Volume fractions at setting time.
double scaleTemperature(GaussPoint *gp) const
double alphaSet
Degree of hydration for setting time.
void initializeFrom(InputRecord &ir) override
double timeToSeconds
timeToSeconds, =1 when running in seconds (default), =86400 when time in days
double giveCharacteristicValue(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
bool hasCastingTimeSupport() const override
IsotropicHeatTransferMaterial(int n, Domain *d)
Definition isoheatmat.C:45

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