FrontISTR  5.9.0
Large-scale structural analysis program with finit element method
hecmw_precond_saamg_coarse Module Reference

Smoothed Aggregation AMG preconditioner : coarsest-level solver. More...

Functions/Subroutines

subroutine, public hecmw_saamg_coarse_setup (Ac, symmetric, cs)
 Densify Ac and factor it: symmetric -> LDL^T (dsytrf), else -> LU (dgetrf, for a non-symmetric coarse operator). bcsr_to_dense yields the full matrix, so LU is correct for non-symmetric A (dsytrf would use only the lower triangle). More...
 
subroutine, public hecmw_saamg_coarse_solve (cs, b, x)
 Solve Ac x = b using the stored LDL^T factors. More...
 
subroutine, public hecmw_saamg_coarse_free (cs)
 

Detailed Description

Smoothed Aggregation AMG preconditioner : coarsest-level solver.

Abstract coarsest-solver interface (setup_structure / setup_values / solve); the first backend is a redundant dense symmetric LDL^T factorization (LAPACK dsytrf/dsytrs). dsytrf (not dpotrf) is used so the same backend handles the symmetric-indefinite coarse matrices of the future u-p extension. In the MPI phase the coarse matrix will be Allgather'd and factored redundantly on every rank; here (sequential) the level matrix is simply densified in place.

Function/Subroutine Documentation

◆ hecmw_saamg_coarse_free()

subroutine, public hecmw_precond_saamg_coarse::hecmw_saamg_coarse_free ( type(hecmwst_saamg_coarse), intent(inout)  cs)

Definition at line 134 of file hecmw_precond_SAAMG_coarse.F90.

Here is the caller graph for this function:

◆ hecmw_saamg_coarse_setup()

subroutine, public hecmw_precond_saamg_coarse::hecmw_saamg_coarse_setup ( type(hecmwst_saamg_bcsr), intent(in)  Ac,
logical, intent(in)  symmetric,
type(hecmwst_saamg_coarse), intent(out)  cs 
)

Densify Ac and factor it: symmetric -> LDL^T (dsytrf), else -> LU (dgetrf, for a non-symmetric coarse operator). bcsr_to_dense yields the full matrix, so LU is correct for non-symmetric A (dsytrf would use only the lower triangle).

Definition at line 41 of file hecmw_precond_SAAMG_coarse.F90.

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

◆ hecmw_saamg_coarse_solve()

subroutine, public hecmw_precond_saamg_coarse::hecmw_saamg_coarse_solve ( type(hecmwst_saamg_coarse), intent(in)  cs,
real(kind=kreal), dimension(:), intent(in)  b,
real(kind=kreal), dimension(:), intent(out)  x 
)

Solve Ac x = b using the stored LDL^T factors.

Definition at line 110 of file hecmw_precond_SAAMG_coarse.F90.

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