Octopus
eigen_cg.F90
Go to the documentation of this file.
1!! Copyright (C) 2002-2006 M. Marques, A. Castro, A. Rubio, G. Bertsch
2!!
3!! This program is free software; you can redistribute it and/or modify
4!! it under the terms of the GNU General Public License as published by
5!! the Free Software Foundation; either version 2, or (at your option)
6!! any later version.
7!!
8!! This program is distributed in the hope that it will be useful,
9!! but WITHOUT ANY WARRANTY; without even the implied warranty of
10!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11!! GNU General Public License for more details.
12!!
13!! You should have received a copy of the GNU General Public License
14!! along with this program; if not, write to the Free Software
15!! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
16!! 02110-1301, USA.
17!!
18
19#include "global.h"
20
21module eigen_cg_oct_m
22 use batch_oct_m
24 use comm_oct_m
25 use debug_oct_m
27 use global_oct_m
29 use, intrinsic :: iso_fortran_env
31 use loct_oct_m
32 use mesh_oct_m
35 use mpi_oct_m
44 use xc_oct_m
45 use xc_f03_lib_m
46
47 implicit none
48
49 private
50 public :: &
53
54contains
55
56#include "real.F90"
57#include "eigen_cg_inc.F90"
58#include "undef.F90"
59
60#include "complex.F90"
61#include "eigen_cg_inc.F90"
62#include "undef.F90"
63
64end module eigen_cg_oct_m
65
66
67!! Local Variables:
68!! mode: f90
69!! coding: utf-8
70!! End:
This module implements batches of mesh functions.
Definition: batch.F90:133
This module implements common operations on batches of mesh functions.
Definition: batch_ops.F90:116
subroutine, public deigensolver_cg(namespace, mesh, st, hm, xc, pre, tol, niter, converged, ik, diff, energy_change_threshold, orthogonalize_to_all, conjugate_direction, additional_terms, shift)
conjugate-gradients method.
Definition: eigen_cg.F90:196
subroutine, public zeigensolver_cg(namespace, mesh, st, hm, xc, pre, tol, niter, converged, ik, diff, energy_change_threshold, orthogonalize_to_all, conjugate_direction, additional_terms, shift)
conjugate-gradients method.
Definition: eigen_cg.F90:747
This module defines various routines, operating on mesh functions.
This module defines the meshes, which are used in Octopus.
Definition: mesh.F90:118
This module handles spin dimensions of the states and the k-point distribution.
This module handles groups of electronic batches and their parallel distribution.
Definition: xc.F90:114