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
18
19namespace Integrator
20{
21
22class Flame : virtual public Integrator::Integrator,
23 virtual public Base::Mechanics<Model::Solid::Finite::NeoHookeanPredeformed>
24{
25
27
28public:
29 static constexpr const char* name = "flame";
30
31 Flame();
33
34 static void Forbids(IO::ParmParse& pp);
35
36 static void Parse(Flame& value, IO::ParmParse& pp);
37
38 virtual ~Flame()
39 {
40 delete ic_eta;
41 delete ic_phi;
42 delete thermal.ic_temp;
43 delete ic_laser;
44 delete bc_eta;
45 delete bc_temp;
46 }
47
48protected:
49 void Initialize(int lev) override;
50 void TimeStepBegin(Set::Scalar a_time, int a_iter) override;
51 void TimeStepComplete(Set::Scalar a_time, int a_iter) override;
52 void Advance(int lev, Set::Scalar time, Set::Scalar dt) override;
53 void TagCellsForRefinement(int lev, amrex::TagBoxArray& tags, amrex::Real /*time*/, int /*ngrow*/) override;
54 void Regrid(int lev, Set::Scalar time) override;
55 void Integrate(int amrlev, Set::Scalar time, int step,
56 const amrex::MFIter& mfi, const amrex::Box& box) override;
57 void UpdateModel(int a_step, Set::Scalar a_time) override;
58private:
59
63
67
72
74
79
80 Set::Scalar phi_refinement_criterion = std::numeric_limits<Set::Scalar>::infinity();
86 bool plot_field = true;
88
89 // Phase field model variables
90 struct {
94 Set::Scalar w1 = NAN, w12 = NAN, w0 = NAN;
96 } pf;
97
98 // Thermal transport variables
99 struct {
100 bool on = 0;
101 Set::Scalar hc = NAN, w1 = NAN;
106
107 // Thermoelastic variables
108 struct {
109 int on = 0;
115
116 // Chamber state variables (not inputs)
117 struct {
118 // Integrated variables
122 // Intensive variables
125
126
127 // Propellant model
132};
133}
134
135#endif
Definition BC.H:42
Pure abstract IC object from which all other IC objects inherit.
Definition IC.H:23
Model::Propellant::Propellant< Model::Propellant::PowerLaw, Model::Propellant::FullFeedback, Model::Propellant::Homogenize > propellant
Definition Flame.H:131
Set::Scalar volume
Definition Flame.H:119
Set::Scalar min_eta
Definition Flame.H:95
Set::Scalar Telastic
Definition Flame.H:110
IC::IC< Set::Scalar > * ic_eta
Definition Flame.H:85
Set::Field< Set::Scalar > laser_mf
Definition Flame.H:73
virtual ~Flame()
Definition Flame.H:38
Set::Field< Set::Scalar > alpha_mf
Definition Flame.H:70
struct Integrator::Flame::@3 elastic
BC::BC< Set::Scalar > * bc_temp
Definition Flame.H:75
void UpdateModel(int a_step, Set::Scalar a_time) override
Definition Flame.cpp:266
Set::Scalar lambda
Definition Flame.H:92
Set::Scalar w1
Definition Flame.H:94
Set::Field< Set::Scalar > phi_mf
Definition Flame.H:68
Set::Field< Set::Scalar > temp_old_mf
Definition Flame.H:61
Set::Scalar small
Definition Flame.H:84
IC::IC< Set::Scalar > * ic_temp
Definition Flame.H:104
int variable_pressure
Definition Flame.H:87
Set::Scalar area
Definition Flame.H:120
void Regrid(int lev, Set::Scalar time) override
Definition Flame.cpp:568
Set::Scalar pressure
Definition Flame.H:123
model_type model_ap
Definition Flame.H:111
Set::Scalar w0
Definition Flame.H:94
void TimeStepComplete(Set::Scalar a_time, int a_iter) override
Definition Flame.cpp:342
static void Forbids(IO::ParmParse &pp)
Definition Flame.cpp:32
struct Integrator::Flame::@2 thermal
Set::Field< Set::Scalar > eta_mf
Definition Flame.H:64
Set::Scalar phi_refinement_criterion
Definition Flame.H:80
void TimeStepBegin(Set::Scalar a_time, int a_iter) override
Definition Flame.cpp:332
static void Parse(Flame &value, IO::ParmParse &pp)
Definition Flame.cpp:88
void Initialize(int lev) override
Definition Flame.cpp:231
Set::Scalar massflux
Definition Flame.H:121
struct Integrator::Flame::@1 pf
Set::Scalar kappa
Definition Flame.H:93
Set::Scalar traction
Definition Flame.H:112
Set::Scalar Tref
Definition Flame.H:102
Set::Field< Set::Scalar > temps_mf
Definition Flame.H:62
void Advance(int lev, Set::Scalar time, Set::Scalar dt) override
Definition Flame.cpp:354
Set::Scalar t_refinement_restriction
Definition Flame.H:83
static constexpr const char * name
Definition Flame.H:29
struct Integrator::Flame::@4 chamber
Set::Scalar t_refinement_criterion
Definition Flame.H:82
Set::Field< Set::Scalar > eta_old_mf
Definition Flame.H:65
Set::Scalar m_refinement_criterion
Definition Flame.H:81
Set::Scalar hc
Definition Flame.H:101
void Integrate(int amrlev, Set::Scalar time, int step, const amrex::MFIter &mfi, const amrex::Box &box) override
Definition Flame.cpp:577
model_type model_htpb
Definition Flame.H:111
Set::Scalar Tfluid
Definition Flame.H:103
BC::BC< Set::Scalar > * bc_eta
Definition Flame.H:76
IC::IC< Set::Scalar > * ic_laser
Definition Flame.H:78
void TagCellsForRefinement(int lev, amrex::TagBoxArray &tags, amrex::Real, int) override
Definition Flame.cpp:509
Set::Field< Set::Scalar > temp_mf
Definition Flame.H:60
Set::Scalar w12
Definition Flame.H:94
Set::Field< Set::Scalar > heatflux_mf
Definition Flame.H:71
bool plot_field
Definition Flame.H:86
Set::Field< Set::Scalar > mdot_mf
Definition Flame.H:66
IC::IC< Set::Scalar > * ic_phi
Definition Flame.H:77
Set::Field< Set::Scalar > field
Definition Flame.H:69
Set::Scalar eps
Definition Flame.H:91
std::vector< amrex::Box > box
Definition Integrator.H:448
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