21 #ifndef FUB_AMREX_IGNITE_DETONATION_HPP
22 #define FUB_AMREX_IGNITE_DETONATION_HPP
31 #include <boost/log/trivial.hpp>
32 #include <boost/serialization/access.hpp>
41 const std::map<std::string, pybind11::object>& vm,
42 const std::string&
prefix =
"ignite");
44 template <
typename Logger>
void Print(Logger& log)
const {
46 BOOST_LOG(log) << fmt::format(
"Ignite Detonation '{}' Options:",
prefix);
49 BOOST_LOG(log) << fmt::format(
" - temperature_low = {} [K]",
temperature_low);
50 BOOST_LOG(log) << fmt::format(
" - temperature_high = {} [K]",
temperature_high);
51 BOOST_LOG(log) << fmt::format(
" - ramp_width = {} [m]",
ramp_width);
52 BOOST_LOG(log) << fmt::format(
" - ignite_position = {} [m]",
ignite_position);
53 BOOST_LOG(log) << fmt::format(
" - ignite_interval = {} [s]",
ignite_interval.count());
54 BOOST_LOG(log) << fmt::format(
" - offset = {} [s]",
offset.count());
71 namespace boost::serialization {
73 template <
typename Archive>
75 unsigned int version);
84 static constexpr
int Rank = 1;
115 const ::amrex::IntVect& ngrow = ::amrex::IntVect(0));
135 friend class boost::serialization::access;
136 template <
typename Archive>
void serialize(Archive& ar,
unsigned int version);
139 template <
typename Archive>
150 namespace boost::serialization {
152 template <
typename Archive>
Definition: IgniteDetonation.hpp:82
static constexpr int Rank
Definition: IgniteDetonation.hpp:84
void SetNextIgnitionTimePoint(int level, Duration t) noexcept
Set a time point for an ignition on refinement level level.
Duration GetNextIgnitionTimePoint(int level) const noexcept
Returns the time points for the last ignition on refinement level level.
IgniteDetonation(const IdealGasMix< 1 > &eq, int max_refinement_level, const IgniteDetonationOptions &opts={})
Constructs the source term.
void ResetHierarchyConfiguration(std::shared_ptr< GriddingAlgorithm > grid)
Resets internal configuration.
Duration ComputeStableDt(int) const noexcept
Returns numeric_limits<double>::max()
void serialize(Archive &ar, unsigned int version)
Definition: IgniteDetonation.hpp:140
const IgniteDetonationOptions & GetOptions() const noexcept
Returns the options for this operator.
Definition: IgniteDetonation.hpp:118
std::vector< Duration > next_ignition_time_
Definition: IgniteDetonation.hpp:133
std::vector< Duration > next_ignition_time_backup_
Definition: IgniteDetonation.hpp:132
IdealGasMix< 1 > equation_
Definition: IgniteDetonation.hpp:130
Result< void, TimeStepTooLarge > AdvanceLevel(IntegratorContext &simulation_data, int level, Duration dt, const ::amrex::IntVect &ngrow=::amrex::IntVect(0))
Uses the scratch space of simulation_data to evaluate the criterion on the current equivalence ratio.
IgniteDetonationOptions options_
Definition: IgniteDetonation.hpp:131
This class is used by the HypebrolicSplitLevelIntegrator and delegates AMR related tasks to the AMReX...
Definition: AMReX/IntegratorContext.hpp:49
The amrex namespace.
Definition: AverageState.hpp:33
std::chrono::duration< double > Duration
Definition: Duration.hpp:31
boost::outcome_v2::result< T, E > Result
Definition: outcome.hpp:32
Definition: IgniteDetonation.hpp:37
double ramp_width
Definition: IgniteDetonation.hpp:63
double temperature_low
Definition: IgniteDetonation.hpp:61
std::string prefix
Definition: IgniteDetonation.hpp:58
IgniteDetonationOptions(const std::map< std::string, pybind11::object > &vm, const std::string &prefix="ignite")
Duration offset
Definition: IgniteDetonation.hpp:65
double temperature_high
Definition: IgniteDetonation.hpp:62
double ignite_position
Definition: IgniteDetonation.hpp:64
void Print(Logger &log) const
Definition: IgniteDetonation.hpp:44
double equivalence_ratio_criterium
Definition: IgniteDetonation.hpp:60
Duration ignite_interval
Definition: IgniteDetonation.hpp:66
double measurement_position
Definition: IgniteDetonation.hpp:59
IgniteDetonationOptions()=default