17 #include <deal.II/lac/vector.h> 18 #include <deal.II/lac/parallel_vector.h> 19 #include <deal.II/lac/parallel_block_vector.h> 20 #include <deal.II/lac/petsc_vector.h> 21 #include <deal.II/lac/petsc_block_vector.h> 22 #include <deal.II/lac/trilinos_vector.h> 23 #include <deal.II/lac/trilinos_block_vector.h> 24 #include <deal.II/lac/sparse_matrix.h> 25 #include <deal.II/lac/block_sparse_matrix.h> 26 #include <deal.II/multigrid/mg_transfer.h> 27 #include <deal.II/multigrid/mg_transfer_block.h> 28 #include <deal.II/multigrid/mg_transfer_component.h> 29 #include <deal.II/multigrid/mg_smoother.h> 30 #include <deal.II/multigrid/mg_transfer_block.templates.h> 31 #include <deal.II/multigrid/mg_transfer_component.templates.h> 32 #include <deal.II/multigrid/multigrid.templates.h> 34 DEAL_II_NAMESPACE_OPEN
49 template <
typename number>
52 memory(0, typeid(*this).name())
56 template <
typename number>
63 template <
typename number>
73 template <
typename number>
75 const unsigned int to_level,
89 for (
unsigned int b=0; b<this->
mg_block.size(); ++b)
98 template <
typename number>
100 const unsigned int from_level,
111 for (
unsigned int b=0; b<this->
mg_block.size(); ++b)
121 *aux, src.
block(this->mg_block[b]));
140 std::size_t result =
sizeof(*this);
144 -
sizeof(mg_target_component);
148 -
sizeof(component_start);
150 -
sizeof(mg_component_start);
152 -
sizeof(prolongation_sparsities);
166 std::size_t result =
sizeof(*this);
167 result +=
sizeof(
unsigned int) *
sizes.size();
177 -
sizeof(prolongation_sparsities);
189 template<
typename number>
194 template<
typename number>
200 template <
typename number>
205 template <
typename number>
207 const unsigned int to_level,
220 template <
typename number>
222 const unsigned int from_level,
231 .Tvmult_add (dst, src);
237 template <
typename number>
242 template <
typename number>
248 template <
typename number>
253 template <
typename number>
255 const unsigned int to_level,
268 template <
typename number>
270 const unsigned int from_level,
279 .Tvmult_add (dst, src);
286 #include "multigrid.inst" 296 DEAL_II_NAMESPACE_CLOSE
std::size_t memory_consumption() const
virtual VectorType * alloc()=0
virtual void prolongate(const unsigned int to_level, BlockVector< number > &dst, const BlockVector< number > &src) const
std::vector< std_cxx11::shared_ptr< BlockSparseMatrix< double > > > prolongation_matrices
std::vector< types::global_dof_index > block_start
SmartPointer< const MGConstrainedDoFs, MGTransferBlockBase > mg_constrained_dofs
virtual void free(const VectorType *const)=0
std::vector< std::vector< types::global_dof_index > > sizes
std::vector< std_cxx11::shared_ptr< BlockSparseMatrix< double > > > prolongation_matrices
#define Assert(cond, exc)
std::size_t memory_consumption() const
virtual void restrict_and_add(const unsigned int from_level, BlockVector< number > &dst, const BlockVector< number > &src) const
virtual ~MGTransferBlock()
virtual void restrict_and_add(const unsigned int from_level, Vector< number > &dst, const Vector< number > &src) const
void initialize(const std::vector< number > &factors, VectorMemory< Vector< number > > &memory)
std::vector< unsigned int > mg_block
unsigned int mg_selected_component
std_cxx11::enable_if< std_cxx11::is_fundamental< T >::value, std::size_t >::type memory_consumption(const T &t)
std::vector< unsigned int > mg_target_component
virtual void prolongate(const unsigned int to_level, Vector< number > &dst, const Vector< number > &src) const
std::vector< std::vector< types::global_dof_index > > mg_block_start
unsigned int n_blocks() const
SmartPointer< VectorMemory< Vector< number > >, MGTransferBlock< number > > memory
virtual void reinit(const size_type N, const bool omit_zeroing_entries=false)
virtual ~MGTransferSelect()
std::vector< number > factors
virtual ~MGTransferBlockSelect()
virtual void restrict_and_add(const unsigned int from_level, Vector< number > &dst, const Vector< number > &src) const
BlockType & block(const unsigned int i)
SmartPointer< const ConstraintMatrix, MGTransferBlockBase > constraints
std::vector< bool > selected
unsigned int selected_block
virtual void prolongate(const unsigned int to_level, Vector< number > &dst, const Vector< number > &src) const