OOFEM 3.0
Loading...
Searching...
No Matches
mat_cebfip90.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 mat_cebfip90_h
36#define mat_cebfip90_h
37
40
42
43#define _IFT_CebFipSlip90Material_Name "cebfipslip90"
44#define _IFT_CebFipSlip90Material_tmax "tmax"
45#define _IFT_CebFipSlip90Material_tres "tres"
46#define _IFT_CebFipSlip90Material_s1 "s1"
47#define _IFT_CebFipSlip90Material_s2 "s2"
48#define _IFT_CebFipSlip90Material_s3 "s3"
50
51namespace oofem {
52
58{
59protected:
61 double kappa = 0.;
63 double tempKappa = 0.;
64
65public:
68
69 void printOutputAt(FILE *file, TimeStep *tStep) const override;
70
72 double giveKappa() const { return kappa; }
74 double giveTempKappa() const { return tempKappa; }
76 void setTempKappa(double newKappa) { tempKappa = newKappa; }
77
78 const char *giveClassName() const override { return "CebFipSlip90MaterialStatus"; }
79
80 void initTempStatus() override;
81 void updateYourself(TimeStep *tStep) override;
82
83 void saveContext(DataStream &stream, ContextMode mode) override;
84 void restoreContext(DataStream &stream, ContextMode mode) override;
85};
86
87
95{
96protected:
98 double tmax = 0.;
100 double s1 = 0.;
102 double s2 = 0.;
104 double s3 = 0.;
106 double tres = 0.;
108 double alpha = 0.;
109
110public:
112 CebFipSlip90Material(int n, Domain * d);
113
114 const char *giveInputRecordName() const override { return _IFT_CebFipSlip90Material_Name; }
115 const char *giveClassName() const override { return "CebFipSlip90Material"; }
116
117 double giveEngTraction_1d(double jump, GaussPoint *gp, TimeStep *tStep) const override;
118 FloatMatrixF<1,1> give1dStiffnessMatrix_Eng(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override;
119
120 int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override;
121
122 bool hasAnalyticalTangentStiffness() const override { return true; }
123
128 double computeBondForce(double kappa) const;
133 double computeBondForceStiffness(double kappa) const;
134
135 void initializeFrom(InputRecord &ir) override;
136 void giveInputRecord(DynamicInputRecord &input) override;
137
138 std::unique_ptr<MaterialStatus> CreateStatus(GaussPoint *gp) const override { return std::make_unique<CebFipSlip90MaterialStatus>(gp); }
139};
140} // end namespace oofem
141#endif // mat_cebfip90_h
void printOutputAt(FILE *file, TimeStep *tStep) const override
Print receiver's output to given stream.
double giveKappa() const
Returns the last equilibrated scalar measure of the largest strain level.
void setTempKappa(double newKappa)
Sets the temp scalar measure of the largest strain level to given value.
void updateYourself(TimeStep *tStep) override
CebFipSlip90MaterialStatus(GaussPoint *g)
Constructor.
double tempKappa
Non-equilibrated scalar of the largest slip displacement.
double giveTempKappa() const
Returns the temp. scalar measure of the largest strain level.
const char * giveClassName() const override
void restoreContext(DataStream &stream, ContextMode mode) override
double kappa
Scalar measure of the largest slip reached in material.
void saveContext(DataStream &stream, ContextMode mode) override
FloatMatrixF< 1, 1 > give1dStiffnessMatrix_Eng(MatResponseMode mode, GaussPoint *gp, TimeStep *tStep) const override
double tmax
Max force (stress).
double s1
Slip valu at begining of yield plateau.
double s2
Slip at end of plateau.
double alpha
Alpha coeff.
CebFipSlip90Material(int n, Domain *d)
Constructor.
double s3
Slip when residual force/stress activated.
double giveEngTraction_1d(double jump, GaussPoint *gp, TimeStep *tStep) const override
double computeBondForceStiffness(double kappa) const
const char * giveClassName() const override
std::unique_ptr< MaterialStatus > CreateStatus(GaussPoint *gp) const override
double computeBondForce(double kappa) const
bool hasAnalyticalTangentStiffness() const override
void giveInputRecord(DynamicInputRecord &input) override
const char * giveInputRecordName() const override
void initializeFrom(InputRecord &ir) override
int giveIPValue(FloatArray &answer, GaussPoint *gp, InternalStateType type, TimeStep *tStep) override
double tres
Residual force/stress.
StructuralInterfaceMaterialStatus(GaussPoint *g)
Constructor. Creates new StructuralInterfaceMaterialStatus with number n, belonging to domain d and I...
#define _IFT_CebFipSlip90Material_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