Octopus
eigenval_criterion.F90
Go to the documentation of this file.
1!! Copyright (C) 2020 N. Tancogne-Dejean
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
23 use debug_oct_m
24 use global_oct_m
27 use unit_oct_m
28
29 implicit none
30
31 private
32 public :: &
34
36 private
37 contains
40
41 interface eigenval_criterion_t
42 procedure eigenval_criterion_constructor
43 end interface eigenval_criterion_t
44
45
46contains
47
48 ! ---------------------------------------------------------
49 function eigenval_criterion_constructor(tol_abs, tol_rel, unit) result(crit)
50 real(real64), intent(in) :: tol_abs
51 real(real64), intent(in) :: tol_rel
52 type(unit_t), target, intent(in) :: unit
53 class(eigenval_criterion_t), pointer :: crit
54
56
57 safe_allocate(crit)
58
59 crit%tol_abs = tol_abs
60 crit%tol_rel = tol_rel
61 crit%unit => unit
62 crit%label = 'evsum'
63
66
67 ! ---------------------------------------------------------
68 subroutine eigenval_criterion_finalize(this)
69 type(eigenval_criterion_t), intent(inout) :: this
70
72
74
76 end subroutine eigenval_criterion_finalize
77
79
80!! Local Variables:
81!! mode: f90
82!! coding: utf-8
83!! End:
subroutine, public convergence_criterion_end(this)
class(eigenval_criterion_t) function, pointer eigenval_criterion_constructor(tol_abs, tol_rel, unit)
subroutine eigenval_criterion_finalize(this)
brief This module defines the class unit_t which is used by the unit_systems_oct_m module.
Definition: unit.F90:132