Template Class ReducedPoisson¶
Defined in File reduced_poisson.h
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 blockB, and reduced right-hand sideg.where:
Ais the bulk Poisson stiffness matrix assembled inassemble_poisson_system();Bis the reduced trace/projection operator assembled inReducedCoupling::assemble_coupling_matrix();gis the reduced right-hand side assembled inReducedCoupling::assemble_reduced_rhs().
Therefore,
ReducedPoissoncomputes a harmonic field in the bulk whose trace on the immersed interface matches, in the reduced modal sense defined byTensorProductSpace, 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.
-
void refine_and_transfer()¶
-
std::string output_solution() const¶
-
void output_results() const¶
-
void print_parameters() const¶