suanPan
NLE3D01.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
******************************************************************************/
29
#ifndef NLE3D01_H
30
#define NLE3D01_H
31
32
#include "
IsotropicNonlinearElastic3D.h
"
33
34
struct
DataNLE3D01
{
35
const
double
bulk
;
// 9K
36
const
double
ref_strain
;
37
const
double
ref_stress
;
38
const
double
m
;
39
};
40
41
class
NLE3D01
final :
protected
DataNLE3D01
,
public
IsotropicNonlinearElastic3D
{
42
const
double
factor_a = (.5 *
m
+ .5) *
ref_stress
/ (1. +
m
) * pow(
ref_strain
, -
m
);
43
const
double
factor_b = (.5 *
m
- .5) * factor_a;
44
45
vec compute_derivative(
double
,
double
)
override
;
46
47
public
:
48
NLE3D01
(
49
unsigned
,
// tag
50
double
,
// bulk modulus
51
double
,
// reference strain
52
double
,
// reference stress
53
double
,
// m
54
double
// density
55
);
56
57
unique_ptr<Material>
get_copy
()
override
;
58
};
59
60
#endif
61
IsotropicNonlinearElastic3D.h
IsotropicNonlinearElastic3D
The IsotropicNonlinearElastic3D class.
Definition:
IsotropicNonlinearElastic3D.h:34
NLE3D01
The NLE3D01 class.
Definition:
NLE3D01.h:41
NLE3D01::get_copy
unique_ptr< Material > get_copy() override
Definition:
NLE3D01.cpp:47
NLE3D01::NLE3D01
NLE3D01(unsigned, double, double, double, double, double)
Definition:
NLE3D01.cpp:43
unique_ptr< Material >
DataNLE3D01
Definition:
NLE3D01.h:34
DataNLE3D01::ref_stress
const double ref_stress
Definition:
NLE3D01.h:37
DataNLE3D01::m
const double m
Definition:
NLE3D01.h:38
DataNLE3D01::ref_strain
const double ref_strain
Definition:
NLE3D01.h:36
DataNLE3D01::bulk
const double bulk
Definition:
NLE3D01.h:35
Material
Material3D
Elastic
NLE3D01.h
Generated by
1.9.4