22#ifndef EXADG_INCOMPRESSIBLE_NAVIER_STOKES_SPATIAL_DISCRETIZATION_CREATE_OPERATOR_H_
23#define EXADG_INCOMPRESSIBLE_NAVIER_STOKES_SPATIAL_DISCRETIZATION_CREATE_OPERATOR_H_
26#include <exadg/incompressible_navier_stokes/spatial_discretization/operator_consistent_splitting.h>
27#include <exadg/incompressible_navier_stokes/spatial_discretization/operator_coupled.h>
28#include <exadg/incompressible_navier_stokes/spatial_discretization/operator_dual_splitting.h>
29#include <exadg/incompressible_navier_stokes/spatial_discretization/operator_pressure_correction.h>
30#include <exadg/incompressible_navier_stokes/spatial_discretization/spatial_operator_base.h>
39template<
int dim,
typename Number>
40std::shared_ptr<SpatialOperatorBase<dim, Number>>
41create_operator(std::shared_ptr<Grid<dim>
const> grid,
42 std::shared_ptr<dealii::Mapping<dim>
const> mapping,
43 std::shared_ptr<MultigridMappings<dim, Number>>
const multigrid_mappings,
47 std::string
const & field,
48 MPI_Comm
const & mpi_comm)
50 std::shared_ptr<SpatialOperatorBase<dim, Number>> pde_operator;
53 if(parameters.temporal_discretization == TemporalDiscretization::BDFCoupledSolution)
55 pde_operator = std::make_shared<OperatorCoupled<dim, Number>>(grid,
64 else if(parameters.temporal_discretization == TemporalDiscretization::BDFDualSplitting)
66 pde_operator = std::make_shared<OperatorDualSplitting<dim, Number>>(grid,
75 else if(parameters.temporal_discretization == TemporalDiscretization::BDFConsistentSplitting)
77 pde_operator = std::make_shared<OperatorConsistentSplitting<dim, Number>>(grid,
86 else if(parameters.temporal_discretization == TemporalDiscretization::BDFPressureCorrection or
89 parameters.temporal_discretization ==
90 TemporalDiscretization::InterpolateAnalyticalSolution)
92 pde_operator = std::make_shared<OperatorPressureCorrection<dim, Number>>(grid,
103 AssertThrow(
false, dealii::ExcMessage(
"Not implemented."));
Definition parameters.h:46
Definition boundary_descriptor.h:240
Definition field_functions.h:31