OOFEM 3.0
Loading...
Searching...
No Matches
latticeplasticitydamageviscoelastic.h
Go to the documentation of this file.
1
2/*
3 *
4 * ##### ##### ###### ###### ### ###
5 * ## ## ## ## ## ## ## ### ##
6 * ## ## ## ## #### #### ## # ##
7 * ## ## ## ## ## ## ## ##
8 * ## ## ## ## ## ## ## ##
9 * ##### ##### ## ###### ## ##
10 *
11 *
12 * OOFEM : Object Oriented Finite Element Code
13 *
14 * Copyright (C) 1993 - 2025 Borek Patzak
15 *
16 *
17 *
18 * Czech Technical University, Faculty of Civil Engineering,
19 * Department of Structural Mechanics, 166 29 Prague, Czech Republic
20 *
21 * This program is free software; you can redistribute it and/or modify
22 * it under the terms of the GNU General Public License as published by
23 * the Free Software Foundation; either version 2 of the License, or
24 * (at your option) any later version.
25 *
26 * This program is distributed in the hope that it will be useful,
27 * but WITHOUT ANY WARRANTY; without even the implied warranty of
28 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29 * GNU General Public License for more details.
30 *
31 * You should have received a copy of the GNU General Public License
32 * along with this program; if not, write to the Free Software
33 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
34 */
35
36#ifndef latticeplasticitydamageviscoelastic_h
37#define latticeplasticitydamageviscoelastic_h
38
41
43
44#define _IFT_LatticePlasticityDamageViscoelastic_Name "latticeplasticitydamageviscoelastic"
45#define _IFT_LatticePlasticityDamageViscoelastic_viscoMat "viscomat"
46#define _IFT_LatticePlasticityDamageViscoelastic_timeFactor "timefactor"
47#define _IFT_LatticePlasticityDamageViscoelastic_timedepfracturing "timedepfracturing"
48#define _IFT_LatticePlasticityDamageViscoelastic_fcm28 "fcm28"
49#define _IFT_LatticePlasticityDamageViscoelastic_fib_s "fib_s"
50#define _IFT_LatticePlasticityDamageViscoelastic_stiffnessFactor "stiffnessfactor"
51
53
54namespace oofem {
60
61{
62protected:
63
64 std::unique_ptr< GaussPoint >slaveGpVisco;
65
66public:
67
70
72 void printOutputAt(FILE *file, TimeStep *tStep) const override;
73
74
75 const char *giveClassName() const override { return "LatticePlasticityDamageViscoelasticStatus"; }
76
77 void initTempStatus() override;
78
79 void updateYourself(TimeStep *) override;
80
81
82 void saveContext(DataStream &stream, ContextMode mode) override;
83
84 void restoreContext(DataStream &stream, ContextMode mode) override;
85
86 GaussPoint *giveSlaveGaussPointVisco() const { return this->slaveGpVisco.get(); }
87};
88
89
90
96
97{
98protected:
100 int viscoMat = 0;
101
102 bool fib = false;
103 double fib_fcm28 = 0;
104 double fib_s = 0;
105 double timeFactor = 0;
106
107 /* scaling factor transforming PREDICTED strength and fracture energy
108 * e.g. if the stiffness should be in MPa, then stiffnessFactor = 1.e6 */
109 double stiffnessFactor = 0.;
110
111public:
112
115
117 const char *giveClassName() const override { return "LatticePlasticityDamageViscoelastic"; }
118
119 void initializeFrom(InputRecord &ir) override;
120
121 FloatMatrixF< 6, 6 >give3dLatticeStiffnessMatrix(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override;
122
124 GaussPoint *gp,
125 TimeStep *tStep) override;
126
127 std::unique_ptr<MaterialStatus> CreateStatus(GaussPoint *gp) const override;
128
129protected:
130
131 int giveIPValue(FloatArray &answer,
132 GaussPoint *gp,
134 TimeStep *atTime) override;
135
136 int checkConsistency(void) override;
137
139 virtual double giveEquivalentTime(GaussPoint *gp, TimeStep *tStep) const;
140
141 double giveTensileStrength(GaussPoint *gp, TimeStep *tStep) const override;
142 double giveCompressiveStrength(GaussPoint *gp, TimeStep *tStep) const override;
143};
144} // end namespace oofem
145
146
147#endif
LatticePlasticityDamageStatus(int n, Domain *d, GaussPoint *g)
Constructor.
void restoreContext(DataStream &stream, ContextMode mode) override
LatticePlasticityDamageViscoelasticStatus(int n, Domain *d, GaussPoint *g)
Constructor.
void printOutputAt(FILE *file, TimeStep *tStep) const override
Prints the receiver state to given stream.
void saveContext(DataStream &stream, ContextMode mode) override
FloatMatrixF< 6, 6 > give3dLatticeStiffnessMatrix(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
FloatArrayF< 6 > giveLatticeStress3d(const FloatArrayF< 6 > &totalStrain, GaussPoint *gp, TimeStep *tStep) override
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
int viscoMat
'slave' (= viscoelastic) material model number.
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *atTime) override
virtual double giveEquivalentTime(GaussPoint *gp, TimeStep *tStep) const
returns equivalent time (used to compute time-dependent ft and gf)
double giveCompressiveStrength(GaussPoint *gp, TimeStep *tStep) const override
double giveTensileStrength(GaussPoint *gp, TimeStep *tStep) const override
LatticePlasticityDamage(int n, Domain *d)
Constructor.
#define _IFT_LatticePlasticityDamageViscoelastic_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