![]() |
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_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 | 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 |
| 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. |
Implements MGTransferBase< LinearAlgebra::distributed::BlockVector< VectorType::value_type > >.
|
overridevirtualinherited |
Prolongate a vector from level to_level-1 to level to_level, summing into the previous content of dst.
Reimplemented from MGTransferBase< LinearAlgebra::distributed::BlockVector< VectorType::value_type > >.
|
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. |
Implements MGTransferBase< LinearAlgebra::distributed::BlockVector< VectorType::value_type > >.
|
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.