Octopus
energy.F90
Go to the documentation of this file.
1!! Copyright (C) 2002-2006 M. Marques, A. Castro, A. Rubio, G. Bertsch
2!! Copyright (C) 2012 M. Oliveira
3!!
4!! This program is free software; you can redistribute it and/or modify
5!! it under the terms of the GNU General Public License as published by
6!! the Free Software Foundation; either version 2, or (at your option)
7!! any later version.
8!!
9!! This program is distributed in the hope that it will be useful,
10!! but WITHOUT ANY WARRANTY; without even the implied warranty of
11!! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12!! GNU General Public License for more details.
13!!
14!! You should have received a copy of the GNU General Public License
15!! along with this program; if not, write to the Free Software
16!! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17!! 02110-1301, USA.
18!!
19
20#include "global.h"
21
22module energy_oct_m
23 use debug_oct_m
24 use global_oct_m
25
26 implicit none
27
28 private
29
30 public :: &
31 energy_t, &
33
34 type energy_t
35 ! Components are public by default
36 ! Energies
37 real(real64) :: total = m_zero
42 real(real64) :: eigenvalues = m_zero
43 real(real64) :: exchange = m_zero
44 real(real64) :: exchange_hf = m_zero
45 real(real64) :: correlation = m_zero
46 real(real64) :: vdw = m_zero
47 real(real64) :: xc_j = m_zero
48 real(real64) :: intnvxc = m_zero
49 real(real64) :: hartree = m_zero
50 real(real64) :: int_ee_pcm = m_zero
51 ! !! dot product of vectors of dimension n_tesserae
52 real(real64) :: int_en_pcm = m_zero
53 real(real64) :: int_ne_pcm = m_zero
54 real(real64) :: int_nn_pcm = m_zero
55 real(real64) :: int_e_ext_pcm = m_zero
56 real(real64) :: int_n_ext_pcm = m_zero
57 real(real64) :: pcm_corr = m_zero
58 real(real64) :: kinetic = m_zero
59 real(real64) :: extern = m_zero
60 real(real64) :: extern_local = m_zero
61 real(real64) :: extern_non_local = m_zero
62 real(real64) :: entropy = m_zero
63 real(real64) :: ts = m_zero
64 real(real64) :: berry = m_zero
65 real(real64) :: delta_xc = m_zero
66 real(real64) :: dft_u = m_zero
67 real(real64) :: int_dft_u = m_zero
68 real(real64) :: intnvstatic = m_zero
69 real(real64) :: photon_exchange = m_zero
70 end type energy_t
71
72contains
73
74 subroutine energy_copy(ein, eout)
75 type(energy_t), intent(in) :: ein
76 type(energy_t), intent(out) :: eout
77
78 push_sub(energy_copy)
79
80 eout%total = ein%total
81 eout%eigenvalues = ein%eigenvalues
82 eout%exchange = ein%exchange
83 eout%exchange_hf = ein%exchange_hf
84 eout%correlation = ein%correlation
85 eout%vdw = ein%vdw
86 eout%xc_j = ein%xc_j
87 eout%intnvxc = ein%intnvxc
88 eout%hartree = ein%hartree
89 eout%int_ee_pcm = ein%int_ee_pcm
90 eout%int_en_pcm = ein%int_en_pcm
91 eout%int_nn_pcm = ein%int_nn_pcm
92 eout%int_ne_pcm = ein%int_ne_pcm
93 eout%int_e_ext_pcm = ein%int_e_ext_pcm
94 eout%int_n_ext_pcm = ein%int_n_ext_pcm
95 eout%pcm_corr = ein%pcm_corr
96 eout%kinetic = ein%kinetic
97 eout%extern = ein%extern
98 eout%extern_local = ein%extern_local
99 eout%extern_non_local = ein%extern_non_local
100 eout%entropy = ein%entropy
101 eout%ts = ein%ts
102 eout%berry = ein%berry
103 eout%delta_xc = ein%delta_xc
104 eout%dft_u = ein%dft_u
105 eout%int_dft_u = ein%int_dft_u
106 eout%intnvstatic = ein%intnvstatic
107 eout%photon_exchange = ein%photon_exchange
108
109 pop_sub(energy_copy)
110 end subroutine energy_copy
111
112end module energy_oct_m
113
114!! Local Variables:
115!! mode: f90
116!! coding: utf-8
117!! End:
subroutine, public energy_copy(ein, eout)
Definition: energy.F90:168
real(real64), parameter, public m_zero
Definition: global.F90:188