Octopus
linear_solver.F90 File Reference

Go to the source code of this file.

Modules

module  linear_solver_oct_m
 

Data Types

type  linear_solver_oct_m::linear_solver_t
 
type  linear_solver_oct_m::linear_solver_args_t
 

Functions/Subroutines

subroutine, public linear_solver_oct_m::linear_solver_init (this, namespace, gr, states_are_real, mc, space)
 
subroutine, public linear_solver_oct_m::linear_solver_end (this)
 
integer function, public linear_solver_oct_m::linear_solver_ops_per_iter (this)
 
subroutine, public linear_solver_oct_m::linear_solver_obsolete_variables (namespace, old_prefix, new_prefix)
 
subroutine, public linear_solver_oct_m::dlinear_solver_solve_hxey (this, namespace, hm, mesh, st, ist, ik, x, y, shift, tol, residue, iter_used, occ_response)
 This subroutine calculates the solution of (H + shift) x = y Typically shift = - eigenvalue + omega. More...
 
subroutine, public linear_solver_oct_m::dlinear_solver_solve_hxey_batch (this, namespace, hm, mesh, st, xb, yb, shift, tol, residue, iter_used, occ_response, use_initial_guess)
 
subroutine linear_solver_oct_m::dlinear_solver_cg (ls, namespace, hm, mesh, st, ist, ik, x, y, shift, tol, residue, iter_used)
 Conjugate gradients. More...
 
subroutine linear_solver_oct_m::dlinear_solver_idrs (ls, namespace, mesh, st, x, y, tol, residue, iter_used)
 IDRS 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)]. We have adapted the code released by M. B. van Gizjen [http: More...
 
subroutine linear_solver_oct_m::dlinear_solver_bicgstab (ls, namespace, hm, mesh, st, ist, ik, x, y, shift, tol, residue, iter_used, occ_response)
 BICONJUGATE GRADIENTS STABILIZED see http: More...
 
subroutine linear_solver_oct_m::dlinear_solver_multigrid (ls, namespace, hm, mesh, st, ist, ik, x, y, shift, tol, residue, iter_used)
 
subroutine smoothing (steps)
 
subroutine linear_solver_oct_m::dlinear_solver_operator (hm, namespace, mesh, st, ist, ik, shift, x, hx)
 This routine applies the operator hx = [H (+ Q) + shift] x. More...
 
subroutine linear_solver_oct_m::dlinear_solver_operator_batch (hm, namespace, mesh, st, shift, xb, hxb)
 
subroutine linear_solver_oct_m::dlinear_solver_operator_na (x, hx)
 applies linear_solver_operator with other arguments implicit as global variables More...
 
subroutine linear_solver_oct_m::dlinear_solver_operator_t_na (x, hx)
 applies transpose of linear_solver_operator with other arguments implicit as global variables \( (H - shift)^T = H* - shift = (H - shift*)* \) More...
 
subroutine linear_solver_oct_m::dlinear_solver_operator_sym_na (x, hx)
 applies linear_solver_operator in symmetrized form: \( A^T A \) More...
 
subroutine linear_solver_oct_m::dlinear_solver_preconditioner (x, hx)
 
subroutine linear_solver_oct_m::dlinear_solver_sos (hm, namespace, mesh, st, ist, ik, x, y, shift, residue, iter_used)
 
subroutine linear_solver_oct_m::dlinear_solver_qmr_dotp (this, namespace, hm, mesh, st, xb, bb, shift, iter_used, residue, threshold, use_initial_guess)
 for complex symmetric matrices W Chen and B Poirier, J Comput Phys 219, 198-209 (2006) More...
 
real(real64) function, dimension(n) linear_solver_oct_m::dsingledimarray (n, a)
 
real(real64) function, dimension(np, dim) linear_solver_oct_m::ddoubledimarray (np, dim, a)
 
real(real64) function linear_solver_oct_m::ddotproduct (a, b)
 
real(real64) function, dimension(size(v, 1), size(v, 2)) linear_solver_oct_m::dmatrixvector (v)
 
real(real64) function, dimension(size(v, 1), size(v, 2)) linear_solver_oct_m::dpreconditioner (v)
 
subroutine, public linear_solver_oct_m::zlinear_solver_solve_hxey (this, namespace, hm, mesh, st, ist, ik, x, y, shift, tol, residue, iter_used, occ_response)
 This subroutine calculates the solution of (H + shift) x = y Typically shift = - eigenvalue + omega. More...
 
subroutine, public linear_solver_oct_m::zlinear_solver_solve_hxey_batch (this, namespace, hm, mesh, st, xb, yb, shift, tol, residue, iter_used, occ_response, use_initial_guess)
 
subroutine linear_solver_oct_m::zlinear_solver_cg (ls, namespace, hm, mesh, st, ist, ik, x, y, shift, tol, residue, iter_used)
 Conjugate gradients. More...
 
subroutine linear_solver_oct_m::zlinear_solver_idrs (ls, namespace, mesh, st, x, y, tol, residue, iter_used)
 IDRS 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)]. We have adapted the code released by M. B. van Gizjen [http: More...
 
subroutine linear_solver_oct_m::zlinear_solver_bicgstab (ls, namespace, hm, mesh, st, ist, ik, x, y, shift, tol, residue, iter_used, occ_response)
 BICONJUGATE GRADIENTS STABILIZED see http: More...
 
subroutine linear_solver_oct_m::zlinear_solver_multigrid (ls, namespace, hm, mesh, st, ist, ik, x, y, shift, tol, residue, iter_used)
 
subroutine linear_solver_oct_m::zlinear_solver_operator (hm, namespace, mesh, st, ist, ik, shift, x, hx)
 This routine applies the operator hx = [H (+ Q) + shift] x. More...
 
subroutine linear_solver_oct_m::zlinear_solver_operator_batch (hm, namespace, mesh, st, shift, xb, hxb)
 
subroutine linear_solver_oct_m::zlinear_solver_operator_na (x, hx)
 applies linear_solver_operator with other arguments implicit as global variables More...
 
subroutine linear_solver_oct_m::zlinear_solver_operator_t_na (x, hx)
 applies transpose of linear_solver_operator with other arguments implicit as global variables \( (H - shift)^T = H* - shift = (H - shift*)* \) More...
 
subroutine linear_solver_oct_m::zlinear_solver_operator_sym_na (x, hx)
 applies linear_solver_operator in symmetrized form: \( A^T A \) More...
 
subroutine linear_solver_oct_m::zlinear_solver_preconditioner (x, hx)
 
subroutine linear_solver_oct_m::zlinear_solver_sos (hm, namespace, mesh, st, ist, ik, x, y, shift, residue, iter_used)
 
subroutine linear_solver_oct_m::zlinear_solver_qmr_dotp (this, namespace, hm, mesh, st, xb, bb, shift, iter_used, residue, threshold, use_initial_guess)
 for complex symmetric matrices W Chen and B Poirier, J Comput Phys 219, 198-209 (2006) More...
 
complex(real64) function, dimension(n) linear_solver_oct_m::zsingledimarray (n, a)
 
complex(real64) function, dimension(np, dim) linear_solver_oct_m::zdoubledimarray (np, dim, a)
 
complex(real64) function linear_solver_oct_m::zdotproduct (a, b)
 
complex(real64) function, dimension(size(v, 1), size(v, 2)) linear_solver_oct_m::zmatrixvector (v)
 
complex(real64) function, dimension(size(v, 1), size(v, 2)) linear_solver_oct_m::zpreconditioner (v)
 

Variables

type(linear_solver_args_t) linear_solver_oct_m::args
 

Function/Subroutine Documentation

◆ smoothing()

subroutine smoothing ( integer, intent(in)  steps)
private

Definition at line 929 of file linear_solver.F90.