Reduced Lagrange Multipliers
 
Loading...
Searching...
No Matches
PoissonProblem< dim, spacedim > Class Template Reference

#include <laplacian.h>

Inheritance diagram for PoissonProblem< dim, spacedim >:
EnableObserverPointer

Public Member Functions

 PoissonProblem (const ProblemParameters< dim, spacedim > &par)
 
void make_grid ()
 
void setup_fe ()
 
void setup_dofs ()
 
void assemble_poisson_system ()
 
void assemble_coupling ()
 
void run ()
 
IndexSet assemble_coupling_sparsity (DynamicSparsityPattern &dsp) const
 
void solve ()
 
void refine_and_transfer ()
 
std::string output_solution () const
 
void output_results () const
 
void print_parameters () const
 
- Public Member Functions inherited from EnableObserverPointer
 EnableObserverPointer ()
 
 EnableObserverPointer (const EnableObserverPointer &)
 
 EnableObserverPointer (EnableObserverPointer &&) noexcept
 
virtual ~EnableObserverPointer ()
 
EnableObserverPointeroperator= (const EnableObserverPointer &)
 
EnableObserverPointeroperator= (EnableObserverPointer &&) noexcept
 
void serialize (Archive &ar, const unsigned int version)
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 
unsigned int n_subscriptions () const
 
void list_subscribers (StreamType &stream) const
 
void list_subscribers () const
 

Private Types

using VectorType = LA::MPI::Vector
 
using BlockVectorType = LA::MPI::BlockVector
 

Private Attributes

const ProblemParameters< dim, spacedim > & par
 
MPI_Comm mpi_communicator
 
ConditionalOStream pcout
 
TimerOutput computing_timer
 
parallel::distributed::Triangulation< spacedim > tria
 
std::unique_ptr< FiniteElement< spacedim > > fe
 
Inclusions< spacedim > inclusions
 
std::unique_ptr< Quadrature< spacedim > > quadrature
 
DoFHandler< spacedim > dh
 
std::vector< IndexSetowned_dofs
 
std::vector< IndexSetrelevant_dofs
 
AffineConstraints< double > constraints
 
AffineConstraints< double > inclusion_constraints
 
LA::MPI::SparseMatrix coupling_matrix
 
LA::MPI::SparseMatrix inclusion_matrix
 
MappingQ< spacedim > mapping
 
LA::MPI::SparseMatrix stiffness_matrix
 
BlockVectorType solution
 
BlockVectorType locally_relevant_solution
 
BlockVectorType system_rhs
 
std::vector< std::vector< BoundingBox< spacedim > > > global_bounding_boxes
 
unsigned int cycle = 0
 

Additional Inherited Members

- Static Public Member Functions inherited from EnableObserverPointer
static ::ExceptionBaseExcInUse (int arg1, std::string arg2, std::string arg3)
 
static ::ExceptionBaseExcNoSubscriber (std::string arg1, std::string arg2)
 

Detailed Description

template<int dim, int spacedim = dim>
class PoissonProblem< dim, spacedim >

Definition at line 192 of file laplacian.h.

Member Typedef Documentation

◆ BlockVectorType

template<int dim, int spacedim = dim>
using PoissonProblem< dim, spacedim >::BlockVectorType = LA::MPI::BlockVector
private

Definition at line 271 of file laplacian.h.

◆ VectorType

template<int dim, int spacedim = dim>
using PoissonProblem< dim, spacedim >::VectorType = LA::MPI::Vector
private

Definition at line 270 of file laplacian.h.

Constructor & Destructor Documentation

◆ PoissonProblem()

template<int dim, int spacedim>
PoissonProblem< dim, spacedim >::PoissonProblem ( const ProblemParameters< dim, spacedim > & par)

Definition at line 43 of file laplacian.cc.

References computing_timer, dh, mapping, mpi_communicator, par, pcout, and tria.

Member Function Documentation

◆ assemble_coupling()

◆ assemble_coupling_sparsity()

template<int dim, int spacedim>
IndexSet PoissonProblem< dim, spacedim >::assemble_coupling_sparsity ( DynamicSparsityPattern & dsp) const

Builds coupling sparsity, and returns locally relevant inclusion dofs.

Definition at line 353 of file laplacian.cc.

References IndexSet::add_indices(), computing_timer, constraints, dh, fe, inclusion_constraints, and inclusions.

Referenced by setup_dofs().

◆ assemble_poisson_system()

◆ make_grid()

template<int dim, int spacedim>
void PoissonProblem< dim, spacedim >::make_grid ( )

Definition at line 118 of file laplacian.cc.

References GridGenerator::generate_from_name_and_arguments(), par, pcout, read_grid_and_cad_files(), and tria.

Referenced by run().

◆ output_results()

template<int dim, int spacedim>
void PoissonProblem< dim, spacedim >::output_results ( ) const

Definition at line 788 of file laplacian.cc.

References cycle, inclusions, output_solution(), par, and DataOutBase::write_pvd_record().

Referenced by run().

◆ output_solution()

◆ print_parameters()

template<int dim, int spacedim>
void PoissonProblem< dim, spacedim >::print_parameters ( ) const

Definition at line 815 of file laplacian.cc.

References Utilities::dim_string(), par, pcout, and ParameterHandler::Short.

Referenced by run().

◆ refine_and_transfer()

◆ run()

◆ setup_dofs()

◆ setup_fe()

template<int dim, int spacedim>
void PoissonProblem< dim, spacedim >::setup_fe ( )

Definition at line 139 of file laplacian.cc.

References computing_timer, fe, par, and quadrature.

Referenced by run().

◆ solve()

Member Data Documentation

◆ computing_timer

template<int dim, int spacedim = dim>
TimerOutput PoissonProblem< dim, spacedim >::computing_timer
mutableprivate

◆ constraints

template<int dim, int spacedim = dim>
AffineConstraints<double> PoissonProblem< dim, spacedim >::constraints
private

◆ coupling_matrix

template<int dim, int spacedim = dim>
LA::MPI::SparseMatrix PoissonProblem< dim, spacedim >::coupling_matrix
private

Definition at line 252 of file laplacian.h.

Referenced by assemble_coupling(), assemble_poisson_system(), setup_dofs(), and solve().

◆ cycle

template<int dim, int spacedim = dim>
unsigned int PoissonProblem< dim, spacedim >::cycle = 0
private

Definition at line 278 of file laplacian.h.

Referenced by output_results(), output_solution(), and run().

◆ dh

template<int dim, int spacedim = dim>
DoFHandler<spacedim> PoissonProblem< dim, spacedim >::dh
private

◆ fe

template<int dim, int spacedim = dim>
std::unique_ptr<FiniteElement<spacedim> > PoissonProblem< dim, spacedim >::fe
private

◆ global_bounding_boxes

template<int dim, int spacedim = dim>
std::vector<std::vector<BoundingBox<spacedim> > > PoissonProblem< dim, spacedim >::global_bounding_boxes
private

Definition at line 277 of file laplacian.h.

◆ inclusion_constraints

template<int dim, int spacedim = dim>
AffineConstraints<double> PoissonProblem< dim, spacedim >::inclusion_constraints
private

Definition at line 250 of file laplacian.h.

Referenced by assemble_coupling(), assemble_coupling_sparsity(), setup_dofs(), and solve().

◆ inclusion_matrix

template<int dim, int spacedim = dim>
LA::MPI::SparseMatrix PoissonProblem< dim, spacedim >::inclusion_matrix
private

Definition at line 253 of file laplacian.h.

Referenced by assemble_coupling(), setup_dofs(), and solve().

◆ inclusions

template<int dim, int spacedim = dim>
Inclusions<spacedim> PoissonProblem< dim, spacedim >::inclusions
private

◆ locally_relevant_solution

template<int dim, int spacedim = dim>
BlockVectorType PoissonProblem< dim, spacedim >::locally_relevant_solution
private

Definition at line 275 of file laplacian.h.

Referenced by output_solution(), refine_and_transfer(), run(), setup_dofs(), and solve().

◆ mapping

template<int dim, int spacedim = dim>
MappingQ<spacedim> PoissonProblem< dim, spacedim >::mapping
private

Definition at line 254 of file laplacian.h.

Referenced by PoissonProblem(), run(), and setup_dofs().

◆ mpi_communicator

template<int dim, int spacedim = dim>
MPI_Comm PoissonProblem< dim, spacedim >::mpi_communicator
private

Definition at line 237 of file laplacian.h.

Referenced by output_solution(), PoissonProblem(), setup_dofs(), and solve().

◆ owned_dofs

template<int dim, int spacedim = dim>
std::vector<IndexSet> PoissonProblem< dim, spacedim >::owned_dofs
private

Definition at line 246 of file laplacian.h.

Referenced by setup_dofs(), and solve().

◆ par

template<int dim, int spacedim = dim>
const ProblemParameters<dim, spacedim>& PoissonProblem< dim, spacedim >::par
private

◆ pcout

template<int dim, int spacedim = dim>
ConditionalOStream PoissonProblem< dim, spacedim >::pcout
private

◆ quadrature

template<int dim, int spacedim = dim>
std::unique_ptr<Quadrature<spacedim> > PoissonProblem< dim, spacedim >::quadrature
private

Definition at line 243 of file laplacian.h.

Referenced by assemble_poisson_system(), and setup_fe().

◆ relevant_dofs

template<int dim, int spacedim = dim>
std::vector<IndexSet> PoissonProblem< dim, spacedim >::relevant_dofs
private

Definition at line 247 of file laplacian.h.

Referenced by setup_dofs(), and solve().

◆ solution

template<int dim, int spacedim = dim>
BlockVectorType PoissonProblem< dim, spacedim >::solution
private

Definition at line 274 of file laplacian.h.

Referenced by refine_and_transfer(), setup_dofs(), and solve().

◆ stiffness_matrix

template<int dim, int spacedim = dim>
LA::MPI::SparseMatrix PoissonProblem< dim, spacedim >::stiffness_matrix
private

Definition at line 269 of file laplacian.h.

Referenced by assemble_coupling(), assemble_poisson_system(), setup_dofs(), and solve().

◆ system_rhs

template<int dim, int spacedim = dim>
BlockVectorType PoissonProblem< dim, spacedim >::system_rhs
private

Definition at line 276 of file laplacian.h.

Referenced by assemble_coupling(), assemble_poisson_system(), setup_dofs(), and solve().

◆ tria

template<int dim, int spacedim = dim>
parallel::distributed::Triangulation<spacedim> PoissonProblem< dim, spacedim >::tria
private

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