OOFEM 3.0
Loading...
Searching...
No Matches
isointerfacedamage02.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 isointerfacedamage02_h
36#define isointerfacedamage02_h
37
40
41#include <fstream>
42
44
45#define _IFT_IsoInterfaceDamageMaterial_2_Name "isointrfdm02"
46#define _IFT_IsoInterfaceDamageMaterial_2_tablename "tablename"
47#define _IFT_IsoInterfaceDamageMaterial_2_kn "kn"
48#define _IFT_IsoInterfaceDamageMaterial_2_ks "ks"
49#define _IFT_IsoInterfaceDamageMaterial_2_ft "ft"
50#define _IFT_IsoInterfaceDamageMaterial_2_maxOmega "maxomega"
52
53namespace oofem {
54
60{
61protected:
63 double kappa = 0.;
65 double tempKappa = 0.;
67 double damage = 0.;
69 double tempDamage = 0.;
70
71public:
74
75 void printOutputAt(FILE *file, TimeStep *tStep) const override;
76
78 double giveKappa() const { return kappa; }
80 double giveTempKappa() const { return tempKappa; }
82 void setTempKappa(double newKappa) { tempKappa = newKappa; }
84 double giveDamage() const override { return damage; }
86 double giveTempDamage() const override { return tempDamage; }
88 void setTempDamage(double newDamage) { tempDamage = newDamage; }
89
90 // definition
91 const char *giveClassName() const override { return "IsoInterfaceDamageMaterialStatus"; }
92
93 void initTempStatus() override;
94 void updateYourself(TimeStep *tStep) override;
95
96 void saveContext(DataStream &stream, ContextMode mode) override;
97 void restoreContext(DataStream &stream, ContextMode mode) override;
98};
99
100
124{
125protected:
127 double kn = 0.;
129 double ks = 0.;
131 double ft = 0.;
133 double e0 = 0.;
135 double maxOmega = 0.999999;
137 std :: string tablename;
142
143public:
146
147 bool hasAnalyticalTangentStiffness() const override { return true; }
148
149 const char *giveInputRecordName() const override { return _IFT_IsoInterfaceDamageMaterial_2_Name; }
150 const char *giveClassName() const override { return "IsoInterfaceDamageMaterial"; }
151
152 FloatArrayF<3> giveEngTraction_3d(const FloatArrayF<3> &jump, GaussPoint *gp, TimeStep *tStep) const override;
153 FloatMatrixF<3,3> give3dStiffnessMatrix_Eng(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override;
154
155 int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override;
156
164 virtual double computeEquivalentStrain(const FloatArrayF<3> &strain, GaussPoint *gp, TimeStep *tStep) const;
165
173 virtual double computeDamageParam(double kappa, const FloatArrayF<3> &strain, GaussPoint *gp) const;
174
175 void initializeFrom(InputRecord &ir) override;
176 void giveInputRecord(DynamicInputRecord &input) override;
177
178 std::unique_ptr<MaterialStatus> CreateStatus(GaussPoint *gp) const override { return std::make_unique<IsoInterfaceDamageMaterialStatus_2>(gp); }
179};
180} // end namespace oofem
181#endif // isointerfacedamage01_h
double kappa
Scalar measure of the largest equivalent displacement ever reached in material.
IsoInterfaceDamageMaterialStatus_2(GaussPoint *g)
Constructor.
double giveTempKappa() const
Returns the temp. scalar measure of the largest strain level.
const char * giveClassName() const override
double tempDamage
Non-equilibrated damage level of material.
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
double tempKappa
Non-equilibrated scalar measure of the largest equivalent displacement.
void saveContext(DataStream &stream, ContextMode mode) override
void restoreContext(DataStream &stream, ContextMode mode) override
void updateYourself(TimeStep *tStep) override
void setTempKappa(double newKappa)
Sets the temp scalar measure of the largest strain level to given value.
double giveTempDamage() const override
Returns the temp. damage level.
double giveKappa() const
Returns the last equilibrated scalar measure of the largest strain level.
double giveDamage() const override
Returns the last equilibrated damage level.
void setTempDamage(double newDamage)
Sets the temp damage level to given value.
FloatArray damages
Damages read from the second column in the table file.
void giveInputRecord(DynamicInputRecord &input) override
double e0
Limit elastic deformation.
void initializeFrom(InputRecord &ir) override
double maxOmega
Maximum limit on omega. The purpose is elimination of a too compliant material which may cause conver...
const char * giveClassName() const override
virtual double computeDamageParam(double kappa, const FloatArrayF< 3 > &strain, GaussPoint *gp) const
virtual double computeEquivalentStrain(const FloatArrayF< 3 > &strain, GaussPoint *gp, TimeStep *tStep) const
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
const char * giveInputRecordName() const override
FloatArrayF< 3 > giveEngTraction_3d(const FloatArrayF< 3 > &jump, GaussPoint *gp, TimeStep *tStep) const override
bool hasAnalyticalTangentStiffness() const override
FloatArray strains
Strains read from the first column in the table file.
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
FloatMatrixF< 3, 3 > give3dStiffnessMatrix_Eng(MatResponseMode rMode, GaussPoint *gp, TimeStep *tStep) const override
IsoInterfaceDamageMaterial_2(int n, Domain *d)
Constructor.
std::string tablename
Name of table file.
double kn
Elastic properties (normal moduli).
StructuralInterfaceMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralInterfaceMaterialStatus with number n, belonging to domain d and I...
#define _IFT_IsoInterfaceDamageMaterial_2_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