Choral
Data Types | Functions/Subroutines
eigen_mod Module Reference

DERIVED TYPE eigen for eigenvalue / eigenvector problems More...

Data Types

interface  clear
 destructor More...
 
interface  eigen
 Derived type for eigenvalue problem resolution. More...
 
interface  print
 print a short description More...
 
interface  set
 set the solver More...
 
interface  solve
  Solver for: More...
 

Functions/Subroutines

subroutine eigen_clear (eig)
 Destructor. More...
 
type(eigen) function eigen_create (size, nev, sym, std)
  constructor for the type eigen More...
 
subroutine eigen_set (eig, type, mode, which, tol, itMax, shift, verb)
  Eigen-solver settings More...
 
subroutine eigen_print (eig)
 Print a short description. More...
 
subroutine eigen_solve (eig, A, B, Op)
  Eigen-problem resolution More...
 
subroutine arpack_solve (eig, A, B, Op)
 
subroutine arpack_ds (eig, A, B, Op)
 ARPACK, symmetric case. More...
 

Detailed Description

DERIVED TYPE eigen for eigenvalue / eigenvector problems

Choral constants for eigenvalue problems: EIG_xxx, see the list.

A variable 'eig' of type eigen contains the settings for an eigen-solver.
It is created in two steps

  1. eig = eigen(args)
    defines the eigen-problem parameters (standard, symmetric, size), see eigen doc.
  2. call set(eig, optional args)
    define the eigen-solver parameters (mode, tolerance, ...), see set doc.

Problems

Modes.

Solvers

Eigen-problem resolution: after creation of the eigen-solver 'eig' of type eigen:

call solve(eig, args)

see solve description for the argument list.

Author
Charles PIERRE, January 2020

Function/Subroutine Documentation

◆ arpack_ds()

subroutine eigen_mod::arpack_ds ( type(eigen), intent(inout)  eig,
procedure(rntorn), optional  A,
procedure(rntorn), optional  B,
procedure(rntornxl), optional  Op 
)
private

ARPACK, symmetric case.

Definition at line 638 of file eigen_mod.F90.

Here is the call graph for this function:

◆ arpack_solve()

subroutine eigen_mod::arpack_solve ( type(eigen), intent(inout)  eig,
procedure(rntorn), optional  A,
procedure(rntorn), optional  B,
procedure(rntornxl), optional  Op 
)
private

Definition at line 614 of file eigen_mod.F90.

Here is the call graph for this function:

◆ eigen_clear()

subroutine eigen_mod::eigen_clear ( type(eigen), intent(inout)  eig)
private

Destructor.

Definition at line 249 of file eigen_mod.F90.

◆ eigen_create()

type(eigen) function eigen_mod::eigen_create ( integer, intent(in)  size,
integer, intent(in)  nev,
logical, intent(in)  sym,
logical, intent(in)  std 
)
private

constructor for the type eigen

Parameters
[out]eigeigen-solver settings
[in]sizeproblem size ( \( x\in\R^{\rm size}\))
[in]nevnumber of eigen-modes to be computed
[in]symsymmetric problem ? [TRUE/FALSE]
[in]stdstandard problem ? [TRUE/FALSE]

Definition at line 268 of file eigen_mod.F90.

Here is the call graph for this function:

◆ eigen_print()

subroutine eigen_mod::eigen_print ( type(eigen), intent(in)  eig)
private

Print a short description.

Definition at line 389 of file eigen_mod.F90.

◆ eigen_set()

subroutine eigen_mod::eigen_set ( type(eigen), intent(inout)  eig,
integer, intent(in), optional  type,
integer, intent(in), optional  mode,
integer, intent(in), optional  which,
real(rp), intent(in), optional  tol,
integer, intent(in), optional  itMax,
real(rp), intent(in), optional  shift,
integer, intent(in), optional  verb 
)
private

Eigen-solver settings

Pre-defined eigen-solver settings are modified by a list of optional arguments.

Parameters
[in,out]eigeigen-solver settings
[in]typesolver type (default EIG_ARPACK)
[in]whichtargetted eigenvalues (default EIG_WHICH_SM')
[in]modemethod (default EIG_REGULAR)
[in]toltolerance (default 1E-8_RP)
[in]itMaxMax iteration number (default 100)
[in]verbverbosity (default 0)
[in]shiftshift value (default 0.0_RP)

Definition at line 325 of file eigen_mod.F90.

Here is the call graph for this function:

◆ eigen_solve()

subroutine eigen_mod::eigen_solve ( type(eigen), intent(inout)  eig,
procedure(rntorn), optional  A,
procedure(rntorn), optional  B,
procedure(rntornxl), optional  Op 
)
private

Eigen-problem resolution

Parameters
[in,out]eigeigen-solver settings

See solve for the output description.

Optional arguments:

Parameters
[in]Aeigen-problem matrix, procedural arguments with interface RnToRn
[in]Beigen-problem matrix (generalised problems), procedural arguments with interface RnToRn
[in]Oplinear problem solver, procedural arguments with interface RnToRnxL.

See solve for the argument list description.

Definition at line 458 of file eigen_mod.F90.

Here is the call graph for this function: