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 >.