![]() |
Reference documentation for deal.II version 9.4.1
|
#include <deal.II/multigrid/mg_transfer_global_coarsening.h>
Public Member Functions | |
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 LinearAlgebra::distributed::BlockVector< Number2 > &src) const |
void | copy_to_mg (const std::vector< const DoFHandler< dim, spacedim > * > &dof_handler, MGLevelObject< LinearAlgebra::distributed::BlockVector< VectorType::value_type > > &dst, const LinearAlgebra::distributed::BlockVector< Number2 > &src) const |
void | copy_from_mg (const DoFHandler< dim, spacedim > &dof_handler, LinearAlgebra::distributed::BlockVector< Number2 > &dst, const MGLevelObject< LinearAlgebra::distributed::BlockVector< VectorType::value_type > > &src) const |
void | copy_from_mg (const std::vector< const DoFHandler< dim, spacedim > * > &dof_handler, LinearAlgebra::distributed::BlockVector< Number2 > &dst, const MGLevelObject< LinearAlgebra::distributed::BlockVector< VectorType::value_type > > &src) const |
Static Public Attributes | |
static const bool | supports_dof_handler_vector |
Protected Member Functions | |
const MGTransferGlobalCoarsening< dim, VectorType > & | get_matrix_free_transfer (const unsigned int b) const override |
Protected Attributes | |
const bool | same_for_all |
Private Attributes | |
const MGTransferGlobalCoarsening< dim, VectorType > & | transfer_operator |
Subscriptor functionality | |
Classes derived from Subscriptor provide a facility to subscribe to this object. This is mostly used by the SmartPointer class. | |
std::atomic< unsigned int > | counter |
std::map< std::string, unsigned int > | counter_map |
std::vector< std::atomic< bool > * > | validity_pointers |
const std::type_info * | object_info |
void | subscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
void | unsubscribe (std::atomic< bool > *const validity, const std::string &identifier="") const |
unsigned int | n_subscriptions () const |
template<typename StreamType > | |
void | list_subscribers (StreamType &stream) const |
void | list_subscribers () const |
template<class Archive > | |
void | serialize (Archive &ar, const unsigned int version) |
using | map_value_type = decltype(counter_map)::value_type |
using | map_iterator = decltype(counter_map)::iterator |
static std::mutex | mutex |
static ::ExceptionBase & | ExcInUse (int arg1, std::string arg2, std::string arg3) |
static ::ExceptionBase & | ExcNoSubscriber (std::string arg1, std::string arg2) |
void | check_no_subscribers () const noexcept |
This class works with LinearAlgebra::distributed::BlockVector and performs exactly the same transfer operations for each block as MGTransferGlobalCoarsening.
Definition at line 627 of file mg_transfer_global_coarsening.h.
MGTransferBlockGlobalCoarsening< dim, VectorType >::MGTransferBlockGlobalCoarsening | ( | const MGTransferGlobalCoarsening< dim, VectorType > & | transfer_operator | ) |
Constructor.
|
overrideprotectedvirtual |
Return the right non-block transfer operator. Has to be implemented by the derived class.
Implements MGTransferBlockMatrixFreeBase< dim, VectorType::value_type, MGTransferGlobalCoarsening< dim, VectorType > >.
|
overridevirtualinherited |
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.
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. |
|
pure virtualinherited |
Prolongate a vector from level to_level-1
to level to_level
. The previous content of dst
is overwritten.
Implemented in MGTransferBlock< number >, MGTransferBlockMatrixFreeBase< dim, Number, TransferType >, MGTransferBlockMatrixFreeBase< dim, Number, MGTransferMatrixFree< dim, Number > >, MGTransferMatrixFree< dim, Number >, MGTransferBlockSelect< number >, MGTransferSelect< number >, MGTransferPrebuilt< VectorType >, and MGTransferGlobalCoarsening< dim, VectorType >.
|
overridevirtualinherited |
Prolongate a vector from level to_level-1
to level to_level
, summing into the previous content of dst
.
|
virtualinherited |
Prolongate a vector from level to_level-1
to level to_level
, summing into the previous content of dst
.
Reimplemented in MGTransferBlockMatrixFreeBase< dim, Number, TransferType >, MGTransferBlockMatrixFreeBase< dim, Number, MGTransferMatrixFree< dim, Number > >, and MGTransferGlobalCoarsening< dim, VectorType >.
Definition at line 47 of file mg_base.cc.
|
overridevirtualinherited |
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.
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. |
|
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.
Implemented in MGTransferBlock< number >, MGTransferBlockMatrixFreeBase< dim, Number, TransferType >, MGTransferBlockMatrixFreeBase< dim, Number, MGTransferMatrixFree< dim, Number > >, MGTransferMatrixFree< dim, Number >, MGTransferBlockSelect< number >, MGTransferSelect< number >, MGTransferPrebuilt< VectorType >, and MGTransferGlobalCoarsening< dim, VectorType >.
|
inherited |
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.
|
inherited |
Same as above for the case that each block has its own DoFHandler.
|
inherited |
Transfer from multi-level block-vector to normal vector.
|
inherited |
Same as above for the case that each block has its own DoFHandler.
|
private |
Non-block version of transfer operation.
Definition at line 648 of file mg_transfer_global_coarsening.h.
|
staticinherited |
This class can both be used with a single DoFHandler or a separate DoFHandler for each block.
Definition at line 431 of file mg_transfer_matrix_free.h.
|
protectedinherited |
A flag to indicate whether the same DoFHandler is used for all the components or if each block has its own DoFHandler.
Definition at line 445 of file mg_transfer_matrix_free.h.