biorthonormalize_bases Interface

public interface biorthonormalize_bases

Description

Given two Krylov bases and , computes a symmetrically biorthonormalized basis for their column-spans using a symmetric SVD-based biorthogonalization. All computations are done in-place.

Syntax

    call biorthonormalize_bases(X, Y [, tol] [, info])

Arguments

  • X : Array of abstract_vector to biorthonormalize. It is an intent(inout) argument.
  • Y : Array of abstract_vector to biorthonormalize. It is an intent(inout) argument.
  • tol (optional) : Relative tolerance for SVD truncation. Defaults to absolute tolerance. It is an intent(in) argument.
  • info (optional) : Integer flag. Returns the number of retained singular vectors, or a negative value on error. It is an intent(out) argument.

Warning

This function performs standard symmetric biorthonormalization and will return an error if the bases are not of the same size.


Subroutines

private module subroutine biorthonormalize_bases_cdp(X, Y, tol, info)

Symmetrically biorthonormalizes the two abstract_vector bases X and Y.

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_cdp), intent(inout) :: X(:)

First basis to biorthonormalize.

class(abstract_vector_cdp), intent(inout) :: Y(:)

Second basis to biorthonormalize.

real(kind=dp), intent(in), optional :: tol

Relative tolerance for SVD truncation (default: abs tolerance).

integer, intent(out), optional :: info

Number of retained singular vectors, or negative on error.

private module subroutine biorthonormalize_bases_csp(X, Y, tol, info)

Symmetrically biorthonormalizes the two abstract_vector bases X and Y.

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_csp), intent(inout) :: X(:)

First basis to biorthonormalize.

class(abstract_vector_csp), intent(inout) :: Y(:)

Second basis to biorthonormalize.

real(kind=sp), intent(in), optional :: tol

Relative tolerance for SVD truncation (default: abs tolerance).

integer, intent(out), optional :: info

Number of retained singular vectors, or negative on error.

private module subroutine biorthonormalize_bases_rdp(X, Y, tol, info)

Symmetrically biorthonormalizes the two abstract_vector bases X and Y.

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_rdp), intent(inout) :: X(:)

First basis to biorthonormalize.

class(abstract_vector_rdp), intent(inout) :: Y(:)

Second basis to biorthonormalize.

real(kind=dp), intent(in), optional :: tol

Relative tolerance for SVD truncation (default: abs tolerance).

integer, intent(out), optional :: info

Number of retained singular vectors, or negative on error.

private module subroutine biorthonormalize_bases_rsp(X, Y, tol, info)

Symmetrically biorthonormalizes the two abstract_vector bases X and Y.

Arguments

Type IntentOptional Attributes Name
class(abstract_vector_rsp), intent(inout) :: X(:)

First basis to biorthonormalize.

class(abstract_vector_rsp), intent(inout) :: Y(:)

Second basis to biorthonormalize.

real(kind=sp), intent(in), optional :: tol

Relative tolerance for SVD truncation (default: abs tolerance).

integer, intent(out), optional :: info

Number of retained singular vectors, or negative on error.