Alamo
Flame.H
Go to the documentation of this file.
1 #ifndef INTEGRATOR_FLAME_H
2 #define INTEGRATOR_FLAME_H
3 
4 #include <string>
5 #include <limits>
6 #include <memory>
7 
8 #include "Util/Util.H"
10 #include "Integrator/Mechanics.H"
11 #include "BC/BC.H"
12 #include "IC/Voronoi.H"
13 #include "IC/IC.H"
14 #include "IC/Wedge.H"
15 #include "IC/Constant.H"
16 #include "IC/Expression.H"
17 #include "IC/PSRead.H"
18 #include "Set/Set.H"
21 #include "IO/ParmParse.H"
23 #include "Solver/Nonlocal/Newton.H"
24 
25 
26 
27 namespace Integrator
28 {
29 
30 class Flame : virtual public Integrator::Integrator,
31  virtual public Base::Mechanics<Model::Solid::Finite::NeoHookeanPredeformed>
32 {
33 
35 
36 public:
37  Flame();
38  Flame(IO::ParmParse& pp);
39 
40  static void Parse(Flame& value, IO::ParmParse& pp);
41 
42  virtual ~Flame()
43  {
44  delete bc_eta;
45  delete ic_eta;
46  delete ic_phi;
47  }
48 
49 protected:
50  void Initialize(int lev) override;
51  void TimeStepBegin(Set::Scalar a_time, int a_iter) override;
52  void TimeStepComplete(Set::Scalar a_time, int a_iter) override;
53  void Advance(int lev, Set::Scalar time, Set::Scalar dt) override;
54  void TagCellsForRefinement(int lev, amrex::TagBoxArray& tags, amrex::Real /*time*/, int /*ngrow*/) override;
55  void Regrid(int lev, Set::Scalar time) override;
56  void Integrate(int amrlev, Set::Scalar time, int step,
57  const amrex::MFIter& mfi, const amrex::Box& box) override;
58  void UpdateModel(int a_step, Set::Scalar a_time) override;
59 private:
60 
65 
70 
75 
77 
80  IC::IC* ic_phi = nullptr;
81  IC::IC* ic_laser = nullptr;
82 
83  Set::Scalar phi_refinement_criterion = std::numeric_limits<Set::Scalar>::infinity();
91  IC::IC* ic_eta = nullptr;
92  int ghost_count = NAN;
93  int homogeneousSystem = NAN;
94  bool plot_field = true;
95  int variable_pressure = NAN;
96 
97  struct {
102  Set::Scalar w1 = NAN, w12 = NAN, w0 = NAN;
104  int evolve = 1;
105  } pf;
106 
107  struct {
108  Set::Scalar P = 1.0;
109  Set::Scalar gamma = 1.4;
111 
112  struct {
113  Set::Scalar a1 = NAN, a2 = NAN, a3 = NAN;
114  Set::Scalar b1 = NAN, b2 = NAN, b3 = NAN;
116  int mob_ap = 0;
117  int dependency = 1;
118  Set::Scalar h1 = 1.81, h2 = 1.34;
119 
120  } arrhenius;
121  struct {
122  Set::Scalar r_ap = NAN, r_htpb = NAN, r_comb = NAN;
123  Set::Scalar n_ap = NAN, n_htpb = NAN, n_comb = NAN;
124  Set::Scalar a_fit = 0.0, b_fit = 0.0, c_fit = 0.0;
125  } power;
126  } pressure;
127 
128  struct {
129  bool on = 0;
137  Set::Scalar hc = NAN, w1 = NAN;
145  IC::IC* ic_temp = nullptr;
146  } thermal;
147 
148  struct {
149  int on = 0;
153  int phirefinement = NAN;
154  } elastic;
155 
156  // Integrated variables
161  Set::Scalar massflux = 0.00000001;
162 
165 
167 };
168 }
169 
170 #endif
Integrator::Flame::hc
Set::Scalar hc
Definition: Flame.H:137
Integrator::Flame::power
struct Integrator::Flame::@2::@6 power
Integrator::Flame::ic_phi
IC::IC * ic_phi
Definition: Flame.H:80
Integrator::Flame::a2
Set::Scalar a2
Definition: Flame.H:113
Integrator::Flame::b1
Set::Scalar b1
Definition: Flame.H:114
Integrator::Flame::a1
Set::Scalar a1
Definition: Flame.H:113
Integrator::Flame::r_ap
Set::Scalar r_ap
Definition: Flame.H:122
Integrator::Flame
Definition: Flame.H:30
Integrator::Flame::modeling_htpb
Set::Scalar modeling_htpb
Definition: Flame.H:138
Integrator::Flame::h1
Set::Scalar h1
Definition: Flame.H:118
IC::IC
Pure abstract IC object from which all other IC objects inherit.
Definition: IC.H:12
BC::BC< Set::Scalar >
Integrator::Flame::min_eta
Set::Scalar min_eta
Definition: Flame.H:103
Integrator::Flame::Flame
Flame()
Definition: Flame.cpp:18
Integrator::Flame::q0
Set::Scalar q0
Definition: Flame.H:133
Integrator::Flame::n_comb
Set::Scalar n_comb
Definition: Flame.H:123
Integrator::Flame::massflux
Set::Scalar massflux
Definition: Flame.H:161
Integrator::Base::Mechanics
Definition: Mechanics.H:23
Integrator::Integrator::box
std::vector< amrex::Box > box
Definition: Integrator.H:367
Integrator::Flame::ic_laser
IC::IC * ic_laser
Definition: Flame.H:81
Util.H
Integrator::Flame::mlocal_htpb
Set::Scalar mlocal_htpb
Definition: Flame.H:139
Integrator::Flame::disperssion2
Set::Scalar disperssion2
Definition: Flame.H:143
Integrator::Flame::rho_ap
Set::Scalar rho_ap
Definition: Flame.H:130
Integrator::Flame::m_htpb
Set::Scalar m_htpb
Definition: Flame.H:135
Integrator::Flame::y_len
Set::Scalar y_len
Definition: Flame.H:164
NeoHookeanPredeformed.H
Mechanics.H
Integrator::Flame::TagCellsForRefinement
void TagCellsForRefinement(int lev, amrex::TagBoxArray &tags, amrex::Real, int) override
Definition: Flame.cpp:612
Integrator::Flame::mlocal_ap
Set::Scalar mlocal_ap
Definition: Flame.H:139
Integrator::Flame::model_htpb
model_type model_htpb
Definition: Flame.H:151
Integrator::Flame::h2
Set::Scalar h2
Definition: Flame.H:118
PSRead.H
Integrator::Flame::r_comb
Set::Scalar r_comb
Definition: Flame.H:122
Integrator::Flame::c_fit
Set::Scalar c_fit
Definition: Flame.H:124
Integrator::Flame::laser_mf
Set::Field< Set::Scalar > laser_mf
Definition: Flame.H:76
Integrator::Flame::Integrate
void Integrate(int amrlev, Set::Scalar time, int step, const amrex::MFIter &mfi, const amrex::Box &box) override
Definition: Flame.cpp:682
Integrator.H
Integrator::Flame::r_htpb
Set::Scalar r_htpb
Definition: Flame.H:122
Integrator::Flame::rho_htpb
Set::Scalar rho_htpb
Definition: Flame.H:130
Set::Field< Set::Scalar >
Definition: Set.H:236
Integrator::Flame::zeta
Set::Scalar zeta
Definition: Flame.H:87
Integrator::Flame::disperssion3
Set::Scalar disperssion3
Definition: Flame.H:144
Integrator::Flame::a3
Set::Scalar a3
Definition: Flame.H:113
Integrator::Flame::bc_eta
BC::BC< Set::Scalar > * bc_eta
Definition: Flame.H:79
Integrator::Flame::model_ap
model_type model_ap
Definition: Flame.H:151
Integrator::Flame::Advance
void Advance(int lev, Set::Scalar time, Set::Scalar dt) override
Definition: Flame.cpp:376
Integrator::Flame::small
Set::Scalar small
Definition: Flame.H:89
Integrator::Flame::n_ap
Set::Scalar n_ap
Definition: Flame.H:123
Integrator::Flame::chamber_area
Set::Scalar chamber_area
Definition: Flame.H:159
Expression.H
Integrator::Flame::T_fluid
Set::Scalar T_fluid
Definition: Flame.H:140
Integrator::Flame::Tref
Set::Scalar Tref
Definition: Flame.H:150
Integrator::Integrator
Definition: Integrator.H:73
Integrator::Flame::temps_old_mf
Set::Field< Set::Scalar > temps_old_mf
Definition: Flame.H:64
Integrator::Flame::plot_field
bool plot_field
Definition: Flame.H:94
Model::Solid::Finite::NeoHookeanPredeformed
Definition: NeoHookeanPredeformed.H:13
Wedge.H
Integrator::Flame::eps
Set::Scalar eps
Definition: Flame.H:99
Integrator::Flame::P
Set::Scalar P
Definition: Flame.H:108
Integrator::Flame::zeta_0
Set::Scalar zeta_0
Definition: Flame.H:88
ParmParse.H
Integrator::Flame::field
Set::Field< Set::Scalar > field
Definition: Flame.H:72
Constant.H
Integrator::Flame::mob_mf
Set::Field< Set::Scalar > mob_mf
Definition: Flame.H:68
Integrator::Flame::ic_eta
IC::IC * ic_eta
Definition: Flame.H:91
Integrator::Flame::massfraction
Set::Scalar massfraction
Definition: Flame.H:141
Integrator::Flame::gamma
Set::Scalar gamma
Definition: Flame.H:98
Integrator::Flame::m_ap
Set::Scalar m_ap
Definition: Flame.H:135
Integrator::Flame::base_time
Set::Scalar base_time
Definition: Flame.H:90
Integrator::Flame::UpdateModel
void UpdateModel(int a_step, Set::Scalar a_time) override
Definition: Flame.cpp:283
Set::Scalar
amrex::Real Scalar
Definition: Base.H:19
Integrator::Flame::E_ap
Set::Scalar E_ap
Definition: Flame.H:136
Integrator::Flame::ghost_count
int ghost_count
Definition: Flame.H:92
Integrator::Flame::kappa
Set::Scalar kappa
Definition: Flame.H:101
Integrator::Flame::w0
Set::Scalar w0
Definition: Flame.H:102
Integrator::Flame::evolve
int evolve
Definition: Flame.H:104
Integrator::Flame::Energy
Set::Scalar Energy
Definition: Flame.H:110
Integrator::Flame::t_refinement_restriction
Set::Scalar t_refinement_restriction
Definition: Flame.H:86
Integrator::Flame::area
Set::Scalar area
Definition: Flame.H:158
Integrator::Flame::m_refinement_criterion
Set::Scalar m_refinement_criterion
Definition: Flame.H:84
Constant.H
Integrator::Flame::phi_mf
Set::Field< Set::Scalar > phi_mf
Definition: Flame.H:71
Integrator::Flame::eta_old_mf
Set::Field< Set::Scalar > eta_old_mf
Definition: Flame.H:67
Integrator::Flame::lambda
Set::Scalar lambda
Definition: Flame.H:100
Integrator::Flame::elastic
struct Integrator::Flame::@4 elastic
Integrator::Flame::Regrid
void Regrid(int lev, Set::Scalar time) override
Definition: Flame.cpp:673
Integrator::Flame::bound
Set::Scalar bound
Definition: Flame.H:134
Integrator::Flame::b2
Set::Scalar b2
Definition: Flame.H:114
Integrator::Flame::mlocal_comb
Set::Scalar mlocal_comb
Definition: Flame.H:139
Integrator::Flame::ic_temp
IC::IC * ic_temp
Definition: Flame.H:145
Integrator::Flame::variable_pressure
int variable_pressure
Definition: Flame.H:95
Integrator::Flame::TimeStepComplete
void TimeStepComplete(Set::Scalar a_time, int a_iter) override
Definition: Flame.cpp:364
Integrator::Flame::m_comb
Set::Scalar m_comb
Definition: Flame.H:135
Integrator::Flame::w12
Set::Scalar w12
Definition: Flame.H:102
Integrator::Flame::w1
Set::Scalar w1
Definition: Flame.H:102
Integrator::Flame::chamber_pressure
Set::Scalar chamber_pressure
Definition: Flame.H:160
Integrator::Flame::pf
struct Integrator::Flame::@1 pf
Integrator::Flame::cp_ap
Set::Scalar cp_ap
Definition: Flame.H:132
Integrator::Flame::eta_mf
Set::Field< Set::Scalar > eta_mf
Definition: Flame.H:66
Integrator
Collection of numerical integrator objects.
Definition: AllenCahn.H:39
Integrator::Flame::bc_temp
BC::BC< Set::Scalar > * bc_temp
Definition: Flame.H:78
Integrator::Flame::temp_mf
Set::Field< Set::Scalar > temp_mf
Definition: Flame.H:61
Integrator::Flame::c1
Set::Scalar c1
Definition: Flame.H:115
Newton.H
Integrator::Flame::TimeStepBegin
void TimeStepBegin(Set::Scalar a_time, int a_iter) override
Definition: Flame.cpp:354
Integrator::Flame::b_fit
Set::Scalar b_fit
Definition: Flame.H:124
Integrator::Flame::traction
Set::Scalar traction
Definition: Flame.H:152
Integrator::Flame::a_fit
Set::Scalar a_fit
Definition: Flame.H:124
Set.H
Integrator::Flame::x_len
Set::Scalar x_len
Definition: Flame.H:163
Integrator::Flame::alpha_mf
Set::Field< Set::Scalar > alpha_mf
Definition: Flame.H:73
Integrator::Flame::t_refinement_criterion
Set::Scalar t_refinement_criterion
Definition: Flame.H:85
Integrator::Flame::mdot_mf
Set::Field< Set::Scalar > mdot_mf
Definition: Flame.H:69
Integrator::Flame::n_htpb
Set::Scalar n_htpb
Definition: Flame.H:123
Voronoi.H
BC.H
IO::ParmParse
Definition: ParmParse.H:110
Integrator::Flame::heatflux_mf
Set::Field< Set::Scalar > heatflux_mf
Definition: Flame.H:74
Integrator::Flame::cp_htpb
Set::Scalar cp_htpb
Definition: Flame.H:132
Integrator::Flame::Parse
static void Parse(Flame &value, IO::ParmParse &pp)
Definition: Flame.cpp:27
Isotropic.H
Integrator::Flame::on
bool on
Definition: Flame.H:129
Integrator::Flame::thermal
struct Integrator::Flame::@3 thermal
Integrator::Flame::mob_ap
int mob_ap
Definition: Flame.H:116
Integrator::Flame::k_htpb
Set::Scalar k_htpb
Definition: Flame.H:131
Integrator::Flame::temps_mf
Set::Field< Set::Scalar > temps_mf
Definition: Flame.H:63
Integrator::Flame::arrhenius
struct Integrator::Flame::@2::@5 arrhenius
Integrator::Flame::b3
Set::Scalar b3
Definition: Flame.H:114
Integrator::Flame::pressure
struct Integrator::Flame::@2 pressure
Integrator::Flame::temp_old_mf
Set::Field< Set::Scalar > temp_old_mf
Definition: Flame.H:62
Integrator::Flame::E_htpb
Set::Scalar E_htpb
Definition: Flame.H:136
Integrator::Flame::dependency
int dependency
Definition: Flame.H:117
Integrator::Flame::modeling_ap
Set::Scalar modeling_ap
Definition: Flame.H:138
Integrator::Integrator::dt
amrex::Vector< amrex::Real > dt
Timesteps for each level of refinement.
Definition: Integrator.H:303
IC.H
Integrator::Flame::phi_refinement_criterion
Set::Scalar phi_refinement_criterion
Definition: Flame.H:83
Integrator::Flame::Initialize
void Initialize(int lev) override
Definition: Flame.cpp:240
Integrator::Flame::homogeneousSystem
int homogeneousSystem
Definition: Flame.H:93
Integrator::Flame::bc_psi
BC::BC< Set::Scalar > * bc_psi
Definition: Flame.H:166
Integrator::Flame::disperssion1
Set::Scalar disperssion1
Definition: Flame.H:142
Integrator::Flame::phirefinement
int phirefinement
Definition: Flame.H:153
Integrator::Flame::~Flame
virtual ~Flame()
Definition: Flame.H:42
Integrator::Flame::volume
Set::Scalar volume
Definition: Flame.H:157
Integrator::Flame::k_ap
Set::Scalar k_ap
Definition: Flame.H:131