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
33
35 const double bulk; // 9K
36 const double ref_strain;
37 const double ref_stress;
38 const double m;
39};
40
41class 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
47public:
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
58};
59
60#endif
61
The IsotropicNonlinearElastic3D class.
Definition: IsotropicNonlinearElastic3D.h:34
The NLE3D01 class.
Definition: NLE3D01.h:41
unique_ptr< Material > get_copy() override
Definition: NLE3D01.cpp:47
NLE3D01(unsigned, double, double, double, double, double)
Definition: NLE3D01.cpp:43
Definition: NLE3D01.h:34
const double ref_stress
Definition: NLE3D01.h:37
const double m
Definition: NLE3D01.h:38
const double ref_strain
Definition: NLE3D01.h:36
const double bulk
Definition: NLE3D01.h:35