Ginkgo Generated from branch based on main. Ginkgo version 1.11.0
A numerical linear algebra library targeting many-core architectures
Loading...
Searching...
No Matches
gko::experimental::solver::Direct< ValueType, IndexType > Class Template Reference

A direct solver based on a factorization into lower and upper triangular factors (with an optional diagonal scaling). More...

#include <ginkgo/core/solver/direct.hpp>

Inheritance diagram for gko::experimental::solver::Direct< ValueType, IndexType >:
[legend]
Collaboration diagram for gko::experimental::solver::Direct< ValueType, IndexType >:
[legend]

Classes

struct  parameters_type
class  Factory

Public Types

using value_type = ValueType
using index_type = IndexType
using factorization_type
using transposed_type = Direct
Public Types inherited from gko::EnablePolymorphicAssignment< Direct< ValueType, IndexType > >
using result_type

Public Member Functions

std::unique_ptr< LinOptranspose () const override
 Returns a LinOp representing the transpose of the Transposable object.
std::unique_ptr< LinOpconj_transpose () const override
 Returns a LinOp representing the conjugate transpose of the Transposable object.
const parameters_typeget_parameters () const
 Direct (const Direct &)
 Creates a copy of the solver.
 Direct (Direct &&)
 Moves from the given solver, leaving it empty.
Directoperator= (const Direct &)
Directoperator= (Direct &&)
Public Member Functions inherited from gko::EnableLinOp< Direct< ValueType, IndexType > >
const Direct< ValueType, IndexType > * apply (ptr_param< const LinOp > b, ptr_param< LinOp > x) const
Public Member Functions inherited from gko::EnablePolymorphicAssignment< Direct< ValueType, IndexType > >
void convert_to (result_type *result) const override
void move_to (result_type *result) override
Public Member Functions inherited from gko::solver::EnableSolverBase< Direct< ValueType, IndexType >, factorization::Factorization< ValueType, IndexType > >
EnableSolverBase & operator= (const EnableSolverBase &other)
 Creates a shallow copy of the provided system matrix, clones it onto this executor if executors don't match.
int get_num_workspace_ops () const override
std::vector< std::string > get_workspace_op_names () const override
std::vector< int > get_workspace_scalars () const override
 Returns the IDs of all scalars (workspace vectors with system dimension-independent size, usually 1 x num_rhs).
std::vector< int > get_workspace_vectors () const override
 Returns the IDs of all vectors (workspace vectors with system dimension-dependent size, usually system_matrix_size x num_rhs).
Public Member Functions inherited from gko::solver::SolverBase< factorization::Factorization< ValueType, IndexType > >
std::shared_ptr< const factorization::Factorization< ValueType, IndexType > > get_system_matrix () const
 Returns the system matrix, with its concrete type, used by the solver.

Static Public Member Functions

static auto build () -> decltype(Factory::create())
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.

Friends

class EnablePolymorphicObject< Direct, LinOp >

Detailed Description

template<typename ValueType, typename IndexType>
class gko::experimental::solver::Direct< ValueType, IndexType >

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
ValueTypethe type used to store values of the system matrix
IndexTypethe type used to store sparsity pattern indices of the system matrix

Member Typedef Documentation

◆ factorization_type

template<typename ValueType, typename IndexType>
using gko::experimental::solver::Direct< ValueType, IndexType >::factorization_type
Initial value:
Represents a generic factorization consisting of two triangular factors (upper and lower) and an opti...
Definition factorization.hpp:76

Member Function Documentation

◆ conj_transpose()

template<typename ValueType, typename IndexType>
std::unique_ptr< LinOp > gko::experimental::solver::Direct< ValueType, IndexType >::conj_transpose ( ) const
overridevirtual

Returns a LinOp representing the conjugate transpose of the Transposable object.

Returns
a pointer to the new conjugate transposed object

Implements gko::Transposable.

◆ parse()

template<typename ValueType, typename IndexType>
parameters_type gko::experimental::solver::Direct< ValueType, IndexType >::parse ( const config::pnode & config,
const config::registry & context,
const config::type_descriptor & td_for_child = config::make_type_descriptor< ValueType, IndexType >() )
static

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
configthe property tree for setting
contextthe registry
td_for_childthe type descriptor for children configs. The default uses the value/index type of this class.
Returns
parameters

◆ transpose()

template<typename ValueType, typename IndexType>
std::unique_ptr< LinOp > gko::experimental::solver::Direct< ValueType, IndexType >::transpose ( ) const
overridevirtual

Returns a LinOp representing the transpose of the Transposable object.

Returns
a pointer to the new transposed object

Implements gko::Transposable.


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