[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
physics_factory.h
1 #ifndef __PHYSICS_FACTORY__
2 #define __PHYSICS_FACTORY__
3 
4 #include "parameters/all_parameters.h"
5 #include "physics.h"
6 #include "model.h"
7 
8 namespace PHiLiP {
9 namespace Physics {
11 
13 template <int dim, int nstate, typename real>
15 {
16 public:
18  static std::shared_ptr< PhysicsBase<dim,nstate,real> >
19  create_Physics(const Parameters::AllParameters *const parameters_input,
20  std::shared_ptr< ModelBase<dim,nstate,real> > model_input = nullptr);
21 
23  static std::shared_ptr< PhysicsBase<dim,nstate,real> >
25  const Parameters::AllParameters *const parameters_input,
27  std::shared_ptr< ModelBase<dim,nstate,real> > model_input = nullptr);
28 
29 private:
31  static std::shared_ptr< PhysicsBase<dim,nstate,real> >
33  const Parameters::AllParameters *const parameters_input,
34  std::shared_ptr< ManufacturedSolutionFunction<dim,real> > manufactured_solution_function = nullptr,
35  std::shared_ptr< ModelBase<dim,nstate,real> > model_input = nullptr);
36 };
37 
38 
39 } // Physics namespace
40 } // PHiLiP namespace
41 
42 #endif
Manufactured solution used for grid studies to check convergence orders.
PartialDifferentialEquation
Possible Partial Differential Equations to solve.
Files for the baseline physics.
Definition: ADTypes.hpp:10
Physics model additional terms and equations to the baseline physics.
Definition: model.h:18
Main parameter class that contains the various other sub-parameter classes.
Create specified physics as PhysicsBase object.
static std::shared_ptr< PhysicsBase< dim, nstate, real > > create_Physics(const Parameters::AllParameters *const parameters_input, std::shared_ptr< ModelBase< dim, nstate, real > > model_input=nullptr)
Factory to return the correct physics given input file.
static std::shared_ptr< PhysicsBase< dim, nstate, real > > create_Physics_Model(const Parameters::AllParameters *const parameters_input, std::shared_ptr< ManufacturedSolutionFunction< dim, real > > manufactured_solution_function=nullptr, std::shared_ptr< ModelBase< dim, nstate, real > > model_input=nullptr)
Factory to return the correct physics model, i.e. when PDE_type==physics_model, given input file...