Template Class ReducedPoisson

Inheritance Relationships

Base Type

  • public dealii::EnableObserverPointer

Class Documentation

template<int dim, int spacedim = dim, int reduced_dim = 1, int cross_section_dim = 2>
class ReducedPoisson : public dealii::EnableObserverPointer

Solver for a Poisson problem in a bulk domain coupled to a reduced Lagrange-multiplier space supported on an immersed tubular interface.

The bulk unknown is a scalar field on the background domain and the reduced unknown is a multiplier on the swept interface. The constraint is imposed in the selected transverse modes rather than pointwise on the entire interface. The reduced geometry, basis, and right-hand side are configured through reduced_coupling_parameters.

After discretization, the class solves a saddle-point system with bulk stiffness block A, reduced trace/projection block B, and reduced right-hand side g.

where:

Therefore, ReducedPoisson computes a harmonic field in the bulk whose trace on the immersed interface matches, in the reduced modal sense defined by TensorProductSpace, the prescribed lower-dimensional data.

Public Functions

ReducedPoisson(const ReducedPoissonParameters<spacedim, reduced_dim, cross_section_dim> &par)
void make_grid()
void setup_fe()
void setup_dofs()
void assemble_poisson_system()
void assemble_coupling_system()

Assemble the reduced coupling matrix and right-hand side.

void run()
void solve()
unsigned int n_reduced_dofs() const

Return the number of reduced multiplier degrees of freedom.

double coupling_matrix_frobenius_norm() const

Return the communicator-global Frobenius norm of the assembled bulk/reduced coupling.

double bulk_solution_l2_norm() const

Return the communicator-global bulk solution L2 norm from the most recent solve.

double multiplier_solution_l2_norm() const

Return the communicator-global multiplier solution L2 norm from the most recent solve.

bool bulk_solution_is_finite() const

Check that the bulk solution norm is finite.

bool multiplier_solution_is_finite() const

Check that the multiplier solution norm is finite.

inline const DoFHandler<spacedim> &bulk_dof_handler() const

Native read-only data for independent discretization comparisons.

template<int representative_dimension = reduced_dim, std::enable_if_t<(representative_dimension > 0), int> = 0>
inline const auto &representative_dof_handler() const
inline const LA::MPI::SparseMatrix &assembled_multiplier_load_matrix() const
inline const LA::MPI::SparseMatrix &assembled_coupling() const

Compatibility name for assembled_multiplier_load_matrix().

inline double multiplier_load_matrix_frobenius_norm() const

Communicator-global Frobenius norm of the multiplier load matrix.

inline const auto &assembled_bulk() const
inline const auto &bulk_rhs() const
inline const LA::MPI::SparseMatrix &assembled_outside_mass() const
inline const auto &bulk_values() const
inline const auto &modal_values() const
inline const auto &modal_rhs() const
void refine_and_transfer()
std::string output_solution() const
void output_results() const
void print_parameters() const