gko::experimental::solver::
Direct#
Direct solver built from a sparse \(LU\) (or \(LDL^T\)) factorisation
supplied by a Factorization
factory. The factorisation is computed once during generate() and
reused across every apply(); each apply runs a forward solve on
the \(L\) factor followed by a backward solve on the \(U\) factor.
The factorisation factory is provided as the factorization factory
parameter — typically a built-in factorisation
(Cholesky,
Lu) or a user-supplied one. The native
Ginkgo triangular solvers
(LowerTrs, UpperTrs) handle the
substitutions.
For an introduction to direct solvers in Ginkgo, see the direct solver concept page.
-
template<typename ValueType, typename IndexType>
class Direct # Inherits from
public gko::EnableLinOp<Direct<ValueType, IndexType>>
public gko::solver::EnableSolverBase<Direct<ValueType, IndexType>, factorization::Factorization<ValueType, IndexType>>
public gko::Transposable
A direct solver based on a factorization into lower and upper triangular factors (with an optional diagonal scaling). The solver is built from the Factorization returned by the provided LinOpFactory.
- Template Parameters:
ValueType – the type used to store values of the system matrix
IndexType – the type used to store sparsity pattern indices of the system matrix
Public Functions
-
virtual std::unique_ptr<LinOp> transpose() const override#
Returns a LinOp representing the transpose of the Transposable object.
- Returns:
a pointer to the new transposed object
-
virtual std::unique_ptr<LinOp> conj_transpose() const override#
Returns a LinOp representing the conjugate transpose of the Transposable object.
- Returns:
a pointer to the new conjugate transposed object
Public Static Functions
- static parameters_type parse(
- const config::pnode &config,
- const config::registry &context,
- const config::type_descriptor &td_for_child = config::make_type_descriptor<ValueType, IndexType>(),
Create the parameters from the property_tree. Because this is directly tied to the specific type, the value/index type settings within config are ignored and type_descriptor is only used for children configs.
- Parameters:
config – the property tree for setting
context – the registry
td_for_child – the type descriptor for children configs. The default uses the value/index type of this class.
- Returns:
parameters
-
struct parameters_type #
Inherits from
public gko::enable_parameters_type<parameters_type, Factory>
Public Members
-
gko::size_type num_rhs#
Number of right hand sides.
Note
This value is currently only required for the CUDA executor, which will throw an exception if a different number of rhs is passed to Direct::apply.
-
std::shared_ptr<const LinOpFactory> factorization#
The factorization factory to use for generating the factors.