idrs_module Module

IDRS Induced Dimension Reduction method


Uses

  • module~~idrs_module~~UsesGraph module~idrs_module idrs_module module~comm_variable comm_variable module~idrs_module->module~comm_variable module~mpi_setup mpi_setup module~idrs_module->module~mpi_setup module~read_setup read_setup module~idrs_module->module~read_setup module~user_module user_module module~idrs_module->module~user_module mpi mpi module~idrs_module->mpi module~comm_variable->mpi module~mpi_setup->module~comm_variable module~mpi_setup->mpi module~read_setup->module~comm_variable module~read_setup->mpi module~user_module->module~comm_variable module~user_module->mpi 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 module~cslp_solver->module~comm_variable module~cslp_solver->module~mpi_setup module~cslp_solver->mpi module~cslp_solver->module~operators 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~mpi_setup module~deflaion_setup->mpi module~deflaion_setup->module~cslp_solver module~deflaion_setup->module~operators module~deflaion_setup->module~wavenumber module~operators->module~comm_variable module~operators->module~mpi_setup module~operators->mpi module~define_bc define_BC module~operators->module~define_bc module~operators->module~wavenumber module~define_bc->module~comm_variable module~define_bc->module~wavenumber module~smoother->module~comm_variable module~smoother->module~mpi_setup module~smoother->module~operators module~smoother->module~define_bc module~wavenumber->module~comm_variable module~wavenumber->module~mpi_setup module~wavenumber->mpi

Used by

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

Interfaces

public interface TRACE_DOT

  • private function CTRACE_DOT(v, w)

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=realdp), intent(in) :: v(1-LAP:nx+LAP,1-LAP:ny+LAP)
    complex(kind=realdp), intent(in) :: w(1-LAP:nx+LAP,1-LAP:ny+LAP)

    Return Value complex(kind=realdp)

  • private function RTRACE_DOT(v, w)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=realdp), intent(in) :: v(1-LAP:nx+LAP,1-LAP:ny+LAP)
    real(kind=realdp), intent(in) :: w(1-LAP:nx+LAP,1-LAP:ny+LAP)

    Return Value real(kind=realdp)

  • private function RCTRACE_DOT(v, w)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=realdp), intent(in) :: v(1-LAP:nx+LAP,1-LAP:ny+LAP)
    complex(kind=realdp), intent(in) :: w(1-LAP:nx+LAP,1-LAP:ny+LAP)

    Return Value complex(kind=realdp)

public interface P_DOT

  • private function CP_DOT(P, R0, w, s)

    Arguments

    Type IntentOptional Attributes Name
    real(kind=realdp), intent(in), allocatable :: P(:,:,:)
    complex(kind=realdp), intent(in), allocatable :: R0(:,:)
    complex(kind=realdp), intent(in) :: w(1-LAP:nx+LAP,1-LAP:ny+LAP)
    integer :: s

    Return Value complex(kind=realdp), (s)

  • private function RP_DOT(P, R0, w, s)

    made a big mistake here, only found after done numerous tests,

    Arguments

    Type IntentOptional Attributes Name
    real(kind=realdp), intent(in), allocatable :: P(:,:,:)
    real(kind=realdp), intent(in), allocatable :: R0(:,:)
    real(kind=realdp), intent(in) :: w(1-LAP:nx+LAP,1-LAP:ny+LAP)
    integer :: s

    Return Value real(kind=realdp), (s)

public interface FROB_NORM

  • private function CFROB_NORM(v)

    Frobenius norm of complex matrix

    Arguments

    Type IntentOptional Attributes Name
    complex(kind=realdp), intent(in) :: v(1-LAP:nx+LAP,1-LAP:ny+LAP)

    Return Value real(kind=realdp)

  • private function RFROB_NORM(v)

    Frobenius norm of real matrix

    Arguments

    Type IntentOptional Attributes Name
    real(kind=realdp), intent(in) :: v(1-LAP:nx+LAP,1-LAP:ny+LAP)

    Return Value real(kind=realdp)

public interface IDRS

  • private function CIDRS(A, b, M1, s, tolerance, maximum_iterations, variant, flag, relres, iterations, x0, U0, omega, resvec, H)

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Arguments

    Type IntentOptional Attributes Name
    type(matrix), intent(in) :: A
    complex(kind=realdp), intent(in), allocatable :: b(:,:)
    type(preconditioner), intent(in) :: M1
    integer, intent(in) :: s
    real(kind=realdp), intent(in), optional :: tolerance
    integer, intent(in), optional :: maximum_iterations
    character(len=8), intent(in), optional :: variant
    integer, intent(out), optional :: flag
    real(kind=realdp), intent(out), optional :: relres
    integer, intent(out), optional :: iterations
    complex(kind=realdp), intent(in), optional :: x0(:,:)
    complex(kind=realdp), intent(in), optional :: U0(:,:,:)
    complex(kind=realdp), intent(in), optional :: omega(:)
    real(kind=realdp), intent(out), optional :: resvec(:)
    complex(kind=realdp), intent(out), optional :: H(:,:)

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

  • private function RIDRS(A, b, M1, s, tolerance, maximum_iterations, variant, flag, relres, iterations, x0, U0, omega, H, resvec)

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    +++++++++++++++++++++++++++++++++++++++++++++++++++++++

    Arguments

    Type IntentOptional Attributes Name
    type(matrix), intent(in) :: A
    real(kind=realdp), intent(in), allocatable :: b(:,:)
    type(preconditioner), intent(in) :: M1
    integer, intent(in) :: s
    real(kind=realdp), intent(in), optional :: tolerance
    integer, intent(in), optional :: maximum_iterations
    character(len=8), intent(in), optional :: variant
    integer, intent(out), optional :: flag
    real(kind=realdp), intent(out), optional :: relres
    integer, intent(out), optional :: iterations
    real(kind=realdp), intent(in), optional :: x0(:,:)
    real(kind=realdp), intent(in), optional :: U0(:,:,:)
    real(kind=realdp), intent(in), optional :: omega(:)
    real(kind=realdp), intent(out), optional :: H(:,:)
    real(kind=realdp), intent(out), optional :: resvec(:)

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