suanPan
Toggle main menu visibility
Main Page
Related Pages
Topics
Namespaces
Namespace List
Namespace Members
All
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
w
Variables
Typedefs
Concepts
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
z
~
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
Related Symbols
c
g
o
p
s
t
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Functions
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Variables
s
Typedefs
a
b
c
d
e
g
i
l
m
n
o
r
s
t
Enumerations
Enumerator
Macros
▼
suanPan
Changelog
Contributor Covenant Code of Conduct
Contribution
►
Topics
►
Namespaces
►
Concepts
►
Classes
▼
Files
▼
File List
►
Checker
►
Constraint
►
Converger
►
Database
►
Developer
►
Domain
►
Element
►
Enhancement
►
Load
▼
Material
►
Material1D
►
Material2D
▼
Material3D
►
Clay
▼
Concrete
CDP.cpp
CDP.h
CDPM2.cpp
CDPM2.h
CustomCDP.cpp
CustomCDP.h
NonlinearCDP.cpp
NonlinearCDP.h
Rebar3D.cpp
Rebar3D.h
TableCDP.cpp
TableCDP.h
►
Damage
►
DruckerPrager
►
Elastic
►
Hoffman
►
Sand
►
vonMises
►
Wrapper
Material3D.cpp
Material3D.h
►
MaterialOS
►
Special
ExternalMaterial.cpp
ExternalMaterial.h
►
ExternalMaterialData.h
►
Material.cpp
►
Material.h
►
MaterialParser.cpp
►
MaterialParser.h
MaterialTemplate.cpp
MaterialTemplate.h
►
MaterialTester.cpp
►
MaterialTester.h
►
ParameterType.h
►
MPI
►
Recorder
►
Resource
►
Section
►
Solver
►
Step
►
Toolbox
►
UnitTest
►
suanPan.cpp
►
suanPan.h
►
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Modules
Pages
Concepts
Loading...
Searching...
No Matches
CDPM2.h
Go to the documentation of this file.
1
/*******************************************************************************
2
* Copyright (C) 2017-2024 Theodore Chang
3
*
4
* This program is free software: you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License as published by
6
* the Free Software Foundation, either version 3 of the License, or
7
* (at your option) any later version.
8
*
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU General Public License for more details.
13
*
14
* You should have received a copy of the GNU General Public License
15
* along with this program. If not, see <http://www.gnu.org/licenses/>.
16
******************************************************************************/
31
#ifndef CDPM2_H
32
#define CDPM2_H
33
34
#include <
Material/Material3D/Material3D.h
>
35
36
struct
DataCDPM2
{
37
const
double
elastic_modulus
= 3E4;
38
const
double
poissons_ratio
= .3;
39
const
double
ft
= 3.;
40
const
double
fc
= 30.;
41
const
double
qh0
= .3;
42
const
double
hp
= .01;
43
const
double
df
= .85;
44
const
double
ah
= .08;
45
const
double
bh
= .003;
46
const
double
ch
= 2.;
47
const
double
dh
= 1
E
-6;
48
const
double
as
= 5.;
49
const
double
eft
= 5
E
-4;
50
const
double
efc
= 5
E
-4;
51
52
const
double
e
= [&] {
53
const
auto
fbc = 1.16 *
fc
;
54
const
auto
factor =
ft
/ fbc * (fbc +
fc
) * (fbc -
fc
) / (
fc
+
ft
) / (
fc
-
ft
);
55
return
(1. + factor) / (2. - factor);
56
}();
52
const
double
e
= [&] {
…
};
57
const
double
e0
=
ft
/
elastic_modulus
;
58
const
double
ftfc
=
ft
/
fc
;
59
const
double
m0
= 3. * (
fc
/
ft
-
ftfc
) *
e
/ (1. +
e
);
60
const
double
lndf
= log(
df
+ 1.) - log(2. *
df
- 1.);
61
const
double
sqrtdf
=
ft
* sqrt(2. / (3. + 6. *
df
*
df
));
62
const
double
eh
=
bh
-
dh
;
63
const
double
fh
=
ch
*
eh
/ (
ah
-
bh
);
64
65
const
double
ra
= (1. +
e
) * (1. -
e
);
66
const
double
rb
= pow(2. *
e
- 1., 2.);
67
const
double
rc
=
rb
*
e
* (5. *
e
- 4.);
68
};
36
struct
DataCDPM2
{
…
};
69
70
class
CDPM2
final :
protected
DataCDPM2
,
public
Material3D
{
71
public
:
72
enum class
DamageType
{
73
NODAMAGE
,
74
ISOTROPIC
,
75
ANISOTROPIC
76
};
72
enum class
DamageType
{
…
};
77
78
private
:
79
static
constexpr
unsigned
max_iteration = 20u;
80
static
const
double
sqrt_six;
81
static
const
double
sqrt_three_two;
82
static
const
mat unit_dev_tensor;
83
84
const
double
double_shear =
elastic_modulus
/ (1. +
poissons_ratio
);
85
const
double
bulk =
elastic_modulus
/ (3. - 6. *
poissons_ratio
);
86
87
const
DamageType
damage_type =
DamageType::ANISOTROPIC
;
88
89
void
compute_plasticity(
double
,
double
,
double
,
double
, vec&)
const
;
90
int
compute_damage(
double
,
double
,
double
,
double
,
double
, vec&);
91
int
compute_damage_factor(
double
,
double
,
double
,
double
,
double
&, vec&)
const
;
92
93
public
:
94
CDPM2
(
95
unsigned
,
// tag
96
double
,
// elastic_modulus
97
double
,
// poissons_ratio
98
double
,
// ft
99
double
,
// fc
100
double
,
// qh0
101
double
,
// hp
102
double
,
// df
103
double
,
// ah
104
double
,
// bh
105
double
,
// ch
106
double
,
// dh
107
double
,
// as
108
double
,
// eft
109
double
,
// efc
110
DamageType
,
// damage type
111
double
// density
112
);
113
114
int
initialize
(
const
shared_ptr<DomainBase>&)
override
;
115
116
unique_ptr<Material>
get_copy
()
override
;
117
118
[[nodiscard]]
double
get_parameter
(
ParameterType
)
const override
;
119
120
int
update_trial_status
(
const
vec&)
override
;
121
122
int
clear_status
()
override
;
123
int
commit_status
()
override
;
124
int
reset_status
()
override
;
125
126
vector<vec>
record
(
OutputType
)
override
;
127
128
void
print
()
override
;
129
};
70
class
CDPM2
final :
protected
DataCDPM2
,
public
Material3D
{
…
};
130
131
#endif
132
Material3D.h
OutputType
OutputType
Definition
OutputType.h:23
ParameterType
ParameterType
Definition
ParameterType.h:21
CDPM2
The CDPM2 class.
Definition
CDPM2.h:70
CDPM2::initialize
int initialize(const shared_ptr< DomainBase > &) override
Definition
CDPM2.cpp:361
CDPM2::update_trial_status
int update_trial_status(const vec &) override
Definition
CDPM2.cpp:373
CDPM2::CDPM2
CDPM2(unsigned, double, double, double, double, double, double, double, double, double, double, double, double, double, double, DamageType, double)
Definition
CDPM2.cpp:356
CDPM2::DamageType
DamageType
Definition
CDPM2.h:72
CDPM2::DamageType::ISOTROPIC
@ ISOTROPIC
CDPM2::DamageType::NODAMAGE
@ NODAMAGE
CDPM2::DamageType::ANISOTROPIC
@ ANISOTROPIC
CDPM2::record
vector< vec > record(OutputType) override
Definition
CDPM2.cpp:667
CDPM2::get_parameter
double get_parameter(ParameterType) const override
Definition
CDPM2.cpp:371
CDPM2::print
void print() override
Definition
CDPM2.cpp:674
CDPM2::reset_status
int reset_status() override
Definition
CDPM2.cpp:659
CDPM2::clear_status
int clear_status() override
Definition
CDPM2.cpp:643
CDPM2::commit_status
int commit_status() override
Definition
CDPM2.cpp:651
CDPM2::get_copy
unique_ptr< Material > get_copy() override
Definition
CDPM2.cpp:369
Material3D
The Material3D class.
Definition
Material3D.h:37
PlaneType::E
@ E
DataCDPM2
Definition
CDPM2.h:36
DataCDPM2::ch
const double ch
Definition
CDPM2.h:46
DataCDPM2::eft
const double eft
Definition
CDPM2.h:49
DataCDPM2::poissons_ratio
const double poissons_ratio
Definition
CDPM2.h:38
DataCDPM2::fh
const double fh
Definition
CDPM2.h:63
DataCDPM2::as
const double as
Definition
CDPM2.h:48
DataCDPM2::lndf
const double lndf
Definition
CDPM2.h:60
DataCDPM2::ra
const double ra
Definition
CDPM2.h:65
DataCDPM2::eh
const double eh
Definition
CDPM2.h:62
DataCDPM2::rb
const double rb
Definition
CDPM2.h:66
DataCDPM2::elastic_modulus
const double elastic_modulus
Definition
CDPM2.h:37
DataCDPM2::e
const double e
Definition
CDPM2.h:52
DataCDPM2::dh
const double dh
Definition
CDPM2.h:47
DataCDPM2::qh0
const double qh0
Definition
CDPM2.h:41
DataCDPM2::df
const double df
Definition
CDPM2.h:43
DataCDPM2::ah
const double ah
Definition
CDPM2.h:44
DataCDPM2::ft
const double ft
Definition
CDPM2.h:39
DataCDPM2::bh
const double bh
Definition
CDPM2.h:45
DataCDPM2::rc
const double rc
Definition
CDPM2.h:67
DataCDPM2::m0
const double m0
Definition
CDPM2.h:59
DataCDPM2::fc
const double fc
Definition
CDPM2.h:40
DataCDPM2::ftfc
const double ftfc
Definition
CDPM2.h:58
DataCDPM2::e0
const double e0
Definition
CDPM2.h:57
DataCDPM2::efc
const double efc
Definition
CDPM2.h:50
DataCDPM2::hp
const double hp
Definition
CDPM2.h:42
DataCDPM2::sqrtdf
const double sqrtdf
Definition
CDPM2.h:61
Material
Material3D
Concrete
CDPM2.h
Generated by
1.10.0