FSAIPACK Documentation  vers. 1.0
class_FSAIPACK Module Reference

Module collecting all the FSAIPACK methods to compute sparse approximate inverses in factored form. More...

List of all members.

Public Member Functions

integer function MK_patt (tau_in, mu_min_in, kpow_in, mu_max_in, parDTSTR, A, PATTERN_OUT, PATTERN_IN)
 Pattern construction for static FSAI computation.
integer function CPT_static_FSAI (parDTSTR, A, PATTERN_IN, FSAI)
 Computes the FSAI coefficients for a statically given input pattern.
integer function CPT_adapt_FSAI (n_step_in, step_size_in, tau_in, eps_in, parDTSTR, A, FSAI)
 Computes a FSAI preconditioner by an adaptive procedure optionally starting from an input factor.
integer function CPT_projection_FSAI (n_iter_in, nt_ret_in, tau_in, eps_in, parDTSTR, A, FSAI, F, FT)
 Computes the FSAI preconditioner through a projective strategy. In the present version a dropped Steepest Descent is used.
integer function FILTER_FSAI (nnzr_max_in, tau_in, parDTSTR, A, FSAI)
 Filters a given FSAI preconditioner neglecting smallest elements.
integer function CPT_preconditioned_Matix (nnzr_max_in, tau_in, parDTSTR, A, G, GT, B)
 Computes a dropped preconditioned matrix B = drop{[G][A][G]T}, where G is a previously computed FSAI preconditioner for A.
integer function TRANSPOSE_FSAI (parDTSTR, FSAI, FSAI_T)
 Transposes a given FSAI preconditioner.
subroutine ERRCHK_FSAIPACK (ounit, method_name, ierr)
 Error interpreter for the FSAIPACK methods.

Detailed Description

Module collecting all the FSAIPACK methods to compute sparse approximate inverses in factored form.

This module contains all the methods used to compute sparse approximate inverses in factored form. All the algorithms presented in [1] are available.

[1] 'FSAIPACK: a software package for high performance FSAI preconditioning', C. Janna et al., ACM Transactions on Mathematical Software, submitted.

Author:
Carlo Janna
Version:
1.0
Date:
April 2013
License:
This program is intended for internal research only and can not be distributed elsewhere without authors' consent.

Member Function/Subroutine Documentation

integer function class_FSAIPACK::CPT_adapt_FSAI ( integer, intent(in)  n_step_in,
integer, intent(in)  step_size_in,
real(kind=double), intent(in)  tau_in,
real(kind=double), intent(in)  eps_in,
type(OMPDTSTR), intent(in)  parDTSTR,
type(CSRMAT), intent(in)  A,
type(CSRMAT), intent(inout)  FSAI 
)

Computes a FSAI preconditioner by an adaptive procedure optionally starting from an input factor.

Computes a FSAI preconditioner by an adaptive procedure optionally starting from an input factor. If the FSAI variable is already allocated on entry, it is used as starting point for the adaptive procedure.

Author:
Carlo Janna
Version:
1.0
Date:
February 2013
License:
This program is intended for internal research only and can not be distributed elsewhere without authors' consent.
integer function class_FSAIPACK::CPT_preconditioned_Matix ( integer, intent(in)  nnzr_max_in,
real(kind=double), intent(in)  tau_in,
type(OMPDTSTR), intent(in)  parDTSTR,
type(CSRMAT), intent(in)  A,
type(CSRMAT), intent(in)  G,
type(CSRMAT), intent(in)  GT,
type(CSRMAT), intent(inout)  B 
)

Computes a dropped preconditioned matrix B = drop{[G][A][G]T}, where G is a previously computed FSAI preconditioner for A.

Computes a dropped preconditioned matrix B = drop{[G][A][G]T}, where G is a previously computed FSAI preconditioner for A.

Author:
Carlo Janna
Version:
1.0
Date:
February 2013
License:
This program is intended for internal research only and can not be distributed elsewhere without authors' consent.
integer function class_FSAIPACK::CPT_projection_FSAI ( integer, intent(in)  n_iter_in,
integer, intent(in)  nt_ret_in,
real(kind=double), intent(in)  tau_in,
real(kind=double), intent(in)  eps_in,
type(OMPDTSTR), intent(in)  parDTSTR,
type(CSRMAT), intent(in)  A,
type(CSRMAT), intent(inout)  FSAI,
type(CSRMAT), intent(in), optional  F,
type(CSRMAT), intent(in), optional  FT 
)

Computes the FSAI preconditioner through a projective strategy. In the present version a dropped Steepest Descent is used.

Computes the FSAI preconditioner through a projective strategy. In the present version a dropped Steepest Descent is used. It is possible to start from a tentative FSAI preconditione given as optional input as well as using an input FSAI to precondition the Steepest Descent. If the FSAI variable is already allocated on entry, it is used as starting point for the iterative procedure.
Note: the program will work correctly even if F and FT are not lower and upper triangular, they only need to represent a proper preconditioner for A.

Author:
Carlo Janna
Version:
1.0
Date:
February 2013
License:
This program is intended for internal research only and can not be distributed elsewhere without authors' consent.
integer function class_FSAIPACK::CPT_static_FSAI ( type(OMPDTSTR), intent(in)  parDTSTR,
type(CSRMAT), intent(in)  A,
type(Pattern), intent(in)  PATTERN_IN,
type(CSRMAT), intent(inout)  FSAI 
)

Computes the FSAI coefficients for a statically given input pattern.

This function computes the coefficients of FSAI corresponding to previously computed pattern given as Input. The content of the variable used as Input pattern becomes part of the preconditioner variable. If the variable for the preconditioner contains some data on entry, it is deleted before computation.

Author:
Carlo Janna
Version:
1.0
Date:
February 2013
License:
This program is intended for internal research only and can not be distributed elsewhere without authors' consent.
subroutine class_FSAIPACK::ERRCHK_FSAIPACK ( integer, intent(in)  ounit,
character(len=*), intent(in)  method_name,
integer, intent(in)  ierr 
)

Error interpreter for the FSAIPACK methods.

Interprets and prints to an output unit the error messages from the FSAIPACK methods.

Author:
Carlo Janna
Version:
1.0
Date:
April 2013
License:
This program is intended for internal research only and can not be distributed elsewhere without authors' consent.
integer function class_FSAIPACK::FILTER_FSAI ( integer, intent(in)  nnzr_max_in,
real(kind=double), intent(in)  tau_in,
type(OMPDTSTR), intent(in)  parDTSTR,
type(CSRMAT), intent(in)  A,
type(CSRMAT), intent(inout)  FSAI 
)

Filters a given FSAI preconditioner neglecting smallest elements.

Filters a given FSAI preconditioner neglecting smallest elements with a dual drop strategy. The input preconditioner is replaced by a sparser one in the same variable.

Author:
Carlo Janna
Version:
1.0
Date:
February 2013
License:
This program is intended for internal research only and can not be distributed elsewhere without authors' consent.
integer function class_FSAIPACK::MK_patt ( real(kind=double), intent(in)  tau_in,
real(kind=double), intent(in)  mu_min_in,
integer, intent(in)  kpow_in,
real(kind=double), intent(in)  mu_max_in,
type(OMPDTSTR), intent(in)  parDTSTR,
type(CSRMAT), intent(in)  A,
type(Pattern), intent(inout)  PATTERN_OUT,
type(Pattern), intent(in), optional  PATTERN_IN 
)

Pattern construction for static FSAI computation.

This function creates a pattern for static FSAI computation. First a prefiltration of the input matrix A is applied. If the density of {A} (A after prefiltration) is lower then mu_min, then the prefiltration tolerance is reduced. Then it computes kpow-th times power_PATT: {A}*LOW( {A}*LOW( {A}*LOW( {A}*LOW({A} )))) where LOW(*) is a matrix function that returns the lower part of a matrix. This procedure terminates also if the density mu_max is reached. If the optional parameter PATTERN_IN is present, the function skips prefiltration and only the kpow computation is executed.

Author:
Carlo Janna
Version:
1.0
Date:
January 2013
License:
This program is intended for internal research only and can not be distributed elsewhere without authors' consent.
integer function class_FSAIPACK::TRANSPOSE_FSAI ( type(OMPDTSTR), intent(in)  parDTSTR,
type(CSRMAT), intent(in)  FSAI,
type(CSRMAT), intent(inout)  FSAI_T 
)

Transposes a given FSAI preconditioner.

Transposes a given FSAI preconditioner.

Author:
Carlo Janna
Version:
1.0
Date:
February 2013
License:
This program is intended for internal research only and can not be distributed elsewhere without authors' consent.

The documentation for this module was generated from the following file:
 All Classes Files Functions Variables