[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
dg_factory.hpp
1 #ifndef __DG_FACTORY_H__
2 #define __DG_FACTORY_H__
3 
4 #include "dg_base.hpp"
5 
6 namespace PHiLiP {
7 
9 
11 #if PHILIP_DIM==1 // dealii::parallel::distributed::Triangulation<dim> does not work for 1D
12 template <int dim, typename real, typename MeshType = dealii::Triangulation<dim>>
13 #else
14 template <int dim, typename real, typename MeshType = dealii::parallel::distributed::Triangulation<dim>>
15 #endif
16 class DGFactory
17 {
22  using Triangulation = MeshType;
23 public:
25 
26  static std::shared_ptr< DGBase<dim,real,MeshType> >
28  const Parameters::AllParameters *const parameters_input,
29  const unsigned int degree,
30  const unsigned int max_degree_input,
31  const unsigned int grid_degree_input,
32  const std::shared_ptr<Triangulation> triangulation_input);
33 
35  static std::shared_ptr< DGBase<dim,real,MeshType> >
37  const Parameters::AllParameters *const parameters_input,
38  const unsigned int degree,
39  const unsigned int max_degree_input,
40  const std::shared_ptr<Triangulation> triangulation_input);
41 
43  static std::shared_ptr< DGBase<dim,real,MeshType> >
45  const Parameters::AllParameters *const parameters_input,
46  const unsigned int degree,
47  const std::shared_ptr<Triangulation> triangulation_input);
48 };
49 
50 } // PHiLiP namespace
51 
52 #endif
Files for the baseline physics.
Definition: ADTypes.hpp:10
Main parameter class that contains the various other sub-parameter classes.
This class creates a new DGBase object.
Definition: dg_factory.hpp:16
static std::shared_ptr< DGBase< dim, real, MeshType > > create_discontinuous_galerkin(const Parameters::AllParameters *const parameters_input, const unsigned int degree, const unsigned int max_degree_input, const unsigned int grid_degree_input, const std::shared_ptr< Triangulation > triangulation_input)
Creates a derived object DG, but returns it as DGBase.
Definition: dg_factory.cpp:10
MeshType Triangulation
Definition: dg_factory.hpp:22