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