|
dune-istl 2.11
|
Class for using LDL with ISTL matrices. More...
#include <iostream>#include <memory>#include <type_traits>#include <dune/common/exceptions.hh>#include <dune/istl/bccsmatrixinitializer.hh>#include <dune/istl/solvers.hh>#include <dune/istl/solvertype.hh>#include <dune/istl/solverregistry.hh>Go to the source code of this file.
Classes | |
| class | Dune::LDL< Matrix > |
| Use the LDL package to directly solve linear systems – empty default class. More... | |
| class | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > > |
| The LDL direct sparse solver for matrices of type BCRSMatrix. More... | |
| struct | Dune::IsDirectSolver< LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > > > |
| struct | Dune::StoresColumnCompressed< LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > > > |
Namespaces | |
| namespace | Dune |
Functions | |
| Dune::DUNE_REGISTER_SOLVER ("ldl", [](auto opTraits, const auto &op, const Dune::ParameterTree &config) -> std::shared_ptr< typename decltype(opTraits)::solver_type > { using OpTraits=decltype(opTraits);using M=typename OpTraits::matrix_type;if constexpr(OpTraits::isParallel){ if(opTraits.getCommOrThrow(op).communicator().size() > 1) DUNE_THROW(Dune::InvalidStateException, "LDL works only for sequential operators.");} if constexpr(std::is_convertible_v< LDL< M > *, Dune::InverseOperator< typename OpTraits::domain_type, typename OpTraits::range_type > * > &&std::is_same_v< typename FieldTraits< M >::field_type, double >){ const auto &A=opTraits.getAssembledOpOrThrow(op);const M &mat=A->getmat();int verbose=config.get("verbose", 0);return std::make_shared< LDL< M > >(mat, verbose);} DUNE_THROW(UnsupportedType, "Unsupported Type in LDL (only FieldMatrix<double,...> supported)");}) | |
Class for using LDL with ISTL matrices.