Modules

ModuleSource FileDescription
LightKrylov LightKrylov.f90
LightKrylov_AbstractLinops AbstractLinops.f90

This module provides the base classes abtract_linop_rsp, abstract_linop_rdp, abstract_linop_csp and abstract_linop_cdp which can be used to define your own linear operators. To do so, you simply need to provide two type-bound procedures:

Read more…
LightKrylov_AbstractSystems AbstractSystems.f90

This module provides the abstract types necessary to define an algebraic system of nonlinear equations to be solved using the Newton method.

LightKrylov_AbstractVectors AbstractVectors.f90

This module provides the base class absract_vector from which all Krylov vectors needs to be derived. To use LightKrylov, you need to extend one of the followings:

Read more…
LightKrylov_BaseKrylov BaseKrylov.f90

This module provides a collection of Krylov-based factorizations forming the computational core of LightKrylov. It also provides a set of utility functions to operate on arrays of abstract_vector. The most important ones are:

Read more…
LightKrylov_Constants Constants.f90

This module defines a list of simple constants used throughout LightKrylov. It also provides some utility functions related to let LightKrylov be aware of any MPI-related information (e.g. rank of the current MPI process, dimension of the MPI communicator, etc).

LightKrylov_ExpmLib ExpmLib.f90

This module implements the evaluation of the "matrix-exponential times vector" procedure using Krylov methods.

LightKrylov_IterativeSolvers IterativeSolvers.f90

This module provides some of the most important computational routines provided by LightKrylov. These include:

Read more…
LightKrylov_NewtonKrylov NewtonKrylov.f90
LightKrylov_utils Utils.f90

This module provides a set of utility functions used throughout LightKrylov. It includes:

Read more…