#include <deal.II/multigrid/mg_transfer_global_coarsening.h>
|
| MGTransferBlockGlobalCoarsening (const MGTransferGlobalCoarsening< dim, VectorType > &transfer_operator) |
|
virtual void | prolongate (const unsigned int to_level, LinearAlgebra::distributed::BlockVector< VectorType::value_type > &dst, const LinearAlgebra::distributed::BlockVector< VectorType::value_type > &src) const override |
|
virtual void | prolongate (const unsigned int to_level, VectorType &dst, const VectorType &src) const =0 |
|
virtual void | prolongate_and_add (const unsigned int to_level, LinearAlgebra::distributed::BlockVector< VectorType::value_type > &dst, const LinearAlgebra::distributed::BlockVector< VectorType::value_type > &src) const override |
|
virtual void | prolongate_and_add (const unsigned int to_level, VectorType &dst, const VectorType &src) const |
|
virtual void | restrict_and_add (const unsigned int from_level, LinearAlgebra::distributed::BlockVector< VectorType::value_type > &dst, const LinearAlgebra::distributed::BlockVector< VectorType::value_type > &src) const override |
|
virtual void | restrict_and_add (const unsigned int from_level, VectorType &dst, const VectorType &src) const =0 |
|
void | copy_to_mg (const DoFHandler< dim, spacedim > &dof_handler, MGLevelObject< LinearAlgebra::distributed::BlockVector< VectorType::value_type >> &dst, const BlockVectorType2 &src) const |
|
void | copy_to_mg (const std::vector< const DoFHandler< dim, spacedim > * > &dof_handler, MGLevelObject< LinearAlgebra::distributed::BlockVector< VectorType::value_type >> &dst, const BlockVectorType2 &src) const |
|
void | copy_from_mg (const DoFHandler< dim, spacedim > &dof_handler, BlockVectorType2 &dst, const MGLevelObject< LinearAlgebra::distributed::BlockVector< VectorType::value_type >> &src) const |
|
void | copy_from_mg (const std::vector< const DoFHandler< dim, spacedim > * > &dof_handler, BlockVectorType2 &dst, const MGLevelObject< LinearAlgebra::distributed::BlockVector< VectorType::value_type >> &src) const |
|
template<int dim, typename VectorType>
class MGTransferBlockGlobalCoarsening< dim, VectorType >
This class works with LinearAlgebra::distributed::BlockVector and performs exactly the same transfer operations for each block as MGTransferGlobalCoarsening.
Definition at line 645 of file mg_transfer_global_coarsening.h.
◆ MGTransferBlockGlobalCoarsening()
template<int dim, typename VectorType >
◆ get_matrix_free_transfer()
template<int dim, typename VectorType >
◆ prolongate() [1/2]
Prolongate a vector from level to_level-1
to level to_level
using the embedding matrices of the underlying finite element. The previous content of dst
is overwritten.
- Parameters
-
to_level | The index of the level to prolongate to, which is the level of dst . |
src | is a vector with as many elements as there are degrees of freedom on the coarser level involved. |
dst | has as many elements as there are degrees of freedom on the finer level. |
◆ prolongate() [2/2]
template<typename VectorType >
virtual void MGTransferBase< VectorType >::prolongate |
( |
const unsigned int |
to_level, |
|
|
VectorType & |
dst, |
|
|
const VectorType & |
src |
|
) |
| const |
|
pure virtualinherited |
Prolongate a vector from level to_level-1
to level to_level
. The previous content of dst
is overwritten.
- src is a vector with as many elements as there are degrees of freedom on the coarser level involved.
- dst has as many elements as there are degrees of freedom on the finer level.
Implemented in MGTransferGlobalCoarsening< dim, VectorType >, MGTransferPrebuilt< VectorType >, MGTransferSelect< number >, MGTransferBlockSelect< number >, MGTransferMatrixFree< dim, Number >, MGTransferBlockMatrixFreeBase< dim, Number, TransferType >, MGTransferBlockMatrixFreeBase< dim, Number, MGTransferMatrixFree< dim, Number > >, and MGTransferBlock< number >.
◆ prolongate_and_add() [1/2]
◆ prolongate_and_add() [2/2]
template<typename VectorType >
void MGTransferBase< VectorType >::prolongate_and_add |
( |
const unsigned int |
to_level, |
|
|
VectorType & |
dst, |
|
|
const VectorType & |
src |
|
) |
| const |
|
virtualinherited |
Prolongate a vector from level to_level-1
to level to_level
, summing into the previous content of dst
.
- src is a vector with as many elements as there are degrees of freedom on the coarser level involved.
- dst has as many elements as there are degrees of freedom on the finer level.
Reimplemented in MGTransferGlobalCoarsening< dim, VectorType >.
Definition at line 47 of file mg_base.cc.
◆ restrict_and_add() [1/2]
Restrict a vector from level from_level
to level from_level-1
using the transpose operation of the prolongate() method. If the region covered by cells on level from_level
is smaller than that of level from_level-1
(local refinement), then some degrees of freedom in dst
are active and will not be altered. For the other degrees of freedom, the result of the restriction is added.
- Parameters
-
from_level | The index of the level to restrict from, which is the level of src . |
src | is a vector with as many elements as there are degrees of freedom on the finer level involved. |
dst | has as many elements as there are degrees of freedom on the coarser level. |
◆ restrict_and_add() [2/2]
template<typename VectorType >
virtual void MGTransferBase< VectorType >::restrict_and_add |
( |
const unsigned int |
from_level, |
|
|
VectorType & |
dst, |
|
|
const VectorType & |
src |
|
) |
| const |
|
pure virtualinherited |
Restrict a vector from level from_level
to level from_level-1
and add this restriction to dst
. If the region covered by cells on level from_level
is smaller than that of level from_level-1
(local refinement), then some degrees of freedom in dst
are active and will not be altered. For the other degrees of freedom, the result of the restriction is added.
- src is a vector with as many elements as there are degrees of freedom on the finer level
- dst has as many elements as there are degrees of freedom on the coarser level.
Implemented in MGTransferGlobalCoarsening< dim, VectorType >, MGTransferPrebuilt< VectorType >, MGTransferSelect< number >, MGTransferBlockSelect< number >, MGTransferMatrixFree< dim, Number >, MGTransferBlockMatrixFreeBase< dim, Number, TransferType >, MGTransferBlockMatrixFreeBase< dim, Number, MGTransferMatrixFree< dim, Number > >, and MGTransferBlock< number >.
◆ copy_to_mg() [1/2]
Transfer from a block-vector on the global grid to block-vectors defined on each of the levels separately for active degrees of freedom. In particular, for a globally refined mesh only the finest level in dst
is filled as a plain copy of src
. All the other level objects are left untouched.
This function will initialize dst
accordingly if needed as required by the Multigrid class.
◆ copy_to_mg() [2/2]
Same as above for the case that each block has its own DoFHandler.
◆ copy_from_mg() [1/2]
Transfer from multi-level block-vector to normal vector.
◆ copy_from_mg() [2/2]
Same as above for the case that each block has its own DoFHandler.
◆ transfer_operator
template<int dim, typename VectorType >
◆ supports_dof_handler_vector
◆ same_for_all
The documentation for this class was generated from the following file: