Public Member Functions | |
virtual | ~MGTransferBlockSelect () |
template<int dim, int spacedim> | |
void | build_matrices (const DoFHandler< dim, spacedim > &dof, const MGDoFHandler< dim, spacedim > &mg_dof, unsigned int selected) |
void | select (const unsigned int block) |
virtual void | prolongate (const unsigned int to_level, Vector< number > &dst, const Vector< number > &src) const |
virtual void | restrict_and_add (const unsigned int from_level, Vector< number > &dst, const Vector< number > &src) const |
template<int dim, typename number2 , int spacedim> | |
void | copy_to_mg (const MGDoFHandler< dim, spacedim > &mg_dof, MGLevelObject< Vector< number > > &dst, const Vector< number2 > &src) const |
template<int dim, typename number2 , int spacedim> | |
void | copy_from_mg (const MGDoFHandler< dim, spacedim > &mg_dof, Vector< number2 > &dst, const MGLevelObject< Vector< number > > &src) const |
template<int dim, typename number2 , int spacedim> | |
void | copy_from_mg_add (const MGDoFHandler< dim, spacedim > &mg_dof, Vector< number2 > &dst, const MGLevelObject< Vector< number > > &src) const |
template<int dim, typename number2 , int spacedim> | |
void | copy_to_mg (const MGDoFHandler< dim, spacedim > &mg_dof, MGLevelObject< Vector< number > > &dst, const BlockVector< number2 > &src) const |
template<int dim, typename number2 , int spacedim> | |
void | copy_from_mg (const MGDoFHandler< dim, spacedim > &mg_dof, BlockVector< number2 > &dst, const MGLevelObject< Vector< number > > &src) const |
template<int dim, typename number2 , int spacedim> | |
void | copy_from_mg_add (const MGDoFHandler< dim, spacedim > &mg_dof, BlockVector< number2 > &dst, const MGLevelObject< Vector< number > > &src) const |
unsigned int | memory_consumption () const |
Private Member Functions | |
template<int dim, class OutVector , int spacedim> | |
void | do_copy_from_mg (const MGDoFHandler< dim, spacedim > &mg_dof, OutVector &dst, const MGLevelObject< Vector< number > > &src, const unsigned int offset) const |
template<int dim, class OutVector , int spacedim> | |
void | do_copy_from_mg_add (const MGDoFHandler< dim, spacedim > &mg_dof, OutVector &dst, const MGLevelObject< Vector< number > > &src, const unsigned int offset) const |
template<int dim, class InVector , int spacedim> | |
void | do_copy_to_mg (const MGDoFHandler< dim, spacedim > &mg_dof, MGLevelObject< Vector< number > > &dst, const InVector &src, const unsigned int offset) const |
Private Attributes | |
unsigned int | selected_block |
See MGTransferBase to find out which of the transfer classes is best for your needs.
virtual MGTransferBlockSelect< number >::~MGTransferBlockSelect | ( | ) | [virtual] |
Destructor.
void MGTransferBlockSelect< number >::build_matrices | ( | const DoFHandler< dim, spacedim > & | dof, | |
const MGDoFHandler< dim, spacedim > & | mg_dof, | |||
unsigned int | selected | |||
) | [inline] |
Actually build the prolongation matrices for grouped blocks.
This function is a front-end for the same function in MGTransferBlockBase.
void MGTransferBlockSelect< number >::select | ( | const unsigned int | block | ) | [inline] |
Change selected block. Handle with care!
References MGTransferBlockSelect< number >::selected_block.
virtual void MGTransferBlockSelect< number >::prolongate | ( | const unsigned int | to_level, | |
Vector< number > & | dst, | |||
const Vector< number > & | src | |||
) | const [virtual] |
Prolongate a vector from level to_level-1
to level to_level
. The previous content of dst
is overwritten.
Implements MGTransferBase< Vector< number > >.
virtual void MGTransferBlockSelect< number >::restrict_and_add | ( | const unsigned int | from_level, | |
Vector< number > & | dst, | |||
const Vector< number > & | src | |||
) | const [virtual] |
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 degress of freedom, the result of the restriction is added.
Implements MGTransferBase< Vector< number > >.
void MGTransferBlockSelect< number >::copy_to_mg | ( | const MGDoFHandler< dim, spacedim > & | mg_dof, | |
MGLevelObject< Vector< number > > & | dst, | |||
const Vector< number2 > & | src | |||
) | const [inline] |
Transfer a single block from a vector on the global grid to a multilevel vector.
void MGTransferBlockSelect< number >::copy_from_mg | ( | const MGDoFHandler< dim, spacedim > & | mg_dof, | |
Vector< number2 > & | dst, | |||
const MGLevelObject< Vector< number > > & | src | |||
) | const [inline] |
Transfer from multilevel vector to normal vector.
Copies data from active portions of an multilevel vector into the respective positions of a Vector.
void MGTransferBlockSelect< number >::copy_from_mg_add | ( | const MGDoFHandler< dim, spacedim > & | mg_dof, | |
Vector< number2 > & | dst, | |||
const MGLevelObject< Vector< number > > & | src | |||
) | const [inline] |
Add a multi-level vector to a normal vector.
Works as the previous function, but probably not for continuous elements.
void MGTransferBlockSelect< number >::copy_to_mg | ( | const MGDoFHandler< dim, spacedim > & | mg_dof, | |
MGLevelObject< Vector< number > > & | dst, | |||
const BlockVector< number2 > & | src | |||
) | const [inline] |
Transfer a block from a vector on the global grid to multilevel vectors. Only the block selected is transfered.
void MGTransferBlockSelect< number >::copy_from_mg | ( | const MGDoFHandler< dim, spacedim > & | mg_dof, | |
BlockVector< number2 > & | dst, | |||
const MGLevelObject< Vector< number > > & | src | |||
) | const [inline] |
Transfer from multilevel vector to normal vector.
Copies data from active portions of a multilevel vector into the respective positions of a global BlockVector.
void MGTransferBlockSelect< number >::copy_from_mg_add | ( | const MGDoFHandler< dim, spacedim > & | mg_dof, | |
BlockVector< number2 > & | dst, | |||
const MGLevelObject< Vector< number > > & | src | |||
) | const [inline] |
Add a multi-level vector to a normal vector.
Works as the previous function, but probably not for continuous elements.
unsigned int MGTransferBlockSelect< number >::memory_consumption | ( | ) | const |
Memory used by this object.
Reimplemented from MGTransferBlockBase.
void MGTransferBlockSelect< number >::do_copy_from_mg | ( | const MGDoFHandler< dim, spacedim > & | mg_dof, | |
OutVector & | dst, | |||
const MGLevelObject< Vector< number > > & | src, | |||
const unsigned int | offset | |||
) | const [inline, private] |
Implementation of the public function.
void MGTransferBlockSelect< number >::do_copy_from_mg_add | ( | const MGDoFHandler< dim, spacedim > & | mg_dof, | |
OutVector & | dst, | |||
const MGLevelObject< Vector< number > > & | src, | |||
const unsigned int | offset | |||
) | const [inline, private] |
Implementation of the public function.
void MGTransferBlockSelect< number >::do_copy_to_mg | ( | const MGDoFHandler< dim, spacedim > & | mg_dof, | |
MGLevelObject< Vector< number > > & | dst, | |||
const InVector & | src, | |||
const unsigned int | offset | |||
) | const [inline, private] |
Actual implementation of copy_to_mg().
unsigned int MGTransferBlockSelect< number >::selected_block [private] |
Selected block.
Referenced by MGTransferBlockSelect< number >::select().