Octopus
scdm.F90
Go to the documentation of this file.
1!! Copyright (C) 2023 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
24module scdm_oct_m
25 use debug_oct_m
27 use global_oct_m
28 use grid_oct_m
33 use mesh_oct_m
36 use parser_oct_m
38 use space_oct_m
42
43 implicit none
44
45 private
46 public :: &
47 scdm_t, &
48 scdm_init, &
51
52 type scdm_t
53 private
54
55 real(real64) :: scdm_sigma
56
57 end type scdm_t
58
59contains
60
61 subroutine scdm_init(this, namespace)
62 type(scdm_t), intent(inout) :: this
63 type(namespace_t), intent(in) :: namespace
64
65 push_sub(scdm_init)
66
67 ! We first compute the U matrix using the SCDM-k method
68 ! and then we compute the corresponding Wannier states
69 call parse_variable(namespace, 'SCDMsigma', 0.2_real64, this%scdm_sigma)
70
71 pop_sub(scdm_init)
72 end subroutine scdm_init
73
74#include "undef.F90"
75#include "real.F90"
76#include "scdm_inc.F90"
77
78#include "undef.F90"
79#include "complex.F90"
80#include "scdm_inc.F90"
81
82end module scdm_oct_m
83
84!! Local Variables:
85!! mode: f90
86!! coding: utf-8
87!! End:
This module implements the underlying real-space grid.
Definition: grid.F90:119
This module defines the meshes, which are used in Octopus.
Definition: mesh.F90:120
This module provides routines for perform the Selected Column of Density Matrix (SCDM) method This fo...
Definition: scdm.F90:119
subroutine, public dscdm_get_localized_states(this, namespace, space, gr, kpoints, st, scdm_st)
Perform the SCDM method and returns a states_elec_t object with localized states.
Definition: scdm.F90:239
subroutine, public scdm_init(this, namespace)
Definition: scdm.F90:157
subroutine, public zscdm_get_localized_states(this, namespace, space, gr, kpoints, st, scdm_st)
Perform the SCDM method and returns a states_elec_t object with localized states.
Definition: scdm.F90:494
This module handles spin dimensions of the states and the k-point distribution.