16 #ifndef fsi_lac_initializer_h
17 #define fsi_lac_initializer_h
34 const std::vector<dealii::types::global_dof_index> &
dofs_per_block,
35 const std::vector<dealii::IndexSet> &
owned,
36 const std::vector<dealii::IndexSet> &
relevant,
37 const MPI_Comm &
comm = MPI_COMM_WORLD)
105 template <
int dim,
int spacedim>
107 operator()(dealii::TrilinosWrappers::BlockSparsityPattern &s,
108 const dealii::DoFHandler<dim, spacedim> &dh,
109 const dealii::AffineConstraints<double> &cm,
110 const dealii::Table<2, dealii::DoFTools::Coupling> &coupling)
119 dealii::Utilities::MPI::this_mpi_process(
comm));
126 template <
int dim,
int spacedim>
129 const dealii::DoFHandler<dim, spacedim> &dh,
130 const dealii::AffineConstraints<double> &cm,
131 const dealii::Table<2, dealii::DoFTools::Coupling> &coupling)
134 std::make_unique<dealii::BlockDynamicSparsityPattern>(
dofs_per_block,
149 matrix.reinit(sparsity);
160 matrix.reinit(sparsity);
181 std::unique_ptr<dealii::BlockDynamicSparsityPattern>
dsp;
191 const std::vector<dealii::IndexSet> &
owned;
213 const MPI_Comm &
comm = MPI_COMM_WORLD,
303 template <
int dim,
int spacedim>
306 const dealii::DoFHandler<dim, spacedim> &dh,
307 const dealii::AffineConstraints<double> &cm,
308 const dealii::Table<2, dealii::DoFTools::Coupling> &coupling)
317 dealii::Utilities::MPI::this_mpi_process(
comm));
324 template <
int dim,
int spacedim>
327 const dealii::DoFHandler<dim, spacedim> &dh,
328 const dealii::AffineConstraints<double> &cm,
329 const dealii::Table<2, dealii::DoFTools::Coupling> &coupling)
332 std::make_unique<dealii::DynamicSparsityPattern>(
owned_rows.
size(),
347 matrix.reinit(sparsity);
358 matrix.reinit(sparsity);
378 std::unique_ptr<dealii::DynamicSparsityPattern>
dsp;
void reinit(const unsigned int n_blocks, const size_type block_size=0, const bool omit_zeroing_entries=false)
void reinit(const MPI_Comm communicator, const size_type N, const size_type locally_owned_size, const bool omit_zeroing_entries=false)
void reinit(const std::vector< IndexSet > ¶llel_partitioning, const MPI_Comm communicator=MPI_COMM_WORLD, const bool omit_zeroing_entries=false)
void reinit(const Vector &v, const bool omit_zeroing_entries=false, const bool allow_different_maps=false)
virtual void reinit(const size_type N, const bool omit_zeroing_entries=false)
General class, used to initialize different types of block vectors, block atrices and block sparsity ...
void operator()(const LAPETSc::BlockSparsityPattern &, LAPETSc::BlockSparseMatrix &matrix)
Initialize a PETSc matrix.
BlockInitializer(const std::vector< types::global_dof_index > &dofs_per_block, const std::vector< IndexSet > &owned, const std::vector< IndexSet > &relevant, const MPI_Comm &comm=MPI_COMM_WORLD)
void operator()(const LABlockSparsityPattern &sparsity, LABlockSparseMatrix &matrix)
Initialize a deal.II matrix.
void operator()(LAPETSc::BlockVector &v, bool fast=false)
Initialize a non ghosted TrilinosWrappers::MPI::BlockVector.
void ghosted(LABlockVector &v, bool fast=false)
Initiale a ghosted BlockVector<double>.
void operator()(BlockSparsityPattern &s, const DoFHandler< dim, spacedim > &dh, const AffineConstraints< double > &cm, const Table< 2, DoFTools::Coupling > &coupling)
Initialize a Deal.II Sparsity Pattern.
void ghosted(LATrilinos::BlockVector &v, bool fast=false)
Initialize a ghosted TrilinosWrappers::MPI::BlockVector.
const MPI_Comm & comm
MPI Communicator.
void operator()(LABlockVector &v, bool fast=false)
Initialize a serial BlockVector<double>.
const std::vector< IndexSet > & relevant
Relevant dofs per block.
void operator()(TrilinosWrappers::BlockSparsityPattern &s, const DoFHandler< dim, spacedim > &dh, const AffineConstraints< double > &cm, const Table< 2, DoFTools::Coupling > &coupling)
Initialize a Trilinos Sparsity Pattern.
const std::vector< types::global_dof_index > & dofs_per_block
Dofs per block.
void operator()(LATrilinos::BlockVector &v, bool fast=false)
Initialize a non ghosted TrilinosWrappers::MPI::BlockVector.
void operator()(const LATrilinos::BlockSparsityPattern &sparsity, LATrilinos::BlockSparseMatrix &matrix)
Initialize a Trilinos matrix.
std::unique_ptr< BlockDynamicSparsityPattern > dsp
The dynamic sparisty pattern.
const std::vector< IndexSet > & owned
Owned dofs per block.
void ghosted(LAPETSc::BlockVector &v, bool fast=false)
Initialize a ghosted TrilinosWrappers::MPI::BlockVector.
General class, used to initialize different types of block vectors, block atrices and block sparsity ...
void ghosted(LATrilinos::Vector &v, bool fast=false)
Initialize a ghosted TrilinosWrappers::MPI::Vector.
std::unique_ptr< DynamicSparsityPattern > dsp
The dynamic sparisty pattern.
const IndexSet relevant_columns
const IndexSet relevant_rows
void operator()(LAVector &v, bool fast=false)
Initialize a serial BlockVector<double>.
void ghosted(LAPETSc::Vector &v, bool fast=false)
Initialize a ghosted TrilinosWrappers::MPI::Vector.
void operator()(LAPETSc::Vector &v, bool fast=false)
Initialize a non ghosted TrilinosWrappers::MPI::Vector.
Initializer(const IndexSet &owned_rows, const IndexSet &relevant_rows, const MPI_Comm &comm=MPI_COMM_WORLD, const IndexSet &owned_columns=IndexSet(), const IndexSet &relevant_columns=IndexSet())
const IndexSet owned_columns
Relevant dofs.
void operator()(LATrilinos::Vector &v, bool fast=false)
Initialize a non ghosted TrilinosWrappers::MPI::BlockVector.
void ghosted(LAVector &v, bool fast=false)
Initiale a ghosted BlockVector<double>.
void operator()(const LAPETSc::SparsityPattern &sparsity, LAPETSc::SparseMatrix &matrix)
Initialize a PETSc matrix.
void operator()(TrilinosWrappers::SparsityPattern &s)
Initialize a Trilinos Sparsity Pattern.
void operator()(SparsityPattern &s)
Initialize a deal.II Sparsity Pattern.
const MPI_Comm & comm
MPI Communicator.
const IndexSet owned_rows
Owned dofs.
void operator()(SparsityPattern &s, const DoFHandler< dim, spacedim > &dh, const AffineConstraints< double > &cm, const Table< 2, DoFTools::Coupling > &coupling)
Initialize a Deal.II Sparsity Pattern.
void operator()(const LATrilinos::SparsityPattern &sparsity, LATrilinos::SparseMatrix &matrix)
Initialize a Trilinos matrix.
void operator()(TrilinosWrappers::SparsityPattern &s, const DoFHandler< dim, spacedim > &dh, const AffineConstraints< double > &cm, const Table< 2, DoFTools::Coupling > &coupling)
Initialize a Trilinos Sparsity Pattern.
void operator()(const LASparsityPattern &sparsity, LASparseMatrix &matrix)
Initialize a deal.II matrix.
#define Assert(cond, exc)
static ::ExceptionBase & ExcNotInitialized()
void make_sparsity_pattern(const DoFHandler< dim, spacedim > &dof_handler, SparsityPatternBase &sparsity_pattern, const AffineConstraints< number > &constraints={}, const bool keep_constrained_dofs=true, const types::subdomain_id subdomain_id=numbers::invalid_subdomain_id)
Wrappers for linear algebra classes.
SparsityPattern SparsityPattern
BlockSparsityPattern BlockSparsityPattern
BlockSparsityPattern BlockSparsityPattern
SparsityPattern SparsityPattern