Procedures

ProcedureLocationProcedure TypeDescription
apply_givens_rotation solvers Subroutine

APPLY GIVENS ROTATION

arnoldi solvers Subroutine

ARNOLDI precess

back_substitute solvers Subroutine

Apply BACK SUBSTITUTION

check_x2d mpi_setup Subroutine

Exchanges data in the x direction, ONLY for the default (finest) grid system

check_xy2d mpi_setup Subroutine

Exchanges data first in the x direction and then y direction, ONLY for the default (finest) grid system

check_y2d mpi_setup Subroutine

Exchanges data in the y direction, ONLY for the default (finest) grid system no2

cmatvec user_module Function

This is complex matrix-vector multiplication

coarsegrid_create CSLP_Solver Subroutine

This is a routine that define a coarse grid system mg_coarse from a fine grid system mg_fine

CoarseGridpara deflaion_setup Function

A procedure to create a Gridpara type of the coarse grid system from a given a two-grid system

Const_K wavenumber Subroutine

constant wavenumber, determine by input variable k0 data communication with neighbouring subdomains

cprecon user_module Function

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

cslp2d_stencils operators Subroutine

Computational stencils for the CSLP operator

CSLP_Mx_nth operators Function

ReD-Glk CSLP operator for coarse levels

CSLP_Mx_nth_stencils operators Subroutine

ReD-Glk computational stencils of the CSLP operator for differnet coarse-grid level

CSLP_OP_BC operators Subroutine

matrix-free CSLP operator, for the specified gird systems

Damp_Jacobi_smoother smoother Subroutine

This is a routine to apply damped Jacobbi smoother on coarse grid systems.

def_apply_givens_rotation deflaion_setup Subroutine

Apply givens rotation of DEF_fullgmres

def_arnoldi deflaion_setup Subroutine

Arnoldi prosess of DEF_fullgmres Attention: h_(i,j)=(w,v_i)=v^H*w, for complex value, so the code should be dot_product(v_i,w)

def_back_substitute deflaion_setup Subroutine

Perform back substitute in of DEF_fullgmres

DEF_bicgstab deflaion_setup Subroutine

A (CSLP preconditioned) Bi-CGSTAB solver for the coarse-grid problem in two-level deflation method

DEF_fullgmres deflaion_setup Subroutine

A (CSLP preconditioned) GMRES solver for the coarse-grid problem in two-level deflation method Be careful!!, after the whole iteration without achieving eps, then the value of j will be "def_mg_miter+1".So we need a k.

DEF_prefgmres deflaion_setup Subroutine

A recursive flexible GMRES with right deflation preconditioning Be careful!!, after the whole iteration without achieving eps, then the value of j will be "maxit+1".So we need a k.

Read more…
DEF_Px deflaion_setup Function

Identifier for different deflation methods, ONLY for an input array from the default (finest) grid system A basic deflation method

Read more…
default_gridpara deflaion_setup Subroutine

This is a rountine to define the default finest Gridpara from the common grid parameters of the whole project

define_marmousi_grid define_grid Subroutine

Marmousi problem

define_uniform_grid define_grid Subroutine

A square computational domain with a unit side length

define_wedge_grid define_grid Subroutine

Wedge model problem

Dirichlet define_BC Subroutine

Dirichlet, ap=h^2, which will devided by h^2 in the rountine of the operator When use this Dirichlet, you have to be carefull with the RHS respectively

dot_prod operators Function

Compute the do product of two complex variables, ONLY for the default grid system.

Ex deflaion_setup Function

Coarse-grid operation for two-level deflation Straight-forward Galerkin coarsening approach

exact_2DCloseOff analytical_sol Subroutine

The analytical solution for 2D close-off problem

exact_2DPointSource_1stSomer analytical_sol Subroutine

The analytical solution for constant wavenumber problem with central source point with Sommerfeld boundary condition

exact_2DPointSource_Dirichlet analytical_sol Subroutine

The analytical solution for constant wavenumber problem with central source point with Dirichlet boundary condition

ExtrpltGhostBCs deflaion_setup Subroutine

Extrapolate a layer of ghost grid points based on the boundary conditions The zero padding of wavenumber is ok in practical

F_cycle CSLP_Solver Subroutine

This is a classic F-cycle multigrid

finestgrid_define CSLP_Solver Subroutine

This is a routine that define the finest grid system from the default (finest) grid parameters

first_order_Neum define_BC Subroutine

Sommerfeld boundary conditions. Eliminate the ghost grid points by second-order discretization

FROB_NORM idrs_module Interface
FromFine2Coarse deflaion_setup Function

A procedure to create a two-grid system from a given fine Gridpara type The wavenumber of the coarse level is restricted from the fine level

full_pgcr solvers Subroutine

Right preconditioned GCR

full_pgmres solvers Subroutine

Full GMRES with right precondition

fullgmres solvers Subroutine

Full GMRES without precondition

grid_destroy CSLP_Solver Subroutine

This is a routine that deallocate the arrays of a grid system

GridBase_ExtrpltGhostBCs operators Subroutine

Extrapolation of a layer of ghost grid points

gridsys_define CSLP_Solver Subroutine

This is a routine that define a GridSystem type from the grid parameters of a data type Gridpara One can find the differnece of GridSystem and Gridpara

Helm_A2hx deflaion_setup Function

A function that performs the Helmholtz operator on the coarse grid of the two-grid system, by different methods ReD-O2 ReD-Glk ReD-cmpO4

Helm_Ahx deflaion_setup Function

A function that performs the Helmholtz operator on the fine grid of the two-grid system, by ReD-O2 method

Helm_Ax_nth operators Function

ReD-Glk Helmholtz operator for coarse levels

Helm_Ax_nth_stencils operators Subroutine

ReD-Glk computational stencils of the Helmholtz operator for differnet coarse-grid level Default 2nd-ordr stencils

Helmholtz2d_BC operators Subroutine

matrix-free Helmholtz operator, ONLY for the default gird system First deal with the boundary grid points and then the internals

Helmholtz2d_BC_mg operators Subroutine

matrix-free Helmholtz operator, for the specified coarse gird systems

Helmholtz2d_O4cmpct deflaion_setup Subroutine

A coarse-grid Helmholtz operator for two-level deflation, descretized by a classic compact fourth-order FD scheme

Helmholtz2d_ReD_Glk deflaion_setup Subroutine

A coarse-grid Helmholtz operator for two-level deflation, descretized by ReD-GLK FD scheme fill in a layer of ghost grid points by boundary conditions

Read more…
Helmholtz2d_stencils operators Subroutine

Computational stencils for the Helmholtz operator, second-order central FD scheme

IDRS idrs_module Interface
if_BCs define_BC Subroutine

Determine which BC, for specified coarse grid system

invEy deflaion_setup Function

Invert the coarse-grid operator for two-level delfation method, by using GMRES or Bi-CGSTAB determined by the specified maximum number of iterations on the coarse grid

KrylovCSLP_invMHx CSLP_Solver Function

Krylov-based CSLP, starts from the a specified grid sysyem Choose Bi-CGSATB or GMRES by uncomment or comment

LOG2 operators Function

Compute log2(x)

mg_apply_givens_rotation CSLP_Solver Subroutine

This is routine to perform apply_givens_rotation

mg_arnoldi CSLP_Solver Subroutine

Arnoldi precess w=A*v_i

Read more…
mg_back_substitute CSLP_Solver Subroutine

This is routine that performs back substitute

mg_bicgstab CSLP_Solver Subroutine

This is a rountine to solve the (specified) coarsest-grid CSLP system approximately by using Bi-CGSTAB The CSLP is define by ReD-O2 scheme

mg_check_x2d mpi_setup Subroutine

Exchanges data in the x direction, for a specified-size grid system no2 no2

mg_check_xy2d mpi_setup Subroutine

Exchanges data first in the x direction and then y direction, for a specified-size grid system

mg_check_y2d mpi_setup Subroutine

Exchanges data in the y direction, for a specified-size grid system no2 no2

mg_checkreal_x2d mpi_setup Subroutine

Exchanges REAL data in the x direction, for a specified-size grid system no2 no2

mg_checkreal_xy2d mpi_setup Subroutine

Exchanges REAL data first in the x direction and then y direction, for a specified-size grid system

mg_checkreal_y2d mpi_setup Subroutine

Exchanges REAL data in the y direction, for a specified-size grid system no2 no2

mg_dot_prod operators Function

Compute the dot product of two complex variables, for a coarse-grid system. Note that the dimension is not specified here, it means it calculate all the elements

mg_fullgmres CSLP_Solver Subroutine

This is a rountine to solve the (specified) coarsest-grid CSLP system approximately by using GMRES The CSLP is define by ReD-O2 scheme Be careful!!, after the whole iteration without achieving eps, then the value of j will be "m_iter+1".So we need a k. The default tolerance is 1E-08

mg_norm operators Function

Compute the L2-norm of a complex variable, for a coarse-grid system.

MGCSLP_invMHx CSLP_Solver Function

Multigrid-based CSLP, starts from the a specified grid system One V-cycle Two V-cycle One F-cycle

MGCSLP_invMx CSLP_Solver Function

Multigrid-Based CSLP, ONLY starts from the default (finest) grid sysyem One V-cycle Two V-cycle One F-cycle

MultiLevel_invEy deflaion_setup Function

A recursive function to invert the coarse-level operators for multilevel delfation methods, by using preconditioned FGMRES

MultiLevelADP_Px deflaion_setup Function

Multilevel deflation preconditioning (MADP) Multigrid-based CSLP on the finest and second level Krylov-based CSLP on the finest and second level

my_mod1 mpi_setup Function

A function to calculate the modulo of two integers na and nb

norm operators Function

Compute the L2-norm of a complex variable, ONLY for the default grid system.

OPERATOR(*) user_module Interface
OPERATOR(/) user_module Interface
P_ADEF1x deflaion_setup Function

Adapted Deflation Preconditioning, P = M^(-1)(I-AQ)+Q, including higher-order deflation (ADP) if LAP > 1

P_DEFx deflaion_setup Function

Deflation preconditioning, P = (I-AQ)+Q

P_DOT idrs_module Interface
P_TLKMx deflaion_setup Function

Two-Level Krylov Method, P = [(I-M^(-1)AQ)+Q]M^(-1), where Q' is defined based on M^(-1)A M^(-1)x QM^(-1)x

Read more…
part2d mpi_setup Subroutine

Partitions the 2D domain for parallel processing and calculates offsets and sizes for each partition the ID of partion along 2 directions -1 proc in x-direction +1 proc in x-direction if not periodic, 0 node donot send mesg to npx0-1 node if not periodic, npx0-1 node donot send mesg to 0 node

pfgmres solvers Subroutine

Flexible GMRES with right precondition

Pre_fullgmres solvers Subroutine

Full GMRES with left preconditioned

Pre_restartgmres solvers Subroutine

Preconditioned restart GMRES

Prearnoldi solvers Subroutine

Preconditioned ARNOLDI precess

Precond_x solvers Function

This is a routine to select which preconditioner is applied, Precond_x = P^(-1)x

prolongation_en_correct CSLP_Solver Subroutine

This is routine that perform bilinear interpolation and correction from coarse to fine grid system, mainly solution (u) on coarse grid --> correction (e_h) for solution (u) of fine grid Based on the relationship of the index between the fine and coarse grid

Px deflaion_setup Function

Perform y=Px in deflation definition, where P=I-AQ

Qx deflaion_setup Function

Perform y=Qx in deflation definition, where Q=ZE^(-1)Z^T

read_parameter read_setup Subroutine

read the input parameters for the solver settings Read by Rank 0 and then broadcast to the other ranks Get the input filename

Read more…
read_wavenumber_k_marmousi wavenumber Subroutine

Read the velocity profile of Marmousi problem with specified grid size and calculate the wavenumber

Realnorm operators Function

Compute the L2-norm of a real variable, ONLY for the default grid system.

ReD_Glk_CSLP_bicgstab CSLP_Solver Subroutine

This is a rountine to solve a coarse grid CSLP system approximately by using Bi-CGSTAB. The CSLP operator is defined by ReD-Glk scheme. CSLP operator by ReD-Glk

ReD_Glk_CSLP_gmres CSLP_Solver Subroutine

This is a rountine to solve a coarse grid CSLP system approximately by using GMRES The CSLP operator is defined by ReD-Glk scheme CSLP operator by ReD-Glk

Read more…
ReD_Glk_stencils deflaion_setup Subroutine

ReD-Glk computational stencils of the Helmholtz operator for coarse-grid level in two-deflation method

restartgmres solvers Subroutine

Restart GMRES

restriction CSLP_Solver Subroutine

This is routine that perform full-weight resctriction from fine to coarse grid system, mainly residual (res) on fine grid --> right-hand side (rhs) on coarse grid, wavenumber on fine grid --> wavenumber on the coarse grid Based on the relationship of the index between the fine and coarse grid

RHS_2DCloseOff define_rhs Subroutine

2D close-off problem with Dirichlet boundary condition

RHS_2DWedge define_rhs Subroutine

2D Wedge problem A point source located at (300,0)

RHS_CenterSource2D define_rhs Subroutine

2D constant wavenumber problem with a central point source A point source located at (0.5,0.5)

RHS_marmousi define_rhs Subroutine

Marmousi problem A point source located at (6000,0)

rmatvec user_module Function

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

rprecon user_module Function

This is an empty preconditioner for real-type input v

TRACE_DOT idrs_module Interface
TwoGrids deflaion_setup Interface
V_cycle CSLP_Solver Subroutine

A classic multigrid V-cycle A classic Two-Cycle GMRES or Bi-CGSTAB can be chose to solve the coarse-grid problem GMRES or Bi-CGSTAB can be chose to solve the coarsest-grid problem

wavenumber_FWrestriction deflaion_setup Subroutine

This routine obtains the wavenumber of the coarse level by full-weight restriction from the fine level

wavenumber_k_destroy wavenumber Subroutine

Deallocate the wavenumber field in the end

wavenumber_k_Wedge wavenumber Subroutine

Wavenumber for Wedge model problem The top layer The bottom layer The middle layer

write_data_whole write_data Subroutine

Write the solutions

write_exact_data_whole write_data Subroutine

Write the analytical solutions

write_real_data_whole write_data Subroutine

Write the real wavenumber/variables

ZTx deflaion_setup Function

Restriction of a variable, by full-weight restriction or higher-order restriction depending on the laylers of overlapping grid points used.

ZTZx deflaion_setup Function

A routine that first perform restriction and then interpolation

Zx deflaion_setup Function

Interpolation of a variable from coarse to fine, by bilinear or higher-order interpolation depending on the laylers of overlapping grid points used.

call~~graph~~CallGraph interface~frob_norm FROB_NORM interface~idrs IDRS interface~operator(ASTERISK) OPERATOR(*) proc~cmatvec cmatvec interface~operator(ASTERISK)->proc~cmatvec proc~rmatvec rmatvec interface~operator(ASTERISK)->proc~rmatvec interface~operator(SLASH) OPERATOR(/) proc~cprecon cprecon interface~operator(SLASH)->proc~cprecon proc~rprecon rprecon interface~operator(SLASH)->proc~rprecon interface~p_dot P_DOT interface~trace_dot TRACE_DOT interface~twogrids TwoGrids proc~fromfine2coarse FromFine2Coarse interface~twogrids->proc~fromfine2coarse proc~apply_givens_rotation apply_givens_rotation cdsqrt cdsqrt proc~apply_givens_rotation->cdsqrt proc~arnoldi arnoldi proc~dot_prod dot_prod proc~arnoldi->proc~dot_prod proc~helmholtz2d_bc Helmholtz2d_BC proc~arnoldi->proc~helmholtz2d_bc proc~norm norm proc~arnoldi->proc~norm proc~back_substitute back_substitute proc~check_x2d check_x2d mpi_sendrecv mpi_sendrecv proc~check_x2d->mpi_sendrecv proc~check_xy2d check_xy2d proc~check_xy2d->proc~check_x2d proc~check_y2d check_y2d proc~check_xy2d->proc~check_y2d proc~check_y2d->mpi_sendrecv proc~cmatvec->proc~helmholtz2d_bc proc~coarsegrid_create coarsegrid_create proc~coarsegridpara CoarseGridpara proc~const_k Const_K proc~mg_checkreal_xy2d mg_checkreal_xy2d proc~const_k->proc~mg_checkreal_xy2d proc~mgcslp_invmx MGCSLP_invMx proc~cprecon->proc~mgcslp_invmx proc~cslp2d_stencils cslp2d_stencils proc~cslp_mx_nth CSLP_Mx_nth proc~cslp_mx_nth->proc~cslp2d_stencils proc~cslp_mx_nth_stencils CSLP_Mx_nth_stencils proc~cslp_mx_nth->proc~cslp_mx_nth_stencils proc~gridbase_extrpltghostbcs GridBase_ExtrpltGhostBCs proc~cslp_mx_nth->proc~gridbase_extrpltghostbcs proc~log2 LOG2 proc~cslp_mx_nth->proc~log2 proc~mg_check_xy2d mg_check_xy2d proc~cslp_mx_nth->proc~mg_check_xy2d proc~cslp_mx_nth_stencils->proc~log2 proc~cslp_op_bc CSLP_OP_BC proc~cslp_op_bc->proc~cslp2d_stencils proc~if_bcs if_BCs proc~cslp_op_bc->proc~if_bcs proc~cslp_op_bc->proc~mg_check_xy2d proc~damp_jacobi_smoother Damp_Jacobi_smoother proc~damp_jacobi_smoother->proc~cslp2d_stencils proc~damp_jacobi_smoother->proc~if_bcs proc~damp_jacobi_smoother->proc~mg_check_xy2d proc~def_apply_givens_rotation def_apply_givens_rotation proc~def_apply_givens_rotation->cdsqrt proc~def_arnoldi def_arnoldi proc~ex Ex proc~def_arnoldi->proc~ex proc~mg_dot_prod mg_dot_prod proc~def_arnoldi->proc~mg_dot_prod proc~mg_norm mg_norm proc~def_arnoldi->proc~mg_norm proc~mgcslp_invmhx MGCSLP_invMHx proc~def_arnoldi->proc~mgcslp_invmhx proc~def_back_substitute def_back_substitute proc~def_bicgstab DEF_bicgstab proc~def_bicgstab->proc~coarsegridpara proc~def_bicgstab->proc~ex proc~def_bicgstab->proc~mg_dot_prod proc~def_bicgstab->proc~mg_norm proc~def_bicgstab->proc~mgcslp_invmhx proc~def_fullgmres DEF_fullgmres proc~def_fullgmres->proc~coarsegridpara proc~def_fullgmres->proc~def_apply_givens_rotation proc~def_fullgmres->proc~def_arnoldi proc~def_fullgmres->proc~def_back_substitute proc~def_fullgmres->proc~ex proc~def_fullgmres->proc~mg_norm proc~def_fullgmres->proc~mgcslp_invmhx proc~def_prefgmres DEF_prefgmres proc~def_prefgmres->proc~coarsegridpara proc~helm_ax_nth Helm_Ax_nth proc~def_prefgmres->proc~helm_ax_nth proc~krylovcslp_invmhx KrylovCSLP_invMHx proc~def_prefgmres->proc~krylovcslp_invmhx proc~def_prefgmres->proc~mg_dot_prod proc~def_prefgmres->proc~mg_norm proc~multileveladp_px MultiLevelADP_Px proc~def_prefgmres->proc~multileveladp_px proc~def_prefgmres->cdsqrt proc~def_px DEF_Px proc~default_gridpara default_gridpara proc~def_px->proc~default_gridpara proc~def_px->proc~multileveladp_px proc~p_adef1x P_ADEF1x proc~def_px->proc~p_adef1x proc~p_defx P_DEFx proc~def_px->proc~p_defx proc~p_tlkmx P_TLKMx proc~def_px->proc~p_tlkmx proc~define_marmousi_grid define_marmousi_grid mpi_recv mpi_recv proc~define_marmousi_grid->mpi_recv mpi_send mpi_send proc~define_marmousi_grid->mpi_send proc~define_uniform_grid define_uniform_grid proc~define_uniform_grid->mpi_recv proc~define_uniform_grid->mpi_send proc~define_wedge_grid define_wedge_grid proc~define_wedge_grid->mpi_recv proc~define_wedge_grid->mpi_send proc~dirichlet Dirichlet mpi_allreduce mpi_allreduce proc~dot_prod->mpi_allreduce proc~ex->proc~coarsegridpara proc~helm_a2hx Helm_A2hx proc~ex->proc~helm_a2hx proc~helm_ahx Helm_Ahx proc~ex->proc~helm_ahx proc~ex->proc~mgcslp_invmhx proc~ztx ZTx proc~ex->proc~ztx proc~ztzx ZTZx proc~ex->proc~ztzx proc~zx Zx proc~ex->proc~zx proc~exact_2dcloseoff exact_2DCloseOff dsin dsin proc~exact_2dcloseoff->dsin proc~exact_2dpointsource_1stsomer exact_2DPointSource_1stSomer proc~exact_2dpointsource_dirichlet exact_2DPointSource_Dirichlet proc~extrpltghostbcs ExtrpltGhostBCs proc~f_cycle F_cycle proc~f_cycle->proc~coarsegrid_create proc~f_cycle->proc~cslp_op_bc proc~f_cycle->proc~damp_jacobi_smoother proc~f_cycle->proc~f_cycle proc~grid_destroy grid_destroy proc~f_cycle->proc~grid_destroy proc~mg_bicgstab mg_bicgstab proc~f_cycle->proc~mg_bicgstab proc~mg_fullgmres mg_fullgmres proc~f_cycle->proc~mg_fullgmres proc~prolongation_en_correct prolongation_en_correct proc~f_cycle->proc~prolongation_en_correct proc~restriction restriction proc~f_cycle->proc~restriction proc~v_cycle V_cycle proc~f_cycle->proc~v_cycle proc~finestgrid_define finestgrid_define proc~first_order_neum first_order_Neum proc~wavenumber_fwrestriction wavenumber_FWrestriction proc~fromfine2coarse->proc~wavenumber_fwrestriction proc~full_pgcr full_pgcr proc~full_pgcr->proc~dot_prod proc~full_pgcr->proc~helmholtz2d_bc proc~full_pgcr->proc~norm proc~precond_x Precond_x proc~full_pgcr->proc~precond_x proc~full_pgmres full_pgmres proc~full_pgmres->proc~apply_givens_rotation proc~full_pgmres->proc~back_substitute proc~full_pgmres->proc~dot_prod proc~full_pgmres->proc~helmholtz2d_bc proc~full_pgmres->proc~norm proc~full_pgmres->proc~precond_x proc~fullgmres fullgmres proc~fullgmres->proc~apply_givens_rotation proc~fullgmres->proc~arnoldi proc~fullgmres->proc~back_substitute proc~fullgmres->proc~helmholtz2d_bc proc~fullgmres->proc~norm proc~gridsys_define gridsys_define proc~helmholtz2d_bc_mg Helmholtz2d_BC_mg proc~helm_a2hx->proc~helmholtz2d_bc_mg proc~helmholtz2d_o4cmpct Helmholtz2d_O4cmpct proc~helm_a2hx->proc~helmholtz2d_o4cmpct proc~helmholtz2d_red_glk Helmholtz2d_ReD_Glk proc~helm_a2hx->proc~helmholtz2d_red_glk proc~helm_ahx->proc~helmholtz2d_bc_mg proc~helm_ax_nth->proc~gridbase_extrpltghostbcs proc~helm_ax_nth_stencils Helm_Ax_nth_stencils proc~helm_ax_nth->proc~helm_ax_nth_stencils proc~helmholtz2d_stencils Helmholtz2d_stencils proc~helm_ax_nth->proc~helmholtz2d_stencils proc~helm_ax_nth->proc~log2 proc~helm_ax_nth->proc~mg_check_xy2d proc~helm_ax_nth_stencils->proc~log2 proc~helmholtz2d_bc->proc~check_xy2d proc~helmholtz2d_bc->proc~helmholtz2d_stencils proc~helmholtz2d_bc->proc~if_bcs proc~helmholtz2d_bc_mg->proc~helmholtz2d_stencils proc~helmholtz2d_bc_mg->proc~if_bcs proc~helmholtz2d_bc_mg->proc~mg_check_xy2d proc~helmholtz2d_o4cmpct->proc~mg_check_xy2d proc~helmholtz2d_red_glk->proc~extrpltghostbcs proc~helmholtz2d_red_glk->proc~helmholtz2d_stencils proc~helmholtz2d_red_glk->proc~mg_check_xy2d proc~red_glk_stencils ReD_Glk_stencils proc~helmholtz2d_red_glk->proc~red_glk_stencils proc~if_bcs->proc~dirichlet proc~if_bcs->proc~first_order_neum proc~invey invEy proc~invey->proc~def_bicgstab proc~invey->proc~def_fullgmres proc~krylovcslp_invmhx->proc~grid_destroy proc~krylovcslp_invmhx->proc~gridsys_define proc~red_glk_cslp_gmres ReD_Glk_CSLP_gmres proc~krylovcslp_invmhx->proc~red_glk_cslp_gmres proc~mg_apply_givens_rotation mg_apply_givens_rotation proc~mg_apply_givens_rotation->cdsqrt proc~mg_arnoldi mg_arnoldi proc~mg_arnoldi->proc~cslp_op_bc proc~mg_arnoldi->proc~mg_dot_prod proc~mg_arnoldi->proc~mg_norm proc~mg_back_substitute mg_back_substitute proc~mg_bicgstab->proc~cslp_op_bc proc~mg_bicgstab->proc~mg_dot_prod proc~mg_bicgstab->proc~mg_norm proc~mg_check_x2d mg_check_x2d proc~mg_check_x2d->mpi_sendrecv proc~mg_check_xy2d->proc~mg_check_x2d proc~mg_check_y2d mg_check_y2d proc~mg_check_xy2d->proc~mg_check_y2d proc~mg_check_y2d->mpi_sendrecv proc~mg_checkreal_x2d mg_checkreal_x2d proc~mg_checkreal_x2d->mpi_sendrecv proc~mg_checkreal_xy2d->proc~mg_checkreal_x2d proc~mg_checkreal_y2d mg_checkreal_y2d proc~mg_checkreal_xy2d->proc~mg_checkreal_y2d proc~mg_checkreal_y2d->mpi_sendrecv proc~mg_dot_prod->mpi_allreduce proc~mg_fullgmres->proc~cslp_op_bc proc~mg_fullgmres->proc~mg_apply_givens_rotation proc~mg_fullgmres->proc~mg_arnoldi proc~mg_fullgmres->proc~mg_back_substitute proc~mg_fullgmres->proc~mg_norm proc~mg_norm->mpi_allreduce proc~mgcslp_invmhx->proc~f_cycle proc~mgcslp_invmhx->proc~grid_destroy proc~mgcslp_invmhx->proc~gridsys_define proc~mgcslp_invmhx->proc~v_cycle proc~mgcslp_invmx->proc~f_cycle proc~mgcslp_invmx->proc~finestgrid_define proc~mgcslp_invmx->proc~grid_destroy proc~mgcslp_invmx->proc~v_cycle proc~multilevel_invey MultiLevel_invEy proc~multilevel_invey->proc~def_prefgmres proc~multilevel_invey->proc~log2 proc~multileveladp_px->proc~helm_ax_nth proc~multileveladp_px->proc~krylovcslp_invmhx proc~multileveladp_px->proc~log2 proc~multileveladp_px->proc~mgcslp_invmhx proc~multileveladp_px->proc~multilevel_invey proc~multileveladp_px->proc~ztx proc~multileveladp_px->proc~zx proc~my_mod1 my_mod1 proc~norm->mpi_allreduce proc~p_adef1x->proc~helm_ahx proc~p_adef1x->proc~mgcslp_invmx proc~qx Qx proc~p_adef1x->proc~qx proc~p_defx->proc~helm_ahx proc~p_defx->proc~qx proc~p_tlkmx->proc~helm_ahx proc~p_tlkmx->proc~mgcslp_invmx proc~p_tlkmx->proc~qx proc~part2d part2d proc~part2d->proc~my_mod1 mpi_barrier mpi_barrier proc~part2d->mpi_barrier proc~pfgmres pfgmres proc~pfgmres->proc~apply_givens_rotation proc~pfgmres->proc~back_substitute proc~pfgmres->proc~dot_prod proc~pfgmres->proc~helmholtz2d_bc proc~pfgmres->proc~norm proc~pfgmres->proc~precond_x proc~pre_fullgmres Pre_fullgmres proc~pre_fullgmres->proc~apply_givens_rotation proc~pre_fullgmres->proc~back_substitute proc~pre_fullgmres->proc~helmholtz2d_bc proc~pre_fullgmres->proc~norm proc~prearnoldi Prearnoldi proc~pre_fullgmres->proc~prearnoldi proc~pre_fullgmres->proc~precond_x proc~pre_restartgmres Pre_restartgmres proc~pre_restartgmres->proc~apply_givens_rotation proc~pre_restartgmres->proc~back_substitute proc~pre_restartgmres->proc~helmholtz2d_bc proc~pre_restartgmres->proc~norm proc~pre_restartgmres->proc~prearnoldi proc~pre_restartgmres->proc~precond_x proc~prearnoldi->proc~dot_prod proc~prearnoldi->proc~helmholtz2d_bc proc~prearnoldi->proc~norm proc~prearnoldi->proc~precond_x proc~precond_x->proc~def_px proc~precond_x->proc~mgcslp_invmx proc~prolongation_en_correct->proc~mg_check_xy2d proc~px Px proc~px->proc~helm_ahx proc~px->proc~qx proc~qx->proc~invey proc~qx->proc~ztx proc~qx->proc~zx proc~read_parameter read_parameter proc~read_parameter->mpi_barrier mpi_bcast mpi_bcast proc~read_parameter->mpi_bcast proc~read_wavenumber_k_marmousi read_wavenumber_k_marmousi proc~read_wavenumber_k_marmousi->proc~mg_checkreal_xy2d proc~read_wavenumber_k_marmousi->mpi_recv proc~read_wavenumber_k_marmousi->mpi_send proc~realnorm Realnorm proc~realnorm->mpi_allreduce proc~red_glk_cslp_bicgstab ReD_Glk_CSLP_bicgstab proc~red_glk_cslp_bicgstab->proc~cslp_mx_nth proc~red_glk_cslp_bicgstab->proc~mg_dot_prod proc~red_glk_cslp_bicgstab->proc~mg_norm proc~red_glk_cslp_gmres->proc~cslp_mx_nth proc~red_glk_cslp_gmres->proc~log2 proc~red_glk_cslp_gmres->proc~mg_dot_prod proc~red_glk_cslp_gmres->proc~mg_norm proc~red_glk_cslp_gmres->cdsqrt proc~restartgmres restartgmres proc~restartgmres->proc~apply_givens_rotation proc~restartgmres->proc~arnoldi proc~restartgmres->proc~back_substitute proc~restartgmres->proc~helmholtz2d_bc proc~restartgmres->proc~norm proc~restriction->proc~mg_check_xy2d proc~restriction->proc~mg_checkreal_xy2d proc~rhs_2dcloseoff RHS_2DCloseOff proc~rhs_2dwedge RHS_2DWedge proc~rhs_centersource2d RHS_CenterSource2D proc~rhs_marmousi RHS_marmousi proc~v_cycle->proc~coarsegrid_create proc~v_cycle->proc~cslp_op_bc proc~v_cycle->proc~damp_jacobi_smoother proc~v_cycle->proc~grid_destroy proc~v_cycle->proc~mg_bicgstab proc~v_cycle->proc~mg_fullgmres proc~v_cycle->proc~prolongation_en_correct proc~v_cycle->proc~restriction proc~v_cycle->proc~v_cycle proc~wavenumber_fwrestriction->proc~mg_checkreal_xy2d proc~wavenumber_k_destroy wavenumber_k_destroy proc~wavenumber_k_wedge wavenumber_k_Wedge proc~wavenumber_k_wedge->proc~mg_checkreal_xy2d proc~write_data_whole write_data_whole proc~write_data_whole->mpi_recv proc~write_data_whole->mpi_send proc~write_exact_data_whole write_exact_data_whole proc~write_exact_data_whole->mpi_recv proc~write_exact_data_whole->mpi_send proc~write_real_data_whole write_real_data_whole proc~write_real_data_whole->mpi_recv proc~write_real_data_whole->mpi_send proc~ztx->proc~mg_check_xy2d proc~ztzx->proc~ztx proc~ztzx->proc~zx proc~zx->proc~mg_check_xy2d program~helmholtz_2d helmholtz_2d program~helmholtz_2d->interface~idrs program~helmholtz_2d->proc~const_k program~helmholtz_2d->proc~define_marmousi_grid program~helmholtz_2d->proc~define_uniform_grid program~helmholtz_2d->proc~define_wedge_grid program~helmholtz_2d->proc~exact_2dcloseoff program~helmholtz_2d->proc~exact_2dpointsource_1stsomer program~helmholtz_2d->proc~exact_2dpointsource_dirichlet program~helmholtz_2d->proc~full_pgcr program~helmholtz_2d->proc~full_pgmres program~helmholtz_2d->proc~fullgmres program~helmholtz_2d->proc~log2 program~helmholtz_2d->proc~part2d program~helmholtz_2d->proc~pfgmres program~helmholtz_2d->proc~pre_fullgmres program~helmholtz_2d->proc~pre_restartgmres program~helmholtz_2d->proc~read_parameter program~helmholtz_2d->proc~read_wavenumber_k_marmousi program~helmholtz_2d->proc~restartgmres program~helmholtz_2d->proc~rhs_2dcloseoff program~helmholtz_2d->proc~rhs_2dwedge program~helmholtz_2d->proc~rhs_centersource2d program~helmholtz_2d->proc~rhs_marmousi program~helmholtz_2d->proc~wavenumber_k_destroy program~helmholtz_2d->proc~wavenumber_k_wedge program~helmholtz_2d->proc~write_data_whole program~helmholtz_2d->mpi_allreduce program~helmholtz_2d->mpi_barrier mpi_comm_rank mpi_comm_rank program~helmholtz_2d->mpi_comm_rank mpi_comm_size mpi_comm_size program~helmholtz_2d->mpi_comm_size mpi_finalize mpi_finalize program~helmholtz_2d->mpi_finalize mpi_init mpi_init program~helmholtz_2d->mpi_init mpi_reduce mpi_reduce program~helmholtz_2d->mpi_reduce mpi_wtime mpi_wtime program~helmholtz_2d->mpi_wtime
Help