Reference documentation for deal.II version 8.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Public Attributes | List of all members
RelaxationBlock< MATRIX, inverse_type >::AdditionalData Class Reference

#include <relaxation_block.h>

Inheritance diagram for RelaxationBlock< MATRIX, inverse_type >::AdditionalData:
[legend]

Public Member Functions

 AdditionalData (const double relaxation=1., const bool invert_diagonal=true, const bool same_diagonal=false)
 
 AdditionalData (const BlockList &block_list, const double relaxation=1., const bool invert_diagonal=true, const bool same_diagonal=false) DEAL_II_DEPRECATED
 
std::size_t memory_consumption () const
 
- Public Member Functions inherited from Subscriptor
 Subscriptor ()
 
 Subscriptor (const Subscriptor &)
 
virtual ~Subscriptor ()
 
Subscriptoroperator= (const Subscriptor &)
 
void subscribe (const char *identifier=0) const
 
void unsubscribe (const char *identifier=0) const
 
unsigned int n_subscriptions () const
 
void list_subscribers () const
 
 DeclException3 (ExcInUse, int, char *, std::string &,<< "Object of class "<< arg2<< " is still used by "<< arg1<< " other objects.\n"<< "(Additional information: "<< arg3<< ")\n"<< "Note the entry in the Frequently Asked Questions of "<< "deal.II (linked to from http://www.dealii.org/) for "<< "more information on what this error means.")
 
 DeclException2 (ExcNoSubscriber, char *, char *,<< "No subscriber with identifier \""<< arg2<< "\" did subscribe to this object of class "<< arg1)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Public Attributes

SparsityPattern block_list
 
double relaxation
 
bool invert_diagonal
 
bool same_diagonal
 
PreconditionBlockBase
< inverse_type >::Inversion 
inversion
 
double threshold
 
std::vector< std::vector
< unsigned int > > 
order
 

Detailed Description

template<class MATRIX, typename inverse_type = typename MATRIX::value_type>
class RelaxationBlock< MATRIX, inverse_type >::AdditionalData

Parameters for block relaxation methods.

Definition at line 79 of file relaxation_block.h.

Constructor & Destructor Documentation

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
RelaxationBlock< MATRIX, inverse_type >::AdditionalData::AdditionalData ( const double  relaxation = 1.,
const bool  invert_diagonal = true,
const bool  same_diagonal = false 
)

Constructor.

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
RelaxationBlock< MATRIX, inverse_type >::AdditionalData::AdditionalData ( const BlockList block_list,
const double  relaxation = 1.,
const bool  invert_diagonal = true,
const bool  same_diagonal = false 
)
Deprecated:
Since the BlockList is now a data member of this class, it is not recommended anymore to generate it independently.

Constructor.

Member Function Documentation

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
std::size_t RelaxationBlock< MATRIX, inverse_type >::AdditionalData::memory_consumption ( ) const
inline

Return the memory allocated in this object.

Definition at line 44 of file relaxation_block.templates.h.

Member Data Documentation

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
SparsityPattern RelaxationBlock< MATRIX, inverse_type >::AdditionalData::block_list

The mapping from indices to blocks.

Definition at line 105 of file relaxation_block.h.

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
double RelaxationBlock< MATRIX, inverse_type >::AdditionalData::relaxation

Relaxation parameter.

Definition at line 110 of file relaxation_block.h.

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
bool RelaxationBlock< MATRIX, inverse_type >::AdditionalData::invert_diagonal

Invert diagonal during initialization.

Definition at line 115 of file relaxation_block.h.

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
bool RelaxationBlock< MATRIX, inverse_type >::AdditionalData::same_diagonal

Assume all diagonal blocks are equal to save memory.

Definition at line 120 of file relaxation_block.h.

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
PreconditionBlockBase<inverse_type>::Inversion RelaxationBlock< MATRIX, inverse_type >::AdditionalData::inversion

Choose the inversion method for the blocks.

Definition at line 124 of file relaxation_block.h.

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
double RelaxationBlock< MATRIX, inverse_type >::AdditionalData::threshold

The if inversion is SVD, the threshold below which a singular value will be considered zero and thus not inverted. This parameter is used in the call to LAPACKFullMatrix::compute_inverse_svd().

Definition at line 132 of file relaxation_block.h.

template<class MATRIX , typename inverse_type = typename MATRIX::value_type>
std::vector<std::vector<unsigned int> > RelaxationBlock< MATRIX, inverse_type >::AdditionalData::order

The order in which blocks should be traversed. This vector can initiate several modes of execution:

  1. If the length of the vector is zero, then the relaxation method will be executed from first to last block.

  2. If the length is one, then the inner vector must have the same size as the number of blocks. The relaxation method is applied in the order given in this vector.

  3. If the outer vector has length greater one, then the relaxation method is applied several times, each time in the order given by the inner vector of the corresponding index. This mode can for instance be used for ADI methods and similar direction sweeps.

Definition at line 155 of file relaxation_block.h.


The documentation for this class was generated from the following files: