user_module Module

A module for IDR(s) to make data type and operators compatible


Uses

  • module~~user_module~~UsesGraph module~user_module user_module module~comm_variable comm_variable module~user_module->module~comm_variable module~cslp_solver CSLP_Solver module~user_module->module~cslp_solver module~deflaion_setup deflaion_setup module~user_module->module~deflaion_setup module~operators operators module~user_module->module~operators mpi mpi module~user_module->mpi module~comm_variable->mpi module~cslp_solver->module~comm_variable module~cslp_solver->module~operators module~cslp_solver->mpi module~mpi_setup mpi_setup module~cslp_solver->module~mpi_setup module~smoother smoother module~cslp_solver->module~smoother module~wavenumber wavenumber module~cslp_solver->module~wavenumber module~deflaion_setup->module~comm_variable module~deflaion_setup->module~cslp_solver module~deflaion_setup->module~operators module~deflaion_setup->mpi module~deflaion_setup->module~mpi_setup module~deflaion_setup->module~wavenumber module~operators->module~comm_variable module~operators->mpi module~define_bc define_BC module~operators->module~define_bc module~operators->module~mpi_setup module~operators->module~wavenumber module~define_bc->module~comm_variable module~define_bc->module~wavenumber module~mpi_setup->module~comm_variable module~mpi_setup->mpi module~smoother->module~comm_variable module~smoother->module~operators module~smoother->module~define_bc module~smoother->module~mpi_setup module~wavenumber->module~comm_variable module~wavenumber->mpi module~wavenumber->module~mpi_setup

Used by

  • module~~user_module~~UsedByGraph module~user_module user_module module~idrs_module idrs_module module~idrs_module->module~user_module program~helmholtz_2d helmholtz_2d program~helmholtz_2d->module~user_module program~helmholtz_2d->module~idrs_module

Interfaces

public interface OPERATOR(*)

  • public function rmatvec(A, v)

    This is an empty matrix-vector multiplication for real-type input v

    Arguments

    Type IntentOptional Attributes Name
    type(matrix), intent(in) :: A
    real(kind=realdp), intent(in) :: v(:,:)

    Return Value real(kind=realdp), (size(v,1),size(v,2))

  • public function cmatvec(A, v)

    This is complex matrix-vector multiplication

    Arguments

    Type IntentOptional Attributes Name
    type(matrix), intent(in) :: A
    complex(kind=realdp), intent(in) :: v(:,:)

    Return Value complex(kind=realdp), (size(v,1),size(v,2))

public interface OPERATOR(/)

  • public function rprecon(v, M1)

    This is an empty preconditioner for real-type input v

    Arguments

    Type IntentOptional Attributes Name
    real(kind=realdp), intent(in), dimension(:,:) :: v
    type(preconditioner), intent(in) :: M1

    Return Value real(kind=realdp), dimension(size(v,1),size(v,2))

  • public function cprecon(v, M1)

    This is an preconditioner for complex-type input v, i.e. M1^(-1)v We can manully call different preconditioners here. Here only use multigrid-based CLSP

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=realdp), intent(in) :: v(:,:)
    type(preconditioner), intent(in) :: M1

    Return Value complex(kind=realdp), (size(v,1),size(v,2))


Derived Types

type, public ::  matrix

This is an empty matrix type

type, public ::  preconditioner

Components

Type Visibility Attributes Name Initial
integer, public :: ni
integer, public :: nj
real(kind=realdp), public :: hx_c
real(kind=realdp), public :: hy_c

Functions

public function rmatvec(A, v)

This is an empty matrix-vector multiplication for real-type input v

Arguments

Type IntentOptional Attributes Name
type(matrix), intent(in) :: A
real(kind=realdp), intent(in) :: v(:,:)

Return Value real(kind=realdp), (size(v,1),size(v,2))

public function cmatvec(A, v)

This is complex matrix-vector multiplication

Arguments

Type IntentOptional Attributes Name
type(matrix), intent(in) :: A
complex(kind=realdp), intent(in) :: v(:,:)

Return Value complex(kind=realdp), (size(v,1),size(v,2))

public function rprecon(v, M1)

This is an empty preconditioner for real-type input v

Arguments

Type IntentOptional Attributes Name
real(kind=realdp), intent(in), dimension(:,:) :: v
type(preconditioner), intent(in) :: M1

Return Value real(kind=realdp), dimension(size(v,1),size(v,2))

public function cprecon(v, M1)

This is an preconditioner for complex-type input v, i.e. M1^(-1)v We can manully call different preconditioners here. Here only use multigrid-based CLSP

Arguments

Type IntentOptional Attributes Name
complex(kind=realdp), intent(in) :: v(:,:)
type(preconditioner), intent(in) :: M1

Return Value complex(kind=realdp), (size(v,1),size(v,2))