Alamo
src
Model
Interface
Crack
Sin.H
Go to the documentation of this file.
1
#ifndef MODEL_INTERFACE_CRACK_SIN_H
2
#define MODEL_INTERFACE_CRACK_SIN_H
3
4
#include <iostream>
5
#include <fstream>
6
7
#include "AMReX.H"
8
#include "
Crack.H
"
9
#include "
Set/Set.H
"
10
#include "
Util/Util.H
"
11
12
namespace
Model
13
{
14
namespace
Interface
15
{
16
namespace
Crack
17
{
18
class
Sin
:
public
Crack
19
{
20
public
:
21
Sin
(){};
22
23
Set::Scalar
Gc
(
Set::Scalar
theta) {
return
Gc0
+ 0.5*
Gc1
*(1.0 - cos(4.0*(theta-
theta0
))); }
24
Set::Scalar
DGc
(
Set::Scalar
theta) {
return
2.0*
Gc1
*sin(4.0*(theta-
theta0
)); }
25
Set::Scalar
DDGc
(
Set::Scalar
theta) {
return
8.0*
Gc1
*cos(4.0*(theta-
theta0
)); }
26
Set::Scalar
Zeta
(
Set::Scalar
/*theta*/
) {
return
zeta
; }
27
Set::Scalar
Mobility
(
Set::Scalar
/*theta*/
) {
return
mobility
; }
28
Set::Scalar
DrivingForceThreshold
(
Set::Scalar
/*theta*/
) {
return
threshold
; }
29
30
private
:
31
Set::Scalar
zeta
= 1.e-2,
mobility
= 1.e-2;
32
Set::Scalar
Gc0
= 1.0;
33
Set::Scalar
Gc1
= 0.49;
34
Set::Scalar
theta0
= 3.14;
35
Set::Scalar
threshold
= 0.0;
36
37
public
:
38
static
void
Parse
(
Sin
& value,
IO::ParmParse
& pp)
39
{
40
pp_query
(
"Gc0"
,value.
Gc0
);
// Min Gc (fracture energy) value
41
pp_query
(
"Gc1"
,value.
Gc1
);
// Max Gc (fracture energy)value
42
pp_query
(
"theta0"
,value.
theta0
);
// Angle offset
43
pp_query
(
"zeta"
,value.
zeta
);
// Regularization
44
pp_query
(
"mobility"
,value.
mobility
);
// Crack mobiilty
45
pp_query
(
"threshold"
,value.
threshold
);
// Threshold for kinetics
46
47
std::string gtype =
""
;
48
std::string wtype =
""
;
49
pp_query
(
"gtype"
, gtype);
// Type of g function to use {square, multiwell, 4c3, squarep, squarepexp, cubicm}
50
pp_query
(
"wtype"
, wtype);
// Type o w function to use {square, multiwell, multiwell2, 4c3}
51
52
Set::Scalar
ductile_exponent = 1.;
53
if
(gtype ==
"squarepexp"
|| gtype ==
"cubicm"
)
pp_query
(
"exponent"
,ductile_exponent);
54
55
std::map<std::string,Model::Interface::Crack::Crack::GType> g_map;
56
g_map[
"square"
] =
Model::Interface::Crack::Crack::GType::GSQUARE
;
57
g_map[
"multiwell"
] =
Model::Interface::Crack::Crack::GType::GMULTIWELL
;
58
g_map[
"4c3"
] =
Model::Interface::Crack::Crack::GType::GPHI4C3
;
59
g_map[
"squarep"
] =
Model::Interface::Crack::Crack::GType::GSQUAREP
;
60
g_map[
"squarepexp"
] =
Model::Interface::Crack::Crack::GType::GSQUAREPM
;
61
g_map[
"cubicm"
] =
Model::Interface::Crack::Crack::GType::GCUBICM
;
62
63
std::map<std::string,Model::Interface::Crack::Crack::WType> w_map;
64
w_map[
"square"
] =
Model::Interface::Crack::Crack::WType::WSQUARE
;
65
w_map[
"multiwell"
] =
Model::Interface::Crack::Crack::WType::WMULTIWELL
;
66
w_map[
"multiwell2"
] =
Model::Interface::Crack::Crack::WType::WMULTIWELL2
;
67
w_map[
"4c3"
] =
Model::Interface::Crack::Crack::WType::WPHI4C3
;
68
69
value.
SetGType
(g_map[gtype]);
70
value.
SetWType
(w_map[wtype]);
71
72
value.
SetDuctileExponent
(ductile_exponent);
73
}
74
};
75
}
76
}
77
}
78
#endif
Crack.H
pp_query
#define pp_query(...)
Definition
ParmParse.H:106
Set.H
Util.H
IO::ParmParse
Definition
ParmParse.H:114
Model::Interface::Crack::Crack
Definition
Crack.H:17
Model::Interface::Crack::Crack::SetWType
void SetWType(const WType a_type)
Definition
Crack.H:105
Model::Interface::Crack::Crack::SetDuctileExponent
void SetDuctileExponent(const Set::Scalar m)
Definition
Crack.H:110
Model::Interface::Crack::Crack::SetGType
void SetGType(const GType a_type)
Definition
Crack.H:100
Model::Interface::Crack::Crack::WMULTIWELL
@ WMULTIWELL
Definition
Crack.H:20
Model::Interface::Crack::Crack::WPHI4C3
@ WPHI4C3
Definition
Crack.H:20
Model::Interface::Crack::Crack::WSQUARE
@ WSQUARE
Definition
Crack.H:20
Model::Interface::Crack::Crack::WMULTIWELL2
@ WMULTIWELL2
Definition
Crack.H:20
Model::Interface::Crack::Crack::GSQUAREPM
@ GSQUAREPM
Definition
Crack.H:19
Model::Interface::Crack::Crack::GMULTIWELL
@ GMULTIWELL
Definition
Crack.H:19
Model::Interface::Crack::Crack::GSQUARE
@ GSQUARE
Definition
Crack.H:19
Model::Interface::Crack::Crack::GCUBICM
@ GCUBICM
Definition
Crack.H:19
Model::Interface::Crack::Crack::GSQUAREP
@ GSQUAREP
Definition
Crack.H:19
Model::Interface::Crack::Crack::GPHI4C3
@ GPHI4C3
Definition
Crack.H:19
Model::Interface::Crack::Sin
Definition
Sin.H:19
Model::Interface::Crack::Sin::Parse
static void Parse(Sin &value, IO::ParmParse &pp)
Definition
Sin.H:38
Model::Interface::Crack::Sin::theta0
Set::Scalar theta0
Definition
Sin.H:34
Model::Interface::Crack::Sin::DrivingForceThreshold
Set::Scalar DrivingForceThreshold(Set::Scalar)
Definition
Sin.H:28
Model::Interface::Crack::Sin::threshold
Set::Scalar threshold
Definition
Sin.H:35
Model::Interface::Crack::Sin::Zeta
Set::Scalar Zeta(Set::Scalar)
Definition
Sin.H:26
Model::Interface::Crack::Sin::DDGc
Set::Scalar DDGc(Set::Scalar theta)
Definition
Sin.H:25
Model::Interface::Crack::Sin::Gc0
Set::Scalar Gc0
Definition
Sin.H:32
Model::Interface::Crack::Sin::mobility
Set::Scalar mobility
Definition
Sin.H:31
Model::Interface::Crack::Sin::DGc
Set::Scalar DGc(Set::Scalar theta)
Definition
Sin.H:24
Model::Interface::Crack::Sin::Gc
Set::Scalar Gc(Set::Scalar theta)
Definition
Sin.H:23
Model::Interface::Crack::Sin::zeta
Set::Scalar zeta
Definition
Sin.H:31
Model::Interface::Crack::Sin::Gc1
Set::Scalar Gc1
Definition
Sin.H:33
Model::Interface::Crack::Sin::Mobility
Set::Scalar Mobility(Set::Scalar)
Definition
Sin.H:27
Model::Interface::Crack::Sin::Sin
Sin()
Definition
Sin.H:21
Model
Definition
Disconnection.H:29
Set::Scalar
amrex::Real Scalar
Definition
Base.H:19
Generated by
1.9.8