|
My Project
|
Converts the field type (eg. More...
#include <PreconditionerConvertFieldTypeAdapter.hpp>
Public Types | |
| using | matrix_type = typename std::remove_const< M >::type |
| The matrix type the preconditioner is for. | |
| using | domain_type = X |
| The domain type of the preconditioner. | |
| using | range_type = Y |
| The range type of the preconditioner. | |
| using | field_type = typename X::field_type |
| The field type of the preconditioner. | |
| using | domain_type_to = typename CudaPreconditionerType::domain_type |
| using | range_type_to = typename CudaPreconditionerType::range_type |
| The range type of the preconditioner. | |
| using | field_type_to = typename domain_type_to::field_type |
| The field type of the preconditioner. | |
| using | block_type = typename domain_type::block_type |
| using | XTo = Dune::BlockVector< Dune::FieldVector< field_type_to, block_type::dimension > > |
| using | YTo = Dune::BlockVector< Dune::FieldVector< field_type_to, block_type::dimension > > |
| using | matrix_type_to = typename Dune::BCRSMatrix< Dune::FieldMatrix< field_type_to, block_type::dimension, block_type::dimension > > |
Public Member Functions | |
| PreconditionerConvertFieldTypeAdapter (const M &matrix) | |
| Constructor. | |
| virtual void | pre (X &x, Y &b) override |
| Not used at the moment. | |
| virtual void | apply (X &v, const Y &d) override |
| Apply the preconditoner. | |
| virtual void | post (X &x) override |
| Not used at the moment. | |
| virtual Dune::SolverCategory::Category | category () const override |
| Category of the preconditioner (see SolverCategory::Category) | |
| virtual void | update () override |
| const matrix_type_to & | getConvertedMatrix () const |
| void | setUnderlyingPreconditioner (const std::shared_ptr< CudaPreconditionerType > &conditioner) |
Converts the field type (eg.
double to float) to benchmark single precision preconditioners
To use this, use something like the following code:
|
inlineexplicit |
Constructor.
| A | The matrix to operate on. |
|
inlineoverridevirtual |
Implements Dune::PreconditionerWithUpdate< X, Y >.