Alamo
Constant.H
Go to the documentation of this file.
1 #ifndef MODEL_INTERFACE_CRACK_CONSTANT_H
2 #define MODEL_INTERFACE_CRACK_CONSTANT_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 Constant : public Crack
19 {
20 public:
21  Constant(){};
22 
23  Set::Scalar Gc (Set::Scalar /*theta*/) { return _Gc; }
24  Set::Scalar DGc (Set::Scalar /*theta*/) { return 0.0; }
25  Set::Scalar DDGc (Set::Scalar /*theta*/) { return 0.0; }
26  Set::Scalar Zeta(Set::Scalar /*theta*/) { return zeta; }
27  Set::Scalar Mobility (Set::Scalar /*theta*/) {return mobility;}
29 private:
30  Set::Scalar _Gc = 1.0, zeta = 1.e-2, mobility = 1.e-2, threshold = 0.0;
31 
32 public:
33  static void Parse(Constant & value, IO::ParmParse & pp)
34  {
35  pp_query("G_c",value._Gc); // Fracture energy
36  pp_query("zeta",value.zeta); // Lengthscale regularization
37  pp_query("mobility",value.mobility); // Mobility (speed)
38  pp_query("threshold", value.threshold); // Threshold
39 
40  std::string gtype = "";
41  std::string wtype = "";
42  pp_query("gtype", gtype); // Type of g function to use {square, multiwell, 4c3, squarep, squarepexp, cubicm}
43  pp_query("wtype", wtype); // Type o w function to use {square, multiwell, multiwell2, 4c3}
44 
45  Set::Scalar ductile_exponent = 1.;
46  if(gtype == "squarepexp"|| gtype == "cubicm") pp_query("exponent",ductile_exponent);
47 
48  std::map<std::string,Model::Interface::Crack::Crack::GType> g_map;
49  g_map["square"] = Model::Interface::Crack::Crack::GType::GSQUARE;
50  g_map["multiwell"] = Model::Interface::Crack::Crack::GType::GMULTIWELL;
51  g_map["4c3"] = Model::Interface::Crack::Crack::GType::GPHI4C3;
52  g_map["squarep"] = Model::Interface::Crack::Crack::GType::GSQUAREP;
53  g_map["squarepexp"] = Model::Interface::Crack::Crack::GType::GSQUAREPM;
54  g_map["cubicm"] = Model::Interface::Crack::Crack::GType::GCUBICM;
55 
56  std::map<std::string,Model::Interface::Crack::Crack::WType> w_map;
57  w_map["square"] = Model::Interface::Crack::Crack::WType::WSQUARE;
58  w_map["multiwell"] = Model::Interface::Crack::Crack::WType::WMULTIWELL;
59  w_map["multiwell2"] = Model::Interface::Crack::Crack::WType::WMULTIWELL2;
60  w_map["4c3"] = Model::Interface::Crack::Crack::WType::WPHI4C3;
61 
62  value.SetGType(g_map[gtype]);
63  value.SetWType(w_map[wtype]);
64 
65  value.SetDuctileExponent(ductile_exponent);
66  }
67 };
68 }
69 }
70 }
71 #endif
Model::Interface::Crack::Constant::_Gc
Set::Scalar _Gc
Definition: Constant.H:30
Util.H
Model::Interface::Crack::Constant::DDGc
Set::Scalar DDGc(Set::Scalar)
Definition: Constant.H:25
Model::Interface::Crack::Constant::Constant
Constant()
Definition: Constant.H:21
Model::Interface::Crack::Crack::SetDuctileExponent
void SetDuctileExponent(const Set::Scalar m)
Definition: Crack.H:110
Model::Interface::Crack::Constant::Gc
Set::Scalar Gc(Set::Scalar)
Definition: Constant.H:23
Model::Interface::Crack::Constant::Zeta
Set::Scalar Zeta(Set::Scalar)
Definition: Constant.H:26
pp_query
#define pp_query(...)
Definition: ParmParse.H:104
Model::Interface::Crack::Constant::Parse
static void Parse(Constant &value, IO::ParmParse &pp)
Definition: Constant.H:33
Model::Interface::Crack::Constant::zeta
Set::Scalar zeta
Definition: Constant.H:30
Set::Scalar
amrex::Real Scalar
Definition: Base.H:19
Model::Interface::Crack::Constant::Mobility
Set::Scalar Mobility(Set::Scalar)
Definition: Constant.H:27
Model::Interface::Crack::Constant::DrivingForceThreshold
Set::Scalar DrivingForceThreshold(Set::Scalar)
Definition: Constant.H:28
Model::Interface::Crack::Constant::threshold
Set::Scalar threshold
Definition: Constant.H:30
Crack.H
Model::Interface::Crack::Constant::DGc
Set::Scalar DGc(Set::Scalar)
Definition: Constant.H:24
Model::Interface::Crack::Constant
Definition: Constant.H:18
Model::Interface::Crack::Crack::SetWType
void SetWType(const WType a_type)
Definition: Crack.H:105
Set.H
IO::ParmParse
Definition: ParmParse.H:110
Model::Interface::Crack::Crack::SetGType
void SetGType(const GType a_type)
Definition: Crack.H:100
Model
Definition: Constant.H:12
Model::Interface::Crack::Constant::mobility
Set::Scalar mobility
Definition: Constant.H:30
Model::Interface::Crack::Crack
Definition: Crack.H:16