24 #ifndef SPARSITYMAKER_H_
25 #define SPARSITYMAKER_H_
28 #include <deal.II/dofs/dof_tools.h>
29 #include <deal.II/lac/constraint_matrix.h>
49 template<
template<
int,
int>
class DH,
int dim>
55 flux_pattern_ = flux_pattern;
64 dealii::BlockSparsityPattern & sparsity,
65 const dealii::ConstraintMatrix& hanging_node_constraints,
66 const std::vector<unsigned int>& blocks)
const;
71 dealii::SparsityPattern & sparsity,
72 const dealii::ConstraintMatrix& hanging_node_constraints,
73 const std::vector<unsigned int>& blocks)
const;
111 template<
template<
int,
int>
class DH,
int dim>
115 dealii::BlockSparsityPattern & sparsity,
116 const dealii::ConstraintMatrix& hanging_node_constraints,
117 const std::vector<unsigned int>& blocks)
const
119 #if DEAL_II_VERSION_GTE(8,3,0)
120 dealii::BlockDynamicSparsityPattern csp(blocks.size(),
123 dealii::BlockCompressedSimpleSparsityPattern csp(blocks.size(),
127 for (
unsigned int i = 0; i < blocks.size(); i++)
129 for (
unsigned int j = 0; j < blocks.size(); j++)
131 csp.block(i, j).reinit(blocks.at(i), blocks.at(j));
137 dealii::DoFTools::make_flux_sparsity_pattern(
142 dealii::DoFTools::make_sparsity_pattern(
145 sparsity.copy_from(csp);
149 template<
template<
int,
int>
class DH,
int dim>
153 dealii::SparsityPattern & sparsity,
154 const dealii::ConstraintMatrix& hanging_node_constraints,
155 const std::vector<unsigned int>& blocks)
const
157 unsigned int total_dofs = 0;
158 for (
unsigned int j = 0; j < blocks.size(); j++)
160 total_dofs += blocks.at(j);
163 #if DEAL_II_VERSION_GTE(8,3,0)
164 dealii::DynamicSparsityPattern csp(total_dofs, total_dofs);
166 dealii::CompressedSimpleSparsityPattern csp(total_dofs, total_dofs);
170 dealii::DoFTools::make_flux_sparsity_pattern(
175 dealii::DoFTools::make_sparsity_pattern(
178 sparsity.copy_from(csp);
virtual ~SparsityMaker()
Definition: sparsitymaker.h:58
const DOFHANDLER< dim, dim > & GetDEALDoFHandler() const
Definition: dofhandler_wrapper.h:69
virtual void ComputeSparsityPattern(const DOpEWrapper::DoFHandler< dim, DH > &dof_handler, dealii::BlockSparsityPattern &sparsity, const dealii::ConstraintMatrix &hanging_node_constraints, const std::vector< unsigned int > &blocks) const
Definition: sparsitymaker.h:113
Definition: sparsitymaker.h:50
SparsityMaker(bool flux_pattern=false)
Definition: sparsitymaker.h:53