OOFEM 3.0
Loading...
Searching...
No Matches
b3mat.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 b3mat_h
36#define b3mat_h
37
38#include "maxwellChM.h"
39
41
42#define _IFT_B3Material_Name "b3mat"
43#define _IFT_B3Material_mode "mode"
44#define _IFT_B3Material_shmode "shmode"
45#define _IFT_B3Material_fc "fc"
46#define _IFT_B3Material_cc "cc"
47#define _IFT_B3Material_wc "w/c"
48#define _IFT_B3Material_ac "a/c"
49#define _IFT_B3Material_t0 "t0"
50#define _IFT_B3Material_es0 "es0"
51#define _IFT_B3Material_r "r"
52#define _IFT_B3Material_rprime "rprime"
53#define _IFT_B3Material_at "at"
54#define _IFT_B3Material_wh "w_h"
55#define _IFT_B3Material_ncoeff "ncoeff"
56#define _IFT_B3Material_a "a"
57#define _IFT_B3Material_alpha1 "alpha1"
58#define _IFT_B3Material_alpha2 "alpha2"
59#define _IFT_B3Material_ks "ks"
60#define _IFT_B3Material_hum "hum"
61#define _IFT_B3Material_vs "vs"
62#define _IFT_B3Material_q1 "q1"
63#define _IFT_B3Material_q2 "q2"
64#define _IFT_B3Material_q3 "q3"
65#define _IFT_B3Material_q4 "q4"
66#define _IFT_B3Material_q5 "q5"
67#define _IFT_B3Material_kt "kt"
68#define _IFT_B3Material_EpsSinf "epssinf"
70
71namespace oofem {
76{
77protected:
78 double t0 = 0.;
79
80 double w = 0., E28 = 0.;
81 double q1 = 0., q2 = 0., q3 = 0., q4 = 0., q5 = 0.; // predicted data
84
85 double EpsSinf = 0., kt = 0., ks = 0., vs = 0., hum = 0.;
87
89 double es0 = 0., r = 0., rprime = 0., at = 0.;
91
93 double w_h = 0.;
94 double n = 0.;
95 double a = 0.;
97public:
99
100 void giveShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const override;
101
102 const char *giveClassName() const override { return "B3Material"; }
103 const char *giveInputRecordName() const override { return _IFT_B3Material_Name; }
104 void initializeFrom(InputRecord &ir) override;
105
106 double computeCreepFunction(double t, double t_prime, GaussPoint *gp, TimeStep *tStep) const override;
107
108protected:
109 bool hasIncrementalShrinkageFormulation() const override { return true; }
110
111 virtual void computeTotalAverageShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep) const;
113 virtual void computeShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const;
114 void predictParametersFrom(double, double, double, double, double, double, double);
115
123 double inverse_sorption_isotherm(double w) const;
124};
125} // end namespace oofem
126#endif // b3mat_h
#define _IFT_B3Material_Name
Definition b3mat.h:42
virtual void computeShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const
Free shrinkage at material point, requires staggered analysis.
Definition b3mat.C:316
double t0
Age when drying begins (in days).
Definition b3mat.h:78
double a
Constant (obtained from experiments) A [Pedersen, 1990].
Definition b3mat.h:95
const char * giveClassName() const override
Definition b3mat.h:102
void predictParametersFrom(double, double, double, double, double, double, double)
Definition b3mat.C:121
virtual void computeTotalAverageShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep) const
Definition b3mat.C:264
const char * giveInputRecordName() const override
Definition b3mat.h:103
void initializeFrom(InputRecord &ir) override
Definition b3mat.C:46
double inverse_sorption_isotherm(double w) const
Definition b3mat.C:428
bool hasIncrementalShrinkageFormulation() const override
Definition b3mat.h:109
double computeCreepFunction(double t, double t_prime, GaussPoint *gp, TimeStep *tStep) const override
Evaluation of the creep compliance function at time t when loading is acting from time t_prime.
Definition b3mat.C:185
double w_h
Constant water content (obtained from experiments) w_h [Pedersen, 1990].
Definition b3mat.h:93
void giveShrinkageStrainVector(FloatArray &answer, GaussPoint *gp, TimeStep *tStep, ValueModeType mode) const override
Definition b3mat.C:235
enum oofem::B3Material::b3ShModeType shMode
double rprime
Definition b3mat.h:89
@ B3_AverageShrinkage
Definition b3mat.h:82
double EpsSinf
Definition b3mat.h:85
double n
Constant-exponent (obtained from experiments) n [Pedersen, 1990].
Definition b3mat.h:94
B3Material(int n, Domain *d)
Definition b3mat.h:98
MaxwellChainMaterial(int n, Domain *d)
Definition maxwellChM.C:44

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