21 #ifndef _aspect_simulator_solver_stokes_matrix_free_global_coarsening_h
22 #define _aspect_simulator_solver_stokes_matrix_free_global_coarsening_h
35 #include <deal.II/multigrid/mg_transfer_global_coarsening.templates.h>
53 template <
int dim,
int velocity_degree>
78 std::string
name()
const override;
105 const bool solve_newton_system,
106 const double last_pressure_normalization_adjustment,
231 std::vector<std::shared_ptr<const Triangulation<dim, dim>>>
trias;
ObserverPointer< const Simulator< dim >, SimulatorAccess< dim > > simulator
StokesSolver::SolverOutputs solve(const LinearAlgebra::BlockSparseMatrix &system_matrix, const LinearAlgebra::BlockVector &system_rhs, const bool solve_newton_system, const double last_pressure_normalization_adjustment, LinearAlgebra::BlockVector &solution_vector) override
MGLevelObject< MatrixFreeStokesOperators::OperatorCellData< dim, GMGNumberType > > level_cell_data
MGLevelObject< DoFHandler< dim > > dofhandlers_v
MGLevelObject< GMGSchurComplementMatrixType > mg_matrices_Schur_complement
void build_preconditioner() override
MatrixFreeStokesOperators::OperatorCellData< dim, GMGNumberType > active_cell_data
void parse_parameters(ParameterHandler &prm) override
std::size_t get_constraint_memory_consumption() const override
StokesMatrixFreeHandlerGlobalCoarseningImplementation(Simulator< dim > &simulator, const Parameters< dim > ¶meters)
MGConstrainedDoFs mg_constrained_dofs_Schur_complement
void correct_stokes_rhs()
std::size_t get_dof_handler_memory_consumption() const override
std::vector< std::shared_ptr< MatrixFree< dim, double > > > matrix_free_objects
SchurComplementMatrixType Schur_complement_block_matrix
MGConstrainedDoFs mg_constrained_dofs_projection
MGLevelObject< MGTwoLevelTransfer< dim, ::LinearAlgebra::distributed::Vector< GMGNumberType > > > transfers_v
std::unique_ptr< GCMGTransferType< dim, GMGNumberType > > mg_transfer_A_block
ABlockMatrixType A_block_matrix
MGLevelObject< AffineConstraints< double > > constraints_p
std::vector< std::shared_ptr< const Triangulation< dim, dim > > > trias
MGLevelObject< GMGABlockMatrixType > mg_matrices_A_block
MGLevelObject< AffineConstraints< double > > constraints_v
BTBlockOperatorType BT_block
std::unique_ptr< GCMGTransferType< dim, GMGNumberType > > mg_transfer_Schur_complement
static void declare_parameters(ParameterHandler &prm)
MGLevelObject< DoFHandler< dim > > dofhandlers_p
MGConstrainedDoFs mg_constrained_dofs_A_block
MGLevelObject< DoFHandler< dim > > dofhandlers_projection
StokesMatrixType stokes_matrix
FESystem< dim > fe_projection
std::size_t get_cell_data_memory_consumption() const override
void evaluate_material_model()
~StokesMatrixFreeHandlerGlobalCoarseningImplementation() override=default
std::size_t get_mg_transfer_memory_consumption() const override
MGLevelObject< MGTwoLevelTransfer< dim, ::LinearAlgebra::distributed::Vector< GMGNumberType > > > transfers_p
void initialize() override
void setup_dofs() override
std::string name() const override