19#ifndef dealii_distributed_lagrange_multiplier_h
20#define dealii_distributed_lagrange_multiplier_h
34#define FORCE_USE_OF_TRILINOS
37#if defined(DEAL_II_WITH_PETSC) && !defined(DEAL_II_PETSC_WITH_COMPLEX) && \
38 !(defined(DEAL_II_WITH_TRILINOS) && defined(FORCE_USE_OF_TRILINOS))
39 using namespace dealii::LinearAlgebraPETSc;
41#elif defined(DEAL_II_WITH_TRILINOS)
42 using namespace dealii::LinearAlgebraTrilinos;
44# error DEAL_II_WITH_PETSC or DEAL_II_WITH_TRILINOS required
86#ifdef MATRIX_FREE_PATH
109#ifdef DEAL_II_WITH_OPENCASCADE
110# include <TopoDS.hxx>
118template <
int dim,
int spacedim = dim>
149template <
int dim,
int spacedim>
152 ,
rhs(
"/Immersed Problem/Right hand side")
153 ,
bc(
"/Immersed Problem/Dirichlet boundary conditions")
184 this->
prm.enter_subsection(
"Error");
186 this->
prm.leave_subsection();
191template <
int dim,
int spacedim = dim>
202#ifndef MATRIX_FREE_PATH
241 std::unique_ptr<FiniteElement<spacedim>>
fe;
255#ifdef MATRIX_FREE_PATH
258 std::unique_ptr<CouplingOperator<spacedim, double, 1>> coupling_operator;
ParameterAcceptor(const std::string §ion_name="")
static ParameterHandler prm
void enter_subsection(const std::string &subsection)
void add_parameter(const std::string &entry, ParameterType ¶meter, const std::string &documentation="", ParameterHandler &prm_=prm, const Patterns::PatternBase &pattern=*Patterns::Tools::Convert< ParameterType >::to_pattern())
Class for handling inclusions in an immersed boundary method.
DoFHandler< spacedim > dh
Inclusions< spacedim > inclusions
AffineConstraints< double > inclusion_constraints
LA::MPI::SparseMatrix inclusion_matrix
std::unique_ptr< FiniteElement< spacedim > > fe
LA::MPI::SparseMatrix coupling_matrix
LA::MPI::BlockVector BlockVectorType
PoissonProblem(const ProblemParameters< dim, spacedim > &par)
BlockVectorType system_rhs
const ProblemParameters< dim, spacedim > & par
void output_results() const
std::unique_ptr< Quadrature< spacedim > > quadrature
LA::MPI::SparseMatrix stiffness_matrix
void refine_and_transfer()
std::vector< std::vector< BoundingBox< spacedim > > > global_bounding_boxes
LA::MPI::Vector VectorType
parallel::distributed::Triangulation< spacedim > tria
BlockVectorType locally_relevant_solution
TimerOutput computing_timer
MPI_Comm mpi_communicator
std::string output_solution() const
AffineConstraints< double > constraints
MappingQ< spacedim > mapping
std::vector< IndexSet > owned_dofs
void print_parameters() const
void assemble_poisson_system()
std::vector< IndexSet > relevant_dofs
IndexSet assemble_coupling_sparsity(DynamicSparsityPattern &dsp) const
ParameterAcceptorProxy< ReductionControl > outer_control
ParameterAcceptorProxy< Functions::ParsedFunction< spacedim > > bc
std::string arguments_for_grid
double refinement_fraction
ParameterAcceptorProxy< Functions::ParsedFunction< spacedim > > rhs
ParameterAcceptorProxy< ReductionControl > inner_control
ParsedConvergenceTable convergence_table
bool output_results_before_solving
double coarsening_fraction
unsigned int initial_refinement
std::string output_directory
std::string refinement_strategy
std::list< types::boundary_id > dirichlet_ids
unsigned int n_refinement_cycles
EnableObserverPointer Subscriptor