[P]arallel [Hi]gh-order [Li]brary for [P]DEs  Latest
Parallel High-Order Library for PDEs through hp-adaptive Discontinuous Galerkin methods
PHiLiP::GridRefinement::GridRefinementFactory< dim, nstate, real, MeshType > Class Template Reference

Grid Refinement Class Factory. More...

#include <grid_refinement.h>

Collaboration diagram for PHiLiP::GridRefinement::GridRefinementFactory< dim, nstate, real, MeshType >:

Static Public Member Functions

static std::shared_ptr< GridRefinementBase< dim, nstate, real, MeshType > > create_GridRefinement (PHiLiP::Parameters::GridRefinementParam gr_param, std::shared_ptr< PHiLiP::Adjoint< dim, nstate, real, MeshType > > adj, std::shared_ptr< PHiLiP::Physics::PhysicsBase< dim, nstate, real > > physics_input)
 Construct grid refinement class based on adjoint and physics. More...
 
static std::shared_ptr< GridRefinementBase< dim, nstate, real, MeshType > > create_GridRefinement (PHiLiP::Parameters::GridRefinementParam gr_param, std::shared_ptr< PHiLiP::DGBase< dim, real, MeshType > > dg, std::shared_ptr< PHiLiP::Physics::PhysicsBase< dim, nstate, real > > physics, std::shared_ptr< PHiLiP::Functional< dim, nstate, real, MeshType > > functional)
 Construct grid refinement class based on dg, physics and functional. More...
 
static std::shared_ptr< GridRefinementBase< dim, nstate, real, MeshType > > create_GridRefinement (PHiLiP::Parameters::GridRefinementParam gr_param, std::shared_ptr< PHiLiP::DGBase< dim, real, MeshType > > dg, std::shared_ptr< PHiLiP::Physics::PhysicsBase< dim, nstate, real > > physics)
 Construct grid refinement class based on dg and physics. More...
 
static std::shared_ptr< GridRefinementBase< dim, nstate, real, MeshType > > create_GridRefinement (PHiLiP::Parameters::GridRefinementParam gr_param, std::shared_ptr< PHiLiP::DGBase< dim, real, MeshType > > dg)
 Construct grid refinement class based on dg only. More...
 

Detailed Description

template<int dim, int nstate, typename real, typename MeshType = dealii::parallel::distributed::Triangulation<dim>>
class PHiLiP::GridRefinement::GridRefinementFactory< dim, nstate, real, MeshType >

Grid Refinement Class Factory.

Contains various factory functions for generating different grid refinement classes dependant on what input information is provided. For example, certain grid refinement operations will need access to additional infomation such as the adjoint, or problem physics in addition to discontinuous galerkin formulation. If a more stringent initial call is made but only a simple refinement operation is needed, the factory calls will chain to provide the proper output.

The choice of refinement object is made based on the selected refinement_method and error_indicator from the PHiLiP::Parameters::GridRefinementParam object needed for each call.

Note: This class templated on the mesh type as anisotropic fixed-fraction splitting is not availible in parralel at this time.

Definition at line 221 of file grid_refinement.h.

Member Function Documentation

◆ create_GridRefinement() [1/4]

template<int dim, int nstate, typename real , typename MeshType >
std::shared_ptr< GridRefinementBase< dim, nstate, real, MeshType > > PHiLiP::GridRefinement::GridRefinementFactory< dim, nstate, real, MeshType >::create_GridRefinement ( PHiLiP::Parameters::GridRefinementParam  gr_param,
std::shared_ptr< PHiLiP::Adjoint< dim, nstate, real, MeshType > >  adj,
std::shared_ptr< PHiLiP::Physics::PhysicsBase< dim, nstate, real > >  physics_input 
)
static

Construct grid refinement class based on adjoint and physics.

Provides access to all refinement types. Needs to be called for adjoint_based error indicators. Adjoint object also provides access to dg and functional objects.

Definition at line 351 of file grid_refinement.cpp.

◆ create_GridRefinement() [2/4]

template<int dim, int nstate, typename real , typename MeshType >
std::shared_ptr< GridRefinementBase< dim, nstate, real, MeshType > > PHiLiP::GridRefinement::GridRefinementFactory< dim, nstate, real, MeshType >::create_GridRefinement ( PHiLiP::Parameters::GridRefinementParam  gr_param,
std::shared_ptr< PHiLiP::DGBase< dim, real, MeshType > >  dg,
std::shared_ptr< PHiLiP::Physics::PhysicsBase< dim, nstate, real > >  physics,
std::shared_ptr< PHiLiP::Functional< dim, nstate, real, MeshType > >  functional 
)
static

Construct grid refinement class based on dg, physics and functional.

Provides access to non-adjoint based method. However, allows the functional object to still be passed to the grid refinement class for tracking the goal-oriented error convergence when working with feature-based refinement types (if an adjoint-object itself is not availible).

Definition at line 403 of file grid_refinement.cpp.

◆ create_GridRefinement() [3/4]

template<int dim, int nstate, typename real , typename MeshType >
std::shared_ptr< GridRefinementBase< dim, nstate, real, MeshType > > PHiLiP::GridRefinement::GridRefinementFactory< dim, nstate, real, MeshType >::create_GridRefinement ( PHiLiP::Parameters::GridRefinementParam  gr_param,
std::shared_ptr< PHiLiP::DGBase< dim, real, MeshType > >  dg,
std::shared_ptr< PHiLiP::Physics::PhysicsBase< dim, nstate, real > >  physics 
)
static

Construct grid refinement class based on dg and physics.

Provides access to feature-based (hessian_based) error indicators and exact error-based refinement methods using the manufactured solution from the physics object.

Definition at line 447 of file grid_refinement.cpp.

◆ create_GridRefinement() [4/4]

template<int dim, int nstate, typename real , typename MeshType >
std::shared_ptr< GridRefinementBase< dim, nstate, real, MeshType > > PHiLiP::GridRefinement::GridRefinementFactory< dim, nstate, real, MeshType >::create_GridRefinement ( PHiLiP::Parameters::GridRefinementParam  gr_param,
std::shared_ptr< PHiLiP::DGBase< dim, real, MeshType > >  dg 
)
static

Construct grid refinement class based on dg only.

Provides access to basic uniform refinement methods and residual based refinement methods (not yet implemented).

Definition at line 490 of file grid_refinement.cpp.


The documentation for this class was generated from the following files: