KTH framework for Nek5000 toolboxes; testing version  0.0.1

Arnoldi algorithm with PARPACK. More...

+ Collaboration diagram for Arnoldi algorithm using parpack:

Files

file  arna.f
 Set of subroutines to solve eigenvalue problem with Arnoldi algorithm using PARPACK/ARPACK.
 
file  arna_io.f
 Set of checkpointing routines for arna module.
 

Functions

subroutine stepper_register ()
 Register Arnoldi ARPACK module. More...
 
subroutine stepper_init ()
 Initilise Arnoldi ARPACK module. More...
 
logical function stepper_is_initialised ()
 Check if module was initialised. More...
 
subroutine stepper_vsolve
 Create Krylov space, get Ritz values and restart stepper phase. More...
 
subroutine arna_esolve
 ARPACK postprocessing. More...
 
subroutine arna_naupd
 Interface to pdnaupd. More...
 
subroutine arna_rst_save
 Write restart files. More...
 
subroutine arna_rst_read
 Read from checkpoints. More...
 
subroutine arna_write_par (prefix)
 Write procesor independent data. More...
 
subroutine arna_mfop
 Write procesor independent variables. More...
 
subroutine arna_read_par (prefix)
 Read procesor independent data. More...
 
subroutine arna_mfip
 Read procesor independent variables. More...
 
subroutine arna_mfov (prefix)
 Write procesor dependent data (long vectors) More...
 
subroutine arna_mfiv (prefix)
 Read procesor dependent data (long vectors) More...
 
subroutine arna_mfosv (ioflds, nout, offs0, stride, strideB, ur1, ur2, ur3, vect)
 Write single Krylov vector to the file. More...
 
subroutine arna_mfisv (iofldr, offs0, stride, strideB, ur1, ur2, ur3, vect)
 Read single Krylov vector from the file. More...
 

Detailed Description

Arnoldi algorithm with PARPACK.

Description of the method can be found in [4] [5]

Two possible modes are supported:

Inverse mode is preferred as it takes into account inner product Simulation with temperature or passive scalars has to be performed in inverse mode due to speciffic inner product.

ARPACK_DIRECT preprocessing switch between direct and inverse mode.

Attention
This submodule has its own checkpointing routines.
Todo:
This submodule contains binary tar file with modified (restart added) version of PARPACK. This binary file in git is not good idea. Repalce with separate repository for Parpack added by sub.module.
Todo:
Finish description. Add reference to ARPACK
Module interface:
Global interface list:
Interface provided to tstpr:
  1. stepper_register; provided for Time stepper routines
  2. stepper_init; provided for Time stepper routines
  3. stepper_vsolve; provided for Time stepper routines
Global interface dependency:
Interface required:
  1. multiple interfaces from Runtime parameters and Monitoring module modules
  2. io_file_freeid, io_mfo_fname, io_mbyte_open and io_mbyte_close from Input/output module module
Module parameters:
Global parameter list:
Parameters provided by arna module (include file - ARNAD):
Varaible Type Runtime parameter Description
arna_nkrl integer _arna:nkrl Krylov space size
arna_negv integer _arna:negv number of eigenvalues
Global parameter dependency:
Parameters required by power iteration module:
  1. Checkpointing routines :
    • _chkpt:readchkpt
    • _chkpt:chkpFnumber
  2. Nek5000 PARAM array and logical flags:
    • IFHEAT, NSTEPS
Module parameter usage:
[_ARNA] # Runtime paramere section for Arnoldi ARPACK module
NKRL = 50 # Krylov space size
NEGV = 10 # Number of eigenvalues

Function Documentation

◆ arna_esolve()

subroutine arna_esolve

ARPACK postprocessing.

Definition at line 424 of file arna.f.

References copy(), io_file_freeid(), mntr_abort(), mntr_check_abort(), mntr_log(), mntr_logi(), and outpost2().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_mfip()

subroutine arna_mfip

Read procesor independent variables.

Definition at line 420 of file arna_io.f.

References blank(), byte_read, byte_reverse, copy(), and mntr_abort().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_mfisv()

subroutine arna_mfisv ( integer  iofldr,
integer*8  offs0,
integer*8  stride,
integer*8  strideB,
real, dimension(lx1*lx1*lx1*lelt ur1,
real, dimension(lx1*lx1*lx1*lelt ur2,
real, dimension(lx1*lx1*lx1*lelt ur3,
real, dimension(arna_ls)  vect 
)

Read single Krylov vector from the file.

Parameters
[in,out]iofldrVector counter
[in]offs0global file offset (header +...)
[in]stridesingle vector length
[in]strideBspace saved for processes with lower nid
[in]ur1,ur2,ur3input arrays
[out]vectKrylov vector
Remarks
This routine uses global scratch space SCRNS

Definition at line 819 of file arna_io.f.

References byte_set_view(), copy(), mfi_gets(), and mfi_getv().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_mfiv()

subroutine arna_mfiv ( character*3  prefix)

Read procesor dependent data (long vectors)

Parameters
[in]prefixprefix
Remarks
This routine uses global scratch space SCRNS, SCRUZ

Definition at line 654 of file arna_io.f.

References arna_mfisv(), io_init(), io_mbyte_close(), io_mfo_fname(), mfi_prepare(), mntr_check_abort(), mntr_log(), mntr_logi(), and mntr_logr().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_mfop()

subroutine arna_mfop

Write procesor independent variables.

Definition at line 131 of file arna_io.f.

References blank(), byte_write, and copy().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_mfosv()

subroutine arna_mfosv ( integer  ioflds,
integer  nout,
integer*8  offs0,
integer*8  stride,
integer*8  strideB,
real, dimension(lxo*lxo*lxo*lelt ur1,
real, dimension(lxo*lxo*lxo*lelt ur2,
real, dimension(lxo*lxo*lxo*lelt ur3,
real, dimension(arna_ls)  vect 
)

Write single Krylov vector to the file.

Parameters
[in,out]iofldsVector counter
[in]noutlocal number of elements to write
[in]offs0global file offset (header +...)
[in]stridesingle vector length
[in]strideBspace saved for processes with lower nid
[in]ur1,ur2,ur3output arrays
[in]vectKrylov vector

Definition at line 768 of file arna_io.f.

References byte_set_view(), copy(), mfo_outs(), and mfo_outv().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_mfov()

subroutine arna_mfov ( character*3  prefix)

Write procesor dependent data (long vectors)

Parameters
[in]prefixprefix
Remarks
This routine uses global scratch space SCRUZ

Definition at line 513 of file arna_io.f.

References arna_mfosv(), io_init(), io_mbyte_close(), io_mbyte_open(), io_mfo_fname(), mfo_write_hdr(), mntr_check_abort(), mntr_log(), mntr_logi(), and mntr_logr().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_naupd()

subroutine arna_naupd

Interface to pdnaupd.

Definition at line 567 of file arna.f.

References cnht_weight_fun(), col2(), col3(), copy(), mntr_abort(), mntr_log(), and tstpr_dssum().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_read_par()

subroutine arna_read_par ( character*3  prefix)

Read procesor independent data.

Parameters
[in]prefixprefix

Definition at line 202 of file arna_io.f.

References arna_mfip(), bcast(), byte_close, io_init(), io_mbyte_open(), io_mfo_fname(), mntr_check_abort(), mntr_error(), mntr_logi(), mntr_warn(), and nekgsync().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_rst_read()

subroutine arna_rst_read

Read from checkpoints.

Definition at line 40 of file arna_io.f.

References arna_mfiv(), arna_read_par(), and mntr_log().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_rst_save()

subroutine arna_rst_save

Write restart files.

Definition at line 7 of file arna_io.f.

References arna_mfov(), arna_write_par(), and mntr_logi().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ arna_write_par()

subroutine arna_write_par ( character*3  prefix)

Write procesor independent data.

Parameters
[in]prefixprefix

Definition at line 63 of file arna_io.f.

References arna_mfop(), byte_close, io_init(), io_mbyte_open(), io_mfo_fname(), mntr_check_abort(), and nekgsync().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stepper_init()

subroutine stepper_init

Initilise Arnoldi ARPACK module.

Note
This interface is called by tstpr_init

Definition at line 96 of file arna.f.

References arna_naupd(), arna_rst_read(), col3(), copy(), izero(), mntr_abort(), mntr_check_abort(), mntr_log(), mntr_logi(), mntr_logl(), mntr_logr(), mntr_mod_is_name_reg(), mntr_tmr_add(), mntr_warn(), rprm_rp_get(), rprm_rp_is_name_reg(), rprm_sec_is_name_reg(), and rzero().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stepper_is_initialised()

logical function stepper_is_initialised

Check if module was initialised.

Returns
stepper_is_initialised

Definition at line 337 of file arna.f.

+ Here is the caller graph for this function:

◆ stepper_register()

subroutine stepper_register

Register Arnoldi ARPACK module.

Note
This interface is called by tstpr_register

Definition at line 23 of file arna.f.

References mntr_abort(), mntr_mod_is_name_reg(), mntr_mod_reg(), mntr_tmr_add(), mntr_tmr_reg(), mntr_warn(), rprm_rp_reg(), rprm_sec_reg(), and rprm_sec_set_act().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ stepper_vsolve()

subroutine stepper_vsolve

Create Krylov space, get Ritz values and restart stepper phase.

Note
This interface is called by tstpr_main

Definition at line 353 of file arna.f.

References arna_esolve(), arna_naupd(), arna_rst_save(), col3(), copy(), mntr_abort(), and mntr_tmr_add().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: