17 #ifndef __deal2__mg_transfer_h 18 #define __deal2__mg_transfer_h 20 #include <deal.II/base/config.h> 22 #include <deal.II/lac/block_vector.h> 23 #include <deal.II/lac/constraint_matrix.h> 24 #include <deal.II/lac/sparse_matrix.h> 25 #include <deal.II/lac/block_sparsity_pattern.h> 26 #include <deal.II/lac/trilinos_sparse_matrix.h> 28 #include <deal.II/lac/vector_memory.h> 30 #include <deal.II/multigrid/mg_base.h> 31 #include <deal.II/multigrid/mg_constrained_dofs.h> 32 #include <deal.II/base/mg_level_object.h> 34 #include <deal.II/dofs/dof_handler.h> 36 #include <deal.II/base/std_cxx1x/shared_ptr.h> 42 template <
int dim,
int spacedim>
class DoFHandler;
46 template <
class VECTOR>
50 typedef ::SparseMatrix<typename VECTOR::value_type>
Matrix;
52 template <
class CSP,
class DH>
53 static void reinit(Matrix &matrix, Sparsity &sparsity,
int level,
const CSP &csp,
const DH &)
60 #ifdef DEAL_II_WITH_TRILINOS 64 typedef ::TrilinosWrappers::SparsityPattern
Sparsity;
65 typedef ::TrilinosWrappers::SparseMatrix
Matrix;
67 template <
class CSP,
class DH>
68 static void reinit(Matrix &matrix, Sparsity &sparsity,
int level,
const CSP &csp, DH &dh)
70 matrix.
reinit(dh.locally_owned_mg_dofs(level+1),
71 dh.locally_owned_mg_dofs(level),
72 csp, MPI_COMM_WORLD,
true);
80 typedef ::TrilinosWrappers::SparsityPattern
Sparsity;
81 typedef ::TrilinosWrappers::SparseMatrix
Matrix;
83 template <
class CSP,
class DH>
84 static void reinit(Matrix &matrix, Sparsity &sparsity,
int level,
const CSP &csp, DH &dh)
111 template <
class VECTOR>
136 template <
int dim,
int spacedim>
139 virtual void prolongate (
const unsigned int to_level,
141 const VECTOR &src)
const;
143 virtual void restrict_and_add (
const unsigned int from_level,
145 const VECTOR &src)
const;
153 template <
int dim,
class InVector,
int spacedim>
157 const InVector &src)
const;
171 template <
int dim,
class OutVector,
int spacedim>
185 template <
int dim,
class OutVector,
int spacedim>
222 set_component_to_block_map (
const std::vector<unsigned int> &map);
237 std::size_t memory_consumption ()
const;
242 void print_matrices(std::ostream &os)
const;
247 void print_indices(std::ostream &os)
const;
254 std::vector<types::global_dof_index>
sizes;
276 std::vector<std::vector<std::pair<types::global_dof_index, unsigned int> > >
286 std::vector<std::vector<std::pair<types::global_dof_index, unsigned int> > >
296 std::vector<std::vector<std::pair<types::global_dof_index, unsigned int> > >
331 DEAL_II_NAMESPACE_CLOSE
std::vector< unsigned int > component_to_block_map
std::vector< std::vector< std::pair< types::global_dof_index, unsigned int > > > copy_indices
std::vector< std_cxx1x::shared_ptr< typename internal::MatrixSelector< VECTOR >::Sparsity > > prolongation_sparsities
SmartPointer< const ConstraintMatrix, MGTransferPrebuilt< VECTOR > > constraints
void reinit(const SparsityType &sparsity_pattern)
#define DeclException0(Exception0)
std::vector< std_cxx1x::shared_ptr< typename internal::MatrixSelector< VECTOR >::Matrix > > prolongation_matrices
std::vector< std::vector< std::pair< types::global_dof_index, unsigned int > > > copy_indices_from_me
virtual void reinit(const SparsityPattern &sparsity)
void copy_from(const size_type n_rows, const size_type n_cols, const ForwardIterator begin, const ForwardIterator end, const bool optimize_diagonal) DEAL_II_DEPRECATED
std::vector< std::vector< bool > > interface_dofs
SmartPointer< const MGConstrainedDoFs, MGTransferPrebuilt< VECTOR > > mg_constrained_dofs
std::vector< types::global_dof_index > sizes
std::vector< std::vector< std::pair< types::global_dof_index, unsigned int > > > copy_indices_to_me