psfun_d_quadrature_mod Module

This module computes the matrix-function vector product by means of the approximation of based on quadrature formula, i.e., having computed the poles and the scalings of the formula solves linear systems to approximate the product.


Uses

  • module~~psfun_d_quadrature_mod~~UsesGraph module~psfun_d_quadrature_mod psfun_d_quadrature_mod ogpf ogpf module~psfun_d_quadrature_mod->ogpf psb_base_mod psb_base_mod module~psfun_d_quadrature_mod->psb_base_mod module~psfun_base_quadrature_mod psfun_base_quadrature_mod module~psfun_d_quadrature_mod->module~psfun_base_quadrature_mod module~psfun_utils_mod psfun_utils_mod module~psfun_d_quadrature_mod->module~psfun_utils_mod module~psfun_base_quadrature_mod->psb_base_mod module~psfun_base_quadrature_mod->module~psfun_utils_mod psb_krylov_mod psb_krylov_mod module~psfun_base_quadrature_mod->psb_krylov_mod psb_prec_mod psb_prec_mod module~psfun_base_quadrature_mod->psb_prec_mod module~psfun_utils_mod->psb_base_mod

Used by

  • module~~psfun_d_quadrature_mod~~UsedByGraph module~psfun_d_quadrature_mod psfun_d_quadrature_mod module~psfun_quadrature_mod psfun_quadrature_mod module~psfun_quadrature_mod->module~psfun_d_quadrature_mod program~quadraturetest quadraturetest program~quadraturetest->module~psfun_quadrature_mod

Contents


Abstract Interfaces

abstract interface

  • public function dquadfun(z) result(res)

    Arguments

    Type IntentOptional AttributesName
    real(kind=psb_dpk_), intent(in) :: z

    Return Value complex(kind=psb_dpk_)

abstract interface

  • public subroutine dquadrule(dfun, xi, c, eta, sign, N, info, cparams, rparams)

    To integrate a function that take as inputs real numbers and gives as output complex numbers

    Arguments

    Type IntentOptional AttributesName
    procedure(dquadfun), intent(in), pointer:: dfun

    Function to integrate

    complex(kind=psb_dpk_), intent(out), allocatable, dimension(:):: xi

    Poles of the formula

    complex(kind=psb_dpk_), intent(out), allocatable, dimension(:):: c

    Scaling of the formula

    complex(kind=psb_dpk_), intent(out) :: eta

    Global Scaling

    complex(kind=psb_dpk_), intent(out) :: sign

    Sign for A

    integer(kind=psb_ipk_), intent(in) :: N

    Number of Poles

    integer(kind=psb_ipk_), intent(out) :: info

    Flag on the results

    complex(kind=psb_dpk_), intent(in), optional dimension(:):: cparams

    Optional complex parameters

    real(kind=psb_dpk_), intent(in), optional dimension(:):: rparams

    Optional real parameters


Derived Types

type, public, extends(psfun_quadrature) :: psfun_d_quadrature

Components

TypeVisibility AttributesNameInitial
type(psb_dspmat_type), public, pointer:: a

Matrix on which we work

real(kind=psb_dpk_), public, allocatable, dimension(:):: c

Scaling of the formula

type(psb_desc_type), public :: desc_a

Descriptor for parallel environment

real(kind=psb_dpk_), public :: eta

Global Scaling

type(psb_dprec_type), public :: prec

Preconditioner for the solution of the associated linear systems

real(kind=psb_dpk_), public :: sign

Sign for A

real(kind=psb_dpk_), public, allocatable, dimension(:):: xi

Poles of the formula

Type-Bound Procedures

procedure, public, pass(quad) :: plot => psfun_d_quadratureplot

Subroutines

public subroutine psfun_d_quadratureplot(quad, dfun, filename, info)

Plots on the complex plane the quadrature poles, and plots the weights of the formula

Arguments

Type IntentOptional AttributesName
class(psfun_d_quadrature), intent(in) :: quad

Quadrature rule

procedure(dquadfun), intent(in), pointer:: dfun

Function to integrate

character(len=*), intent(in), optional :: filename

Filename for the figure

integer(kind=psb_ipk_), intent(out) :: info

Result of the plot