1 #include "parameters/all_parameters.h" 2 #include "parameters/parameters_artificial_dissipation.h" 3 #include <boost/preprocessor/seq/for_each.hpp> 4 #include <deal.II/base/tensor.h> 5 #include "artificial_dissipation_factory.h" 6 #include "artificial_dissipation.h" 10 template <
int dim,
int nspecies,
int nstate>
11 std::shared_ptr < ArtificialDissipationBase<dim,nspecies,nstate> >
16 if constexpr(nspecies==1) {
18 switch (arti_dissipation_type)
20 case artificial_dissipation_enum::laplacian:
22 return std::make_shared<LaplacianArtificialDissipation<dim,nspecies,nstate>>(parameters_input);
26 case artificial_dissipation_enum::physical:
28 if constexpr(dim+2==nstate)
30 std::cout<<
"Physical Artifical Dissipation pointer created"<<std::endl;
31 return std::make_shared<PhysicalArtificialDissipation<dim,nspecies,nstate>>(parameters_input);
36 case artificial_dissipation_enum::enthalpy_conserving_laplacian:
38 if constexpr(dim+2==nstate)
40 std::cout<<
"Enthalpy Conserving Laplacian Artifical Dissipation pointer created"<<std::endl;
41 return std::make_shared<EnthalpyConservingArtificialDissipation<dim,nspecies,nstate>>(parameters_input);
49 assert(0==1 &&
"Cannot create artificial dissipation due to an invalid artificial dissipation type specified for the problem");
55 #define POSSIBLE_NSTATE (1)(2)(3)(4)(5)(6) 58 #define INSTANTIATE_ADFactory(r, data, nstate) \ 59 template class ArtificialDissipationFactory <PHILIP_DIM, PHILIP_SPECIES, nstate>; 60 BOOST_PP_SEQ_FOR_EACH(INSTANTIATE_ADFactory, _, POSSIBLE_NSTATE)
static std::shared_ptr< ArtificialDissipationBase< dim, nspecies, nstate > > create_artificial_dissipation(const Parameters::AllParameters *const parameters_input)
Creates artificial dissipation type depending on input parameters.
Files for the baseline physics.
Main parameter class that contains the various other sub-parameter classes.
ArtificialDissipationType
Specified choices of artificial dissipation type.
ArtificialDissipationType artificial_dissipation_type
Selected artificial dissipation type specified in the input.
Creates artificial dissipation pointer.
ArtificialDissipationParam artificial_dissipation_param
Contains parameters for artificial dissipation.