Octopus
solvers.F90 File Reference

Go to the source code of this file.

Modules

module  solvers_oct_m
 This module is intended to contain "only mathematical" functions and procedures.
 

Data Types

interface  solvers_oct_m::doperator_i
 
interface  solvers_oct_m::zoperator_i
 
interface  solvers_oct_m::ddotp_i
 
interface  solvers_oct_m::dnrm_i
 
interface  solvers_oct_m::zdotp_i
 
interface  solvers_oct_m::znrm_i
 
interface  solvers_oct_m::dconjugate_gradients
 
interface  solvers_oct_m::zconjugate_gradients
 

Functions/Subroutines

subroutine solvers_oct_m::zsym_conjugate_gradients (np, x, b, op, dotp, iter, residue, threshold)
 The two following subroutines, sym_conjugate_gradients, and bi_conjugate_gradients, must be called under a common interface: conjugate_gradients. It provides an approximate solution to the linear system problem Ax = b. Solving a symmetric linear system, which is either real or complex symmetric or Hermitian the best choice is sym_conjugate_gradients (does not need \( A^\dagger \)) Solving a real unsymmetric or a complex non-Hermitian system bi_conjugate_gradients has to be chosen (where one does need \( A^\dagger \)). More...
 
subroutine solvers_oct_m::zbi_conjugate_gradients (np, x, b, op, opt, dotp, iter, residue, threshold)
 
subroutine, public solvers_oct_m::zqmr_sym_gen_dotu (np, x, b, op, dotu, nrm2, prec, iter, residue, threshold, showprogress, converged, use_initial_guess)
 for complex symmetric matrices W Chen and B Poirier, J Comput Phys 219, 198-209 (2006) More...
 
subroutine, public solvers_oct_m::zqmr_gen_dotu (np, x, b, op, opt, dotu, nrm2, prec, prect, iter, residue, threshold, showprogress, converged)
 for general complex matrices taken from 'An Implementation of the QMR Method based on Coupled Two-Term Recurrences' by R. W. Freund and N. M. Nachtigal (page 25) http: More...
 
complex(real64) function, dimension(size(b, 1), size(b, 2)), public solvers_oct_m::zidrs (b, s, preconditioner, matrixvector, ddotprod, zdotprod, tolerance, maximum_iterations, variant, flag, relres, iterations, x0, U0, omega, resvec, H)
 This is the "Induced Dimension Reduction", IDR(s) (for s=4). IDR(s) is a robust and efficient short recurrence Krylov subspace method for solving large nonsymmetric systems of linear equations. It is described in [Peter Sonneveld and Martin B. van Gijzen, SIAM J. Sci. Comput. 31, 1035 (2008)]. More...
 
real(real64) function dtrace_dot (v, w)
 Trace inner product of complex matrices. More...
 
complex(real64) function ztrace_dot (v, w)
 Trace inner product of complex matrices. More...
 
complex(real64) function, dimension(s) zp_dot (P, R0, w, s)
 P inner product of complex matrices. More...
 
real(real64) function dfrob_norm (v)
 Frobenius norm of complex matrix. More...
 
real(real64) function zfrob_norm (v)
 Frobenius norm of complex matrix. More...
 
subroutine solvers_oct_m::dsym_conjugate_gradients (np, x, b, op, dotp, iter, residue, threshold)
 The two following subroutines, sym_conjugate_gradients, and bi_conjugate_gradients, must be called under a common interface: conjugate_gradients. It provides an approximate solution to the linear system problem Ax = b. Solving a symmetric linear system, which is either real or complex symmetric or Hermitian the best choice is sym_conjugate_gradients (does not need \( A^\dagger \)) Solving a real unsymmetric or a complex non-Hermitian system bi_conjugate_gradients has to be chosen (where one does need \( A^\dagger \)). More...
 
subroutine solvers_oct_m::dbi_conjugate_gradients (np, x, b, op, opt, dotp, iter, residue, threshold)
 
subroutine, public solvers_oct_m::dqmr_sym_gen_dotu (np, x, b, op, dotu, nrm2, prec, iter, residue, threshold, showprogress, converged, use_initial_guess)
 for complex symmetric matrices W Chen and B Poirier, J Comput Phys 219, 198-209 (2006) More...
 
subroutine, public solvers_oct_m::dqmr_gen_dotu (np, x, b, op, opt, dotu, nrm2, prec, prect, iter, residue, threshold, showprogress, converged)
 for general complex matrices taken from 'An Implementation of the QMR Method based on Coupled Two-Term Recurrences' by R. W. Freund and N. M. Nachtigal (page 25) http: More...
 
real(real64) function, dimension(size(b, 1), size(b, 2)), public solvers_oct_m::didrs (b, s, preconditioner, matrixvector, ddotprod, zdotprod, tolerance, maximum_iterations, variant, flag, relres, iterations, x0, U0, omega, resvec, H)
 This is the "Induced Dimension Reduction", IDR(s) (for s=4). IDR(s) is a robust and efficient short recurrence Krylov subspace method for solving large nonsymmetric systems of linear equations. It is described in [Peter Sonneveld and Martin B. van Gijzen, SIAM J. Sci. Comput. 31, 1035 (2008)]. More...
 
real(real64) function, dimension(s) dp_dot (P, R0, w, s)
 P inner product of complex matrices. More...
 

Function/Subroutine Documentation

◆ dtrace_dot()

real(real64) function zidrs::dtrace_dot ( real(real64), dimension(:,:), intent(in)  v,
real(real64), dimension(:,:), intent(in)  w 
)
private

Trace inner product of complex matrices.

Definition at line 1324 of file solvers.F90.

◆ ztrace_dot()

complex(real64) function zidrs::ztrace_dot ( complex(real64), dimension(:,:), intent(in)  v,
complex(real64), dimension(:,:), intent(in)  w 
)
private

Trace inner product of complex matrices.

Definition at line 1335 of file solvers.F90.

◆ zp_dot()

complex(real64) function, dimension(s) zidrs::zp_dot ( real(real64), dimension(:,:,:), intent(in), allocatable  P,
complex(real64), dimension(:,:), intent(in), allocatable  R0,
complex(real64), dimension(:,:), intent(in)  w,
integer, intent(in)  s 
)
private

P inner product of complex matrices.

Definition at line 1346 of file solvers.F90.

◆ dfrob_norm()

real(real64) function zidrs::dfrob_norm ( real(real64), dimension(:,:), intent(in)  v)
private

Frobenius norm of complex matrix.

Definition at line 1400 of file solvers.F90.

◆ zfrob_norm()

real(real64) function zidrs::zfrob_norm ( complex(real64), dimension(:,:), intent(in)  v)
private

Frobenius norm of complex matrix.

Definition at line 1412 of file solvers.F90.

◆ dp_dot()

real(real64) function, dimension(s) didrs::dp_dot ( real(real64), dimension(:,:,:), intent(in), allocatable  P,
real(real64), dimension(:,:), intent(in), allocatable  R0,
real(real64), dimension(:,:), intent(in)  w,
integer, intent(in)  s 
)
private

P inner product of complex matrices.

Definition at line 2575 of file solvers.F90.