mirror of
https://github.com/LCPQ/quantum_package
synced 2024-10-19 22:41:48 +02:00
Working on doc
This commit is contained in:
parent
e03930e8b6
commit
2929828ae3
1
data/.gitignore
vendored
1
data/.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
executables
|
executables
|
||||||
ezfio_defaults
|
ezfio_defaults
|
||||||
|
list_element.txt
|
||||||
|
44
data/module_gitignore
Normal file
44
data/module_gitignore
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
IRPF90_temp/
|
||||||
|
IRPF90_man/
|
||||||
|
irpf90.make
|
||||||
|
irpf90_entities
|
||||||
|
tags
|
||||||
|
AO_Basis
|
||||||
|
AO_one_e_integrals
|
||||||
|
Bitmask
|
||||||
|
CIS
|
||||||
|
CISD
|
||||||
|
Davidson
|
||||||
|
DavidsonDressed
|
||||||
|
DavidsonUndressed
|
||||||
|
Determinants
|
||||||
|
Dressing
|
||||||
|
dummy
|
||||||
|
Electrons
|
||||||
|
Ezfio_files
|
||||||
|
FCI
|
||||||
|
FourIdx
|
||||||
|
Generators_CAS
|
||||||
|
Generators_full
|
||||||
|
gitignore
|
||||||
|
Hartree_Fock
|
||||||
|
Integrals_Bielec
|
||||||
|
Iterations
|
||||||
|
MO_Basis
|
||||||
|
MOGuess
|
||||||
|
MO_one_e_integrals
|
||||||
|
MPI
|
||||||
|
MRPT_Utils
|
||||||
|
Nuclei
|
||||||
|
Perturbation
|
||||||
|
Pseudo
|
||||||
|
Psiref_CAS
|
||||||
|
Psiref_Utils
|
||||||
|
Selectors_CASSD
|
||||||
|
Selectors_full
|
||||||
|
Selectors_Utils
|
||||||
|
SingleRefMethod
|
||||||
|
Slave
|
||||||
|
Tools
|
||||||
|
Utils
|
||||||
|
ZMQ
|
2
docs/.gitignore
vendored
Normal file
2
docs/.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
|
||||||
|
build
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/env python2
|
#!/usr/bin/env python2
|
||||||
|
|
||||||
from __future__ import print_function
|
from __future__ import print_function
|
||||||
import os
|
import os
|
||||||
@ -28,19 +28,19 @@ def generate_modules(abs_module, entities):
|
|||||||
config_file.readfp(f)
|
config_file.readfp(f)
|
||||||
for section in config_file.sections():
|
for section in config_file.sections():
|
||||||
doc = config_file.get(section,"doc")
|
doc = config_file.get(section,"doc")
|
||||||
doc = " " + doc.replace("\n","\n\n ")+"\n"
|
doc = " " + doc.replace("\n","\n\n ")+"\n"
|
||||||
try:
|
try:
|
||||||
default = config_file.get(section,"default")
|
default = config_file.get(section,"default")
|
||||||
default = " " + "Default: %s\n"%default
|
default = " " + "Default: %s\n"%default
|
||||||
except:
|
except:
|
||||||
default = ""
|
default = ""
|
||||||
rst += [ ".. option:: %s\n"%(section), doc, default ]
|
rst += [ ".. option:: %s\n"%(section), doc, default ]
|
||||||
|
|
||||||
providers = []
|
providers = []
|
||||||
subroutines = []
|
subroutines = []
|
||||||
for k in entities:
|
for k in sorted(entities.keys()):
|
||||||
e = entities[k]
|
e = entities[k]
|
||||||
if e["module"] == module:
|
if e["module"].lower() == module.lower():
|
||||||
if "/" not in e["file"] and e["file"] != "ezfio_interface.irp.f":
|
if "/" not in e["file"] and e["file"] != "ezfio_interface.irp.f":
|
||||||
if e["type"] == 's':
|
if e["type"] == 's':
|
||||||
subroutines.append(e)
|
subroutines.append(e)
|
||||||
@ -51,13 +51,13 @@ def generate_modules(abs_module, entities):
|
|||||||
rst += [ "", "Providers", "---------", "" ]
|
rst += [ "", "Providers", "---------", "" ]
|
||||||
for p in providers:
|
for p in providers:
|
||||||
rst += [ """
|
rst += [ """
|
||||||
.. option:: %s
|
.. c:var:: %s
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
%s
|
%s
|
||||||
|
|
||||||
File: %s
|
File: :file:`%s`
|
||||||
|
|
||||||
%s
|
%s
|
||||||
|
|
||||||
@ -65,7 +65,31 @@ def generate_modules(abs_module, entities):
|
|||||||
""" % ( p["name"],
|
""" % ( p["name"],
|
||||||
"\n ".join(p["decl"]),
|
"\n ".join(p["decl"]),
|
||||||
p["file"],
|
p["file"],
|
||||||
" ".join(p["doc"]).replace(".br","\n"),
|
" ".join(p["doc"]).replace("\n ","\n "),
|
||||||
|
) ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if subroutines:
|
||||||
|
rst += [ "", "Subroutines / functions", "-----------------------", "" ]
|
||||||
|
for p in subroutines:
|
||||||
|
rst += [ """
|
||||||
|
|
||||||
|
.. c:function:: %s
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
%s
|
||||||
|
|
||||||
|
File: :file:`%s`
|
||||||
|
|
||||||
|
%s
|
||||||
|
|
||||||
|
|
||||||
|
""" % ( p["name"],
|
||||||
|
"\n ".join(p["decl"]),
|
||||||
|
p["file"],
|
||||||
|
" ".join(p["doc"]).replace("\n ","\n "),
|
||||||
) ]
|
) ]
|
||||||
|
|
||||||
|
|
||||||
@ -114,11 +138,14 @@ def generate_providers(abs_module):
|
|||||||
state = 3
|
state = 3
|
||||||
continue
|
continue
|
||||||
if line.startswith(".SH Need"):
|
if line.startswith(".SH Need"):
|
||||||
break
|
state = 0
|
||||||
|
continue
|
||||||
if line.startswith(".SH Instability"):
|
if line.startswith(".SH Instability"):
|
||||||
break
|
state = 0
|
||||||
|
continue
|
||||||
if line.startswith(".SH Call"):
|
if line.startswith(".SH Call"):
|
||||||
break
|
state = 0
|
||||||
|
continue
|
||||||
|
|
||||||
if state == 1:
|
if state == 1:
|
||||||
entity["decl"] += [ line ]
|
entity["decl"] += [ line ]
|
||||||
@ -129,17 +156,49 @@ def generate_providers(abs_module):
|
|||||||
else:
|
else:
|
||||||
entity["type"] = 'p'
|
entity["type"] = 'p'
|
||||||
elif state == 2:
|
elif state == 2:
|
||||||
|
if line.startswith(".br"):
|
||||||
|
line = "\n"
|
||||||
entity["doc"] += [ line ]
|
entity["doc"] += [ line ]
|
||||||
elif state == 3:
|
elif state == 3:
|
||||||
if line.startswith(".br"):
|
if line.startswith(".br"):
|
||||||
continue
|
continue
|
||||||
entity["file"] = line
|
entity["file"] = line.split("/")[-1]
|
||||||
|
try:
|
||||||
|
entity["module"] = line.split("/")[-2]
|
||||||
|
except: pass
|
||||||
|
break
|
||||||
|
|
||||||
entities [ entity["name"] ] = entity
|
entities [ entity["name"] ] = entity
|
||||||
|
|
||||||
return entities
|
return entities
|
||||||
|
|
||||||
|
|
||||||
|
def generate_index(entities):
|
||||||
|
|
||||||
|
rst_file = os.path.join('programmers_guide','index_providers.rst')
|
||||||
|
|
||||||
|
with open(rst_file,'w') as f:
|
||||||
|
rst = [ "Index of Providers",
|
||||||
|
"------------------",
|
||||||
|
"" ]
|
||||||
|
|
||||||
|
for e in sorted(entities.keys()):
|
||||||
|
e = entities[e]
|
||||||
|
if e["type"] == 'p':
|
||||||
|
rst.append("* :c:data:`%s`" % (e["name"]))
|
||||||
|
|
||||||
|
rst += [ "",
|
||||||
|
"Index of Subroutines/Functions",
|
||||||
|
"------------------------------",
|
||||||
|
"" ]
|
||||||
|
|
||||||
|
for e in sorted(entities.keys()):
|
||||||
|
e = entities[e]
|
||||||
|
if e["type"] == 's':
|
||||||
|
rst.append("* :c:func:`%s`" % (e["name"]))
|
||||||
|
|
||||||
|
f.write("\n".join(rst))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
@ -159,7 +218,13 @@ def main():
|
|||||||
if read_entities:
|
if read_entities:
|
||||||
for k in read_entities:
|
for k in read_entities:
|
||||||
entities[k] = read_entities[k]
|
entities[k] = read_entities[k]
|
||||||
generate_modules(abs_module,entities)
|
|
||||||
|
for abs_module in os.listdir(SRC):
|
||||||
|
abs_module = os.path.join(SRC,abs_module)
|
||||||
|
if os.path.exists( os.path.join(abs_module, "README.rst") ):
|
||||||
|
generate_modules(abs_module,entities)
|
||||||
|
|
||||||
|
generate_index(entities)
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
main()
|
main()
|
||||||
|
@ -40,52 +40,509 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: ao_basis
|
.. option:: ao_basis
|
||||||
|
|
||||||
Name of the |AO| basis set
|
Name of the |AO| basis set
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_num
|
.. option:: ao_num
|
||||||
|
|
||||||
Number of |AOs|
|
Number of |AOs|
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_prim_num
|
.. option:: ao_prim_num
|
||||||
|
|
||||||
Number of primitives per |AO|
|
Number of primitives per |AO|
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_prim_num_max
|
.. option:: ao_prim_num_max
|
||||||
|
|
||||||
Maximum number of primitives
|
Maximum number of primitives
|
||||||
|
|
||||||
Default: =maxval(ao_basis.ao_prim_num)
|
Default: =maxval(ao_basis.ao_prim_num)
|
||||||
|
|
||||||
.. option:: ao_nucl
|
.. option:: ao_nucl
|
||||||
|
|
||||||
Index of the nucleus on which the |AO| is centered
|
Index of the nucleus on which the |AO| is centered
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_power
|
.. option:: ao_power
|
||||||
|
|
||||||
Powers of x, y and z for each |AO|
|
Powers of x, y and z for each |AO|
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_coef
|
.. option:: ao_coef
|
||||||
|
|
||||||
Primitive coefficients, read from input. Those should not be used directly, as the MOs are expressed on the basis of **normalized** AOs.
|
Primitive coefficients, read from input. Those should not be used directly, as the MOs are expressed on the basis of **normalized** AOs.
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_expo
|
.. option:: ao_expo
|
||||||
|
|
||||||
Exponents for each primitive of each |AO|
|
Exponents for each primitive of each |AO|
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_md5
|
.. option:: ao_md5
|
||||||
|
|
||||||
MD5 key, specific of the |AO| basis
|
MD5 key, specific of the |AO| basis
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_cartesian
|
.. option:: ao_cartesian
|
||||||
|
|
||||||
If |true|, use |AOs| in Cartesian coordinates (6d,10f,...)
|
If |true|, use |AOs| in Cartesian coordinates (6d,10f,...)
|
||||||
|
|
||||||
|
Default: false
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_coef_normalization_factor
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_coef_normalized (ao_num,ao_prim_num_max)
|
||||||
|
double precision, allocatable :: ao_coef_normalization_factor (ao_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Coefficients including the AO normalization
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_coef_normalization_libint_factor
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_coef_normalization_libint_factor (ao_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Coefficients including the AO normalization
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_coef_normalized
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_coef_normalized (ao_num,ao_prim_num_max)
|
||||||
|
double precision, allocatable :: ao_coef_normalization_factor (ao_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Coefficients including the AO normalization
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_coef_normalized_ordered
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_coef_normalized_ordered (ao_num,ao_prim_num_max)
|
||||||
|
double precision, allocatable :: ao_expo_ordered (ao_num,ao_prim_num_max)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Sorted primitives to accelerate 4 index MO transformation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_coef_normalized_ordered_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_coef_normalized_ordered_transp (ao_prim_num_max,ao_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Transposed ao_coef_normalized_ordered
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_expo_ordered
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_coef_normalized_ordered (ao_num,ao_prim_num_max)
|
||||||
|
double precision, allocatable :: ao_expo_ordered (ao_num,ao_prim_num_max)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Sorted primitives to accelerate 4 index MO transformation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_expo_ordered_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_expo_ordered_transp (ao_prim_num_max,ao_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Transposed ao_expo_ordered
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_l
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: ao_l (ao_num)
|
||||||
|
integer :: ao_l_max
|
||||||
|
character*(128), allocatable :: ao_l_char (ao_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
ao_l = l value of the AO: a+b+c in x^a y^b z^c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_l_char
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: ao_l (ao_num)
|
||||||
|
integer :: ao_l_max
|
||||||
|
character*(128), allocatable :: ao_l_char (ao_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
ao_l = l value of the AO: a+b+c in x^a y^b z^c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_l_char_space
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(4), allocatable :: ao_l_char_space (ao_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_l_max
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: ao_l (ao_num)
|
||||||
|
integer :: ao_l_max
|
||||||
|
character*(128), allocatable :: ao_l_char (ao_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
ao_l = l value of the AO: a+b+c in x^a y^b z^c
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_prim_num_max
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: ao_prim_num_max
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
max number of primitives
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_0
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_0 (1,1)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_1
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_1 (3,3)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_2 (6,5)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=2
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_3
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_3 (10,7)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=3
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_4
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_4 (15,9)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=4
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_5
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_5 (21,11)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=5
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_6
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_6 (28,13)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=6
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_7
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_7 (36,15)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=7
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_8
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_8 (45,17)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=8
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: cart_to_sphe_9
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: cart_to_sphe_9 (55,19)
|
||||||
|
|
||||||
|
File: :file:`spherical_to_cartesian.irp.f`
|
||||||
|
|
||||||
|
Spherical -> Cartesian Transformation matrix for l=9
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: l_to_charater
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128), allocatable :: l_to_charater (0:7)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
character corresponding to the "L" value of an AO orbital
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_aos_max
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: nucl_n_aos (nucl_num)
|
||||||
|
integer :: n_aos_max
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Number of AOs per atom
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_pt_max_i_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: n_pt_max_integrals
|
||||||
|
integer :: n_pt_max_i_x
|
||||||
|
|
||||||
|
File: :file:`dimensions_integrals.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_pt_max_integrals
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: n_pt_max_integrals
|
||||||
|
integer :: n_pt_max_i_x
|
||||||
|
|
||||||
|
File: :file:`dimensions_integrals.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_aos
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: nucl_aos (nucl_num,N_AOs_max)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
List of AOs attached on each atom
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_list_shell_aos
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: nucl_list_shell_aos (nucl_num,N_AOs_max)
|
||||||
|
integer, allocatable :: nucl_num_shell_aos (nucl_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Index of the shell type Aos and of the corresponding Aos Per convention, for P,D,F and G AOs, we take the index of the AO with the the corresponding power in the "X" axis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_n_aos
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: nucl_n_aos (nucl_num)
|
||||||
|
integer :: n_aos_max
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Number of AOs per atom
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_num_shell_aos
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: nucl_list_shell_aos (nucl_num,N_AOs_max)
|
||||||
|
integer, allocatable :: nucl_num_shell_aos (nucl_num)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Index of the shell type Aos and of the corresponding Aos Per convention, for P,D,F and G AOs, we take the index of the AO with the the corresponding power in the "X" axis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: ao_power_index
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function ao_power_index(nx,ny,nz)
|
||||||
|
|
||||||
|
File: :file:`aos.irp.f`
|
||||||
|
|
||||||
|
Unique index given to a triplet of powers:
|
||||||
|
1/2 (l-n_x)*(l-n_x+1) + n_z + 1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: ao_value
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function ao_value(i,r)
|
||||||
|
|
||||||
|
File: :file:`aos_value.irp.f`
|
||||||
|
|
||||||
|
return the value of the ith ao at point r
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: give_all_aos_at_r
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine give_all_aos_at_r(r,aos_array)
|
||||||
|
|
||||||
|
File: :file:`aos_value.irp.f`
|
||||||
|
|
||||||
|
gives the values of aos at a given point r
|
||||||
|
|
||||||
|
|
||||||
Default: false
|
|
||||||
|
@ -18,26 +18,903 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: integral_nuclear
|
.. option:: integral_nuclear
|
||||||
|
|
||||||
Nucleus-electron integrals in |AO| basis set
|
Nucleus-electron integrals in |AO| basis set
|
||||||
|
|
||||||
|
|
||||||
.. option:: integral_kinetic
|
.. option:: integral_kinetic
|
||||||
|
|
||||||
Kinetic energy integrals in |AO| basis set
|
Kinetic energy integrals in |AO| basis set
|
||||||
|
|
||||||
|
|
||||||
.. option:: integral_pseudo
|
.. option:: integral_pseudo
|
||||||
|
|
||||||
Pseudopotential integrals in |AO| basis set
|
Pseudopotential integrals in |AO| basis set
|
||||||
|
|
||||||
|
|
||||||
.. option:: integral_overlap
|
.. option:: integral_overlap
|
||||||
|
|
||||||
Overlap integrals in |AO| basis set
|
Overlap integrals in |AO| basis set
|
||||||
|
|
||||||
|
|
||||||
.. option:: disk_access_ao_one_integrals
|
.. option:: disk_access_ao_one_integrals
|
||||||
|
|
||||||
Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ]
|
Read/Write |AO| one-electron integrals from/to disk [ Write | Read | None ]
|
||||||
|
|
||||||
|
Default: None
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_cart_to_sphe_coef
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_cart_to_sphe_coef (ao_num,ao_num)
|
||||||
|
integer :: ao_cart_to_sphe_num
|
||||||
|
|
||||||
|
File: :file:`ao_ortho_canonical.irp.f`
|
||||||
|
|
||||||
|
ao_cart_to_sphe coefficients of the current basis set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_cart_to_sphe_inv
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_cart_to_sphe_inv (ao_cart_to_sphe_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_ortho_canonical.irp.f`
|
||||||
|
|
||||||
|
AO_cart_to_sphe_coef^(-1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_cart_to_sphe_num
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_cart_to_sphe_coef (ao_num,ao_num)
|
||||||
|
integer :: ao_cart_to_sphe_num
|
||||||
|
|
||||||
|
File: :file:`ao_ortho_canonical.irp.f`
|
||||||
|
|
||||||
|
ao_cart_to_sphe coefficients of the current basis set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_cart_to_sphe_overlap
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_cart_to_sphe_overlap (ao_cart_to_sphe_num,ao_cart_to_sphe_num)
|
||||||
|
|
||||||
|
File: :file:`ao_ortho_canonical.irp.f`
|
||||||
|
|
||||||
|
AO overlap matrix in the spherical basis set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_deriv2_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_deriv2_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv2_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv2_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`kin_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Second derivatives matrix elements in the |AO| basis.
|
||||||
|
math:`{\tt ao_deriv2_x} = \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_deriv2_y
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_deriv2_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv2_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv2_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`kin_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Second derivatives matrix elements in the |AO| basis.
|
||||||
|
math:`{\tt ao_deriv2_x} = \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_deriv2_z
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_deriv2_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv2_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv2_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`kin_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Second derivatives matrix elements in the |AO| basis.
|
||||||
|
math:`{\tt ao_deriv2_x} = \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_deriv_1_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_deriv_1_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv_1_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv_1_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of AO_i * d/dx AO_j array of the integrals of AO_i * d/dy AO_j array of the integrals of AO_i * d/dz AO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_deriv_1_y
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_deriv_1_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv_1_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv_1_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of AO_i * d/dx AO_j array of the integrals of AO_i * d/dy AO_j array of the integrals of AO_i * d/dz AO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_deriv_1_z
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_deriv_1_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv_1_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_deriv_1_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of AO_i * d/dx AO_j array of the integrals of AO_i * d/dy AO_j array of the integrals of AO_i * d/dz AO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_dipole_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_dipole_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_dipole_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_dipole_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of AO_i * x AO_j array of the integrals of AO_i * y AO_j array of the integrals of AO_i * z AO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_dipole_y
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_dipole_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_dipole_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_dipole_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of AO_i * x AO_j array of the integrals of AO_i * y AO_j array of the integrals of AO_i * z AO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_dipole_z
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_dipole_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_dipole_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_dipole_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of AO_i * x AO_j array of the integrals of AO_i * y AO_j array of the integrals of AO_i * z AO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_kinetic_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_kinetic_integral (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`kin_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Array of the priminitve basis kinetic integrals.
|
||||||
|
:math:`\langle \chi_i |\hat{T}| \chi_j \rangle`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_mono_elec_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_mono_elec_integral (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_mono_elec_integral_diag (ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_mono_ints.irp.f`
|
||||||
|
|
||||||
|
array of the mono electronic hamiltonian on the AOs basis : sum of the kinetic and nuclear electronic potential
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_mono_elec_integral_diag
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_mono_elec_integral (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_mono_elec_integral_diag (ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_mono_ints.irp.f`
|
||||||
|
|
||||||
|
array of the mono electronic hamiltonian on the AOs basis : sum of the kinetic and nuclear electronic potential
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_nucl_elec_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_nucl_elec_integral (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Nucleus-electron interaction, in the |AO| basis set.
|
||||||
|
:math:`\langle \chi_i | -\sum_A \frac{1}{|r-R_A|} | \chi_j \rangle`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_nucl_elec_integral_per_atom
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_nucl_elec_integral_per_atom (ao_num,ao_num,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Nucleus-electron interaction in the |AO| basis set, per atom A.
|
||||||
|
:math:`\langle \chi_i | -\frac{1}{|r-R_A|} | \chi_j \rangle`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_ortho_canonical_coef
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_ortho_canonical_coef (ao_num,ao_num)
|
||||||
|
integer :: ao_ortho_canonical_num
|
||||||
|
|
||||||
|
File: :file:`ao_ortho_canonical.irp.f`
|
||||||
|
|
||||||
|
matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_ortho_canonical_coef_inv
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_ortho_canonical_coef_inv (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_ortho_canonical.irp.f`
|
||||||
|
|
||||||
|
ao_ortho_canonical_coef^(-1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_ortho_canonical_num
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_ortho_canonical_coef (ao_num,ao_num)
|
||||||
|
integer :: ao_ortho_canonical_num
|
||||||
|
|
||||||
|
File: :file:`ao_ortho_canonical.irp.f`
|
||||||
|
|
||||||
|
matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_canonical_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_canonical orbital
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_ortho_canonical_overlap
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_ortho_canonical_overlap (ao_ortho_canonical_num,ao_ortho_canonical_num)
|
||||||
|
|
||||||
|
File: :file:`ao_ortho_canonical.irp.f`
|
||||||
|
|
||||||
|
overlap matrix of the ao_ortho_canonical. Expected to be the Identity
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_overlap
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_overlap (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_overlap.irp.f`
|
||||||
|
|
||||||
|
Overlap between atomic basis functions: :math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_overlap_abs
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_overlap_abs (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_overlap.irp.f`
|
||||||
|
|
||||||
|
Overlap between absolute value of atomic basis functions: :math:`\int |\chi_i(r)| |\chi_j(r)| dr)`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_overlap_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_overlap (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_overlap.irp.f`
|
||||||
|
|
||||||
|
Overlap between atomic basis functions: :math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_overlap_y
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_overlap (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_overlap.irp.f`
|
||||||
|
|
||||||
|
Overlap between atomic basis functions: :math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_overlap_z
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_overlap (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_overlap_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_overlap.irp.f`
|
||||||
|
|
||||||
|
Overlap between atomic basis functions: :math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_pseudo_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_pseudo_integral (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
Pseudo-potential integrals
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_pseudo_integral_local
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_pseudo_integral_local (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
Local pseudo-potential
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_pseudo_integral_non_local
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_pseudo_integral_non_local (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
Local pseudo-potential
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_spread_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_spread_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_spread_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_spread_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of AO_i * x^2 AO_j array of the integrals of AO_i * y^2 AO_j array of the integrals of AO_i * z^2 AO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_spread_y
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_spread_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_spread_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_spread_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of AO_i * x^2 AO_j array of the integrals of AO_i * y^2 AO_j array of the integrals of AO_i * z^2 AO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_spread_z
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_spread_x (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_spread_y (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_spread_z (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of AO_i * x^2 AO_j array of the integrals of AO_i * y^2 AO_j array of the integrals of AO_i * z^2 AO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: i_x1_pol_mult_mono_elec
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
recursive subroutine I_x1_pol_mult_mono_elec(a,c,R1x,R1xp,R2x,d,nd,n_pt_in)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Recursive routine involved in the electron-nucleus potential
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: i_x2_pol_mult_mono_elec
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
recursive subroutine I_x2_pol_mult_mono_elec(c,R1x,R1xp,R2x,d,nd,dim)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Recursive routine involved in the electron-nucleus potential
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: pseudo_dz_k_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: pseudo_v_k_transp (pseudo_klocmax,nucl_num)
|
||||||
|
integer, allocatable :: pseudo_n_k_transp (pseudo_klocmax,nucl_num)
|
||||||
|
double precision, allocatable :: pseudo_dz_k_transp (pseudo_klocmax,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: pseudo_dz_kl_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: pseudo_v_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
|
||||||
|
integer, allocatable :: pseudo_n_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
|
||||||
|
double precision, allocatable :: pseudo_dz_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: pseudo_n_k_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: pseudo_v_k_transp (pseudo_klocmax,nucl_num)
|
||||||
|
integer, allocatable :: pseudo_n_k_transp (pseudo_klocmax,nucl_num)
|
||||||
|
double precision, allocatable :: pseudo_dz_k_transp (pseudo_klocmax,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: pseudo_n_kl_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: pseudo_v_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
|
||||||
|
integer, allocatable :: pseudo_n_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
|
||||||
|
double precision, allocatable :: pseudo_dz_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: pseudo_v_k_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: pseudo_v_k_transp (pseudo_klocmax,nucl_num)
|
||||||
|
integer, allocatable :: pseudo_n_k_transp (pseudo_klocmax,nucl_num)
|
||||||
|
double precision, allocatable :: pseudo_dz_k_transp (pseudo_klocmax,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: pseudo_v_kl_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: pseudo_v_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
|
||||||
|
integer, allocatable :: pseudo_n_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
|
||||||
|
double precision, allocatable :: pseudo_dz_kl_transp (pseudo_kmax,0:pseudo_lmax,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
Transposed arrays for pseudopotentials
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: read_ao_one_integrals
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
logical :: read_ao_one_integrals
|
||||||
|
logical :: write_ao_one_integrals
|
||||||
|
|
||||||
|
File: :file:`read_write.irp.f`
|
||||||
|
|
||||||
|
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: s_half
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: s_half (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_overlap.irp.f`
|
||||||
|
|
||||||
|
S^{1/2}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: s_half_inv
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: s_half_inv (AO_num,AO_num)
|
||||||
|
|
||||||
|
File: :file:`ao_overlap.irp.f`
|
||||||
|
|
||||||
|
Matrix X = S^{-1/2} obtained by SVD
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: s_inv
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: s_inv (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`ao_overlap.irp.f`
|
||||||
|
|
||||||
|
S^-1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: write_ao_one_integrals
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
logical :: read_ao_one_integrals
|
||||||
|
logical :: write_ao_one_integrals
|
||||||
|
|
||||||
|
File: :file:`read_write.irp.f`
|
||||||
|
|
||||||
|
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: give_polynom_mult_center_mono_elec
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine give_polynom_mult_center_mono_elec(A_center,B_center,alpha,beta,power_A,power_B,C_center,n_pt_in,d,n_pt_out)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Returns the explicit polynomial in terms of the "t" variable of the following
|
||||||
|
:math:`I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q)`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: int_gaus_pol
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function int_gaus_pol(alpha,n)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Computes the integral:
|
||||||
|
:math:`\int_{-\infty}^{\infty} x^n \exp(-\alpha x^2) dx`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: nai_pol_mult
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function NAI_pol_mult(A_center,B_center,power_A,power_B,alpha,beta,C_center,n_pt_in)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Computes the electron-nucleus attraction with two primitves.
|
||||||
|
:math:`\langle g_i | \frac{1}{|r-R_c|} | g_j \rangle`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: overlap_bourrin_deriv_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine overlap_bourrin_deriv_x(i_component,A_center,B_center,alpha,beta,power_A,power_B,dx,lower_exp_val,overlap_x,nx)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: overlap_bourrin_dipole
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine overlap_bourrin_dipole(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: overlap_bourrin_spread
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine overlap_bourrin_spread(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: overlap_bourrin_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine overlap_bourrin_x(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: overlap_bourrin_x_abs
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine overlap_bourrin_x_abs(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: power
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function power(n,x)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_ao.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: v_e_n
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function V_e_n(a_x,a_y,a_z,b_x,b_y,b_z,alpha,beta)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Primitve nuclear attraction between the two primitves centered on the same atom.
|
||||||
|
primitive_1 = x**(a_x) y**(a_y) z**(a_z) exp(-alpha * r**2)
|
||||||
|
primitive_2 = x**(b_x) y**(b_y) z**(b_z) exp(- beta * r**2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: v_phi
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function V_phi(n,m)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Computes the angular "phi" part of the nuclear attraction integral:
|
||||||
|
:math:`\int_{0}^{2 \pi} \cos(\phi)^n \sin(\phi)^m d\phi`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: v_r
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function V_r(n,alpha)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Computes the radial part of the nuclear attraction integral:
|
||||||
|
:math:`\int_{0}^{\infty} r^n \exp(-\alpha r^2) dr`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: v_theta
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function V_theta(n,m)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Computes the angular "theta" part of the nuclear attraction integral:
|
||||||
|
:math:`\int_{0}^{\pi} \cos(\theta)^n \sin(\theta)^m d\theta`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: wallis
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function Wallis(n)
|
||||||
|
|
||||||
|
File: :file:`pot_ao_ints.irp.f`
|
||||||
|
|
||||||
|
Wallis integral:
|
||||||
|
:math:`\int_{0}^{\pi} \cos(\theta)^n d\theta`
|
||||||
|
|
||||||
|
|
||||||
Default: None
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -25,5 +25,93 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: energy
|
.. option:: energy
|
||||||
|
|
||||||
Variational CIS energy
|
Variational CIS energy
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: cis
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine cis
|
||||||
|
|
||||||
|
File: :file:`CIS.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cis
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cis()
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cis_diexc
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cis_diexc(key_in, key_prev, hole_1,particl_1, hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in )
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cis_diexcorg
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cis_diexcOrg(key_in,key_mask,hole_1,particl_1,hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in )
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cis_diexcp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cis_diexcP(key_in, fs1, fh1, particl_1, fs2, fh2, particl_2, fock_diag_tmp, i_generator, iproc_in )
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cis_monoexc
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cis_monoexc(key_in, hole_1,particl_1,fock_diag_tmp,i_generator,iproc_in )
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
@ -25,5 +25,79 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: energy
|
.. option:: energy
|
||||||
|
|
||||||
Variational CISD energy
|
Variational CISD energy
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cisd
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cisd()
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
Calls H_apply on the HF determinant and selects all connected single and double excitations (of the same symmetry). Auto-generated by the ``generate_h_apply`` script.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cisd_diexc
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cisd_diexc(key_in, key_prev, hole_1,particl_1, hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in )
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cisd_diexcorg
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cisd_diexcOrg(key_in,key_mask,hole_1,particl_1,hole_2, particl_2, fock_diag_tmp, i_generator, iproc_in )
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
Generate all double excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cisd_diexcp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cisd_diexcP(key_in, fs1, fh1, particl_1, fs2, fh2, particl_2, fock_diag_tmp, i_generator, iproc_in )
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_apply_cisd_monoexc
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_apply_cisd_monoexc(key_in, hole_1,particl_1,fock_diag_tmp,i_generator,iproc_in )
|
||||||
|
|
||||||
|
File: :file:`H_apply.irp.f_shell_8`
|
||||||
|
|
||||||
|
Generate all single excitations of key_in using the bit masks of holes and particles. Assume N_int is already provided.
|
||||||
|
|
||||||
|
|
||||||
|
@ -23,36 +23,530 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: threshold_davidson
|
.. option:: threshold_davidson
|
||||||
|
|
||||||
Thresholds of Davidson's algorithm
|
Thresholds of Davidson's algorithm
|
||||||
|
|
||||||
Default: 1.e-10
|
Default: 1.e-10
|
||||||
|
|
||||||
.. option:: n_states_diag
|
.. option:: n_states_diag
|
||||||
|
|
||||||
Number of states to consider during the Davdison diagonalization
|
Number of states to consider during the Davdison diagonalization
|
||||||
|
|
||||||
Default: 4
|
Default: 4
|
||||||
|
|
||||||
.. option:: davidson_sze_max
|
.. option:: davidson_sze_max
|
||||||
|
|
||||||
Number of micro-iterations before re-contracting
|
Number of micro-iterations before re-contracting
|
||||||
|
|
||||||
Default: 8
|
Default: 8
|
||||||
|
|
||||||
.. option:: state_following
|
.. option:: state_following
|
||||||
|
|
||||||
If |true|, the states are re-ordered to match the input states
|
If |true|, the states are re-ordered to match the input states
|
||||||
|
|
||||||
Default: False
|
Default: False
|
||||||
|
|
||||||
.. option:: disk_based_davidson
|
.. option:: disk_based_davidson
|
||||||
|
|
||||||
If |true|, disk space is used to store the vectors
|
If |true|, disk space is used to store the vectors
|
||||||
|
|
||||||
Default: False
|
Default: False
|
||||||
|
|
||||||
.. option:: distributed_davidson
|
.. option:: distributed_davidson
|
||||||
|
|
||||||
If |true|, use the distributed algorithm
|
If |true|, use the distributed algorithm
|
||||||
|
|
||||||
|
Default: True
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ci_eigenvectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ci_electronic_energy (N_states_diag)
|
||||||
|
double precision, allocatable :: ci_eigenvectors (N_det,N_states_diag)
|
||||||
|
double precision, allocatable :: ci_eigenvectors_s2 (N_states_diag)
|
||||||
|
|
||||||
|
File: :file:`diagonalize_CI.irp.f`
|
||||||
|
|
||||||
|
Eigenvectors/values of the CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ci_eigenvectors_s2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ci_electronic_energy (N_states_diag)
|
||||||
|
double precision, allocatable :: ci_eigenvectors (N_det,N_states_diag)
|
||||||
|
double precision, allocatable :: ci_eigenvectors_s2 (N_states_diag)
|
||||||
|
|
||||||
|
File: :file:`diagonalize_CI.irp.f`
|
||||||
|
|
||||||
|
Eigenvectors/values of the CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ci_electronic_energy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ci_electronic_energy (N_states_diag)
|
||||||
|
double precision, allocatable :: ci_eigenvectors (N_det,N_states_diag)
|
||||||
|
double precision, allocatable :: ci_eigenvectors_s2 (N_states_diag)
|
||||||
|
|
||||||
|
File: :file:`diagonalize_CI.irp.f`
|
||||||
|
|
||||||
|
Eigenvectors/values of the CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ci_energy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ci_energy (N_states_diag)
|
||||||
|
|
||||||
|
File: :file:`diagonalize_CI.irp.f`
|
||||||
|
|
||||||
|
N_states lowest eigenvalues of the CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: davidson_criterion
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character(64) :: davidson_criterion
|
||||||
|
|
||||||
|
File: :file:`parameters.irp.f`
|
||||||
|
|
||||||
|
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: dressed_column_idx
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: dressed_column_idx (N_states)
|
||||||
|
|
||||||
|
File: :file:`diagonalization_hs2_dressed.irp.f`
|
||||||
|
|
||||||
|
Index of the dressed columns
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_states_diag
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: n_states_diag
|
||||||
|
|
||||||
|
File: :file:`input.irp.f`
|
||||||
|
|
||||||
|
Number of states to consider during the Davdison diagonalization
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nthreads_davidson
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: nthreads_davidson
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
Number of threads for Davdison
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_energy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_energy (N_states)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f`
|
||||||
|
|
||||||
|
Energy of the current wave function
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_energy_with_nucl_rep
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_energy_with_nucl_rep (N_states)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f`
|
||||||
|
|
||||||
|
Energy of the wave function with the nuclear repulsion energy.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_collector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_collector(zmq_to_qp_run_socket, zmq_socket_pull, v0, s0, sze, N_st)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_converged
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_converged(energy,residual,wall,iterations,cpu,N_st,converged)
|
||||||
|
|
||||||
|
File: :file:`parameters.irp.f`
|
||||||
|
|
||||||
|
True if the Davidson algorithm is converged
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_diag_hjj_sjj
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_diag_hjj_sjj(dets_in,u_in,H_jj,s2_out,energies,dim_in,sze,N_st,N_st_diag,Nint,dressing_state,converged)
|
||||||
|
|
||||||
|
File: :file:`diagonalization_hs2_dressed.irp.f`
|
||||||
|
|
||||||
|
Davidson diagonalization with specific diagonal elements of the H matrix
|
||||||
|
H_jj : specific diagonal H matrix elements to diagonalize de Davidson
|
||||||
|
S2_out : Output : s^2
|
||||||
|
dets_in : bitmasks corresponding to determinants
|
||||||
|
u_in : guess coefficients on the various states. Overwritten on exit
|
||||||
|
dim_in : leftmost dimension of u_in
|
||||||
|
sze : Number of determinants
|
||||||
|
N_st : Number of eigenstates
|
||||||
|
N_st_diag : Number of states in which H is diagonalized. Assumed > sze
|
||||||
|
Initial guess vectors are not necessarily orthonormal
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_diag_hs2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_diag_hs2(dets_in,u_in,s2_out,dim_in,energies,sze,N_st,N_st_diag,Nint,dressing_state)
|
||||||
|
|
||||||
|
File: :file:`diagonalization_hs2_dressed.irp.f`
|
||||||
|
|
||||||
|
Davidson diagonalization.
|
||||||
|
dets_in : bitmasks corresponding to determinants
|
||||||
|
u_in : guess coefficients on the various states. Overwritten on exit
|
||||||
|
dim_in : leftmost dimension of u_in
|
||||||
|
sze : Number of determinants
|
||||||
|
N_st : Number of eigenstates
|
||||||
|
Initial guess vectors are not necessarily orthonormal
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_pull_results
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_pull_results(zmq_socket_pull, v_t, s_t, imin, imax, task_id)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_push_results
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_push_results(zmq_socket_push, v_t, s_t, imin, imax, task_id)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_run_slave
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_run_slave(thread,iproc)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_slave_inproc
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_slave_inproc(i)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_slave_tcp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_slave_tcp(i)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: davidson_slave_work
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine davidson_slave_work(zmq_to_qp_run_socket, zmq_socket_push, N_st, sze, worker_id)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: diagonalize_ci
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine diagonalize_CI
|
||||||
|
|
||||||
|
File: :file:`diagonalize_CI.irp.f`
|
||||||
|
|
||||||
|
Replace the coefficients of the CI states by the coefficients of the eigenstates of the CI matrix
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: find_reference
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine find_reference(thresh,n_ref,result)
|
||||||
|
|
||||||
|
File: :file:`find_reference.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_s2_u_0_nstates_openmp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_S2_u_0_nstates_openmp(v_0,s_0,u_0,N_st,sze)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f`
|
||||||
|
|
||||||
|
Computes v_0 = H|u_0> and s_0 = S^2 |u_0>
|
||||||
|
Assumes that the determinants are in psi_det
|
||||||
|
istart, iend, ishift, istep are used in ZMQ parallelization.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_s2_u_0_nstates_openmp_work
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_S2_u_0_nstates_openmp_work(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f`
|
||||||
|
|
||||||
|
Computes v_t = H|u_t> and s_t = S^2 |u_t>
|
||||||
|
Default should be 1,N_det,0,1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_s2_u_0_nstates_openmp_work_1
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_S2_u_0_nstates_openmp_work_1(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f_template_468`
|
||||||
|
|
||||||
|
Computes v_t = H|u_t> and s_t = S^2 |u_t>
|
||||||
|
Default should be 1,N_det,0,1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_s2_u_0_nstates_openmp_work_2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_S2_u_0_nstates_openmp_work_2(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f_template_468`
|
||||||
|
|
||||||
|
Computes v_t = H|u_t> and s_t = S^2 |u_t>
|
||||||
|
Default should be 1,N_det,0,1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_s2_u_0_nstates_openmp_work_3
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_S2_u_0_nstates_openmp_work_3(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f_template_468`
|
||||||
|
|
||||||
|
Computes v_t = H|u_t> and s_t = S^2 |u_t>
|
||||||
|
Default should be 1,N_det,0,1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_s2_u_0_nstates_openmp_work_4
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_S2_u_0_nstates_openmp_work_4(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f_template_468`
|
||||||
|
|
||||||
|
Computes v_t = H|u_t> and s_t = S^2 |u_t>
|
||||||
|
Default should be 1,N_det,0,1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_s2_u_0_nstates_openmp_work_n_int
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_S2_u_0_nstates_openmp_work_N_int(v_t,s_t,u_t,N_st,sze,istart,iend,ishift,istep)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f_template_468`
|
||||||
|
|
||||||
|
Computes v_t = H|u_t> and s_t = S^2 |u_t>
|
||||||
|
Default should be 1,N_det,0,1
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: h_s2_u_0_nstates_zmq
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine H_S2_u_0_nstates_zmq(v_0,s_0,u_0,N_st,sze)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
Computes v_0 = H|u_0> and s_0 = S^2 |u_0>
|
||||||
|
n : number of determinants
|
||||||
|
H_jj : array of <j|H|j>
|
||||||
|
S2_jj : array of <j|S^2|j>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: u_0_h_u_0
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine u_0_H_u_0(e_0,u_0,n,keys_tmp,Nint,N_st,sze)
|
||||||
|
|
||||||
|
File: :file:`u0Hu0.irp.f`
|
||||||
|
|
||||||
|
Computes e_0 = <u_0|H|u_0>/<u_0|u_0>
|
||||||
|
n : number of determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_n_states_diag
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_N_states_diag(zmq_to_qp_run_socket, worker_id)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
Get N_states_diag from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put_n_states_diag
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put_N_states_diag(zmq_to_qp_run_socket,worker_id)
|
||||||
|
|
||||||
|
File: :file:`davidson_parallel.irp.f`
|
||||||
|
|
||||||
|
Put N_states_diag on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
Default: True
|
|
||||||
|
@ -11,3 +11,35 @@ DavidsonUndressed
|
|||||||
Module for main files Davidson's algorithm with no dressing.
|
Module for main files Davidson's algorithm with no dressing.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: dressing_column_h
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: dressing_column_h (N_det,N_states)
|
||||||
|
double precision, allocatable :: dressing_column_s (N_det,N_states)
|
||||||
|
|
||||||
|
File: :file:`null_dressing_vector.irp.f`
|
||||||
|
|
||||||
|
Null dressing vectors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: dressing_column_s
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: dressing_column_h (N_det,N_states)
|
||||||
|
double precision, allocatable :: dressing_column_s (N_det,N_states)
|
||||||
|
|
||||||
|
File: :file:`null_dressing_vector.irp.f`
|
||||||
|
|
||||||
|
Null dressing vectors
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -19,18 +19,18 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: thresh_dressed_ci
|
.. option:: thresh_dressed_ci
|
||||||
|
|
||||||
Threshold on the convergence of the dressed |CI| energy
|
Threshold on the convergence of the dressed |CI| energy
|
||||||
|
|
||||||
Default: 1.e-5
|
Default: 1.e-5
|
||||||
|
|
||||||
.. option:: n_it_max_dressed_ci
|
.. option:: n_it_max_dressed_ci
|
||||||
|
|
||||||
Maximum number of dressed |CI| iterations
|
Maximum number of dressed |CI| iterations
|
||||||
|
|
||||||
Default: 10
|
Default: 10
|
||||||
|
|
||||||
.. option:: dress_relative_error
|
.. option:: dress_relative_error
|
||||||
|
|
||||||
Stop stochastic dressing when the relative error is smaller than :option:`perturbation PT2_relative_error`
|
Stop stochastic dressing when the relative error is smaller than :option:`perturbation PT2_relative_error`
|
||||||
|
|
||||||
Default: 0.001
|
Default: 0.001
|
||||||
|
@ -29,16 +29,48 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: elec_alpha_num
|
.. option:: elec_alpha_num
|
||||||
|
|
||||||
Numbers of electrons alpha ("up")
|
Numbers of electrons alpha ("up")
|
||||||
|
|
||||||
|
|
||||||
.. option:: elec_beta_num
|
.. option:: elec_beta_num
|
||||||
|
|
||||||
Numbers of electrons beta ("down")
|
Numbers of electrons beta ("down")
|
||||||
|
|
||||||
|
|
||||||
.. option:: elec_num
|
.. option:: elec_num
|
||||||
|
|
||||||
Numbers total of electrons (alpha + beta)
|
Numbers total of electrons (alpha + beta)
|
||||||
|
|
||||||
|
Default: = electrons.elec_alpha_num + electrons.elec_beta_num
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: elec_num
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: elec_num
|
||||||
|
integer, allocatable :: elec_num_tab (2)
|
||||||
|
|
||||||
|
File: :file:`electrons.irp.f`
|
||||||
|
|
||||||
|
Numbers of alpha ("up") , beta ("down") and total electrons
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: elec_num_tab
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: elec_num
|
||||||
|
integer, allocatable :: elec_num_tab (2)
|
||||||
|
|
||||||
|
File: :file:`electrons.irp.f`
|
||||||
|
|
||||||
|
Numbers of alpha ("up") , beta ("down") and total electrons
|
||||||
|
|
||||||
|
|
||||||
Default: = electrons.elec_alpha_num + electrons.elec_beta_num
|
|
||||||
|
@ -13,3 +13,137 @@ This modules essentially contains the name of the |EZFIO| directory in the
|
|||||||
command-line, or as the :envvar:`QP_INPUT` environment variable.
|
command-line, or as the :envvar:`QP_INPUT` environment variable.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ezfio_filename
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: ezfio_filename
|
||||||
|
|
||||||
|
File: :file:`ezfio.irp.f`
|
||||||
|
|
||||||
|
Name of EZFIO file. It is obtained from the QPACKAGE_INPUT environment variable if it is set, or as the 1st argument of the command line.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ezfio_work_dir
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: ezfio_work_dir
|
||||||
|
|
||||||
|
File: :file:`ezfio.irp.f`
|
||||||
|
|
||||||
|
EZFIO/work/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: output_cpu_time_0
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: output_wall_time_0
|
||||||
|
double precision :: output_cpu_time_0
|
||||||
|
|
||||||
|
File: :file:`output.irp.f`
|
||||||
|
|
||||||
|
Initial CPU and wall times when printing in the output files
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: output_wall_time_0
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: output_wall_time_0
|
||||||
|
double precision :: output_cpu_time_0
|
||||||
|
|
||||||
|
File: :file:`output.irp.f`
|
||||||
|
|
||||||
|
Initial CPU and wall times when printing in the output files
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: getunitandopen
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function getUnitAndOpen(f,mode)
|
||||||
|
|
||||||
|
File: :file:`get_unit_and_open.irp.f`
|
||||||
|
|
||||||
|
:f: file name
|
||||||
|
:mode: 'R' : READ, UNFORMATTED 'W' : WRITE, UNFORMATTED 'r' : READ, FORMATTED 'w' : WRITE, FORMATTED 'a' : APPEND, FORMATTED 'x' : READ/WRITE, FORMATTED
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: write_bool
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine write_bool(iunit,value,label)
|
||||||
|
|
||||||
|
File: :file:`output.irp.f`
|
||||||
|
|
||||||
|
Write an logical value in output
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: write_double
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine write_double(iunit,value,label)
|
||||||
|
|
||||||
|
File: :file:`output.irp.f`
|
||||||
|
|
||||||
|
Write a double precision value in output
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: write_int
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine write_int(iunit,value,label)
|
||||||
|
|
||||||
|
File: :file:`output.irp.f`
|
||||||
|
|
||||||
|
Write an integer value in output
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: write_time
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine write_time(iunit)
|
||||||
|
|
||||||
|
File: :file:`output.irp.f`
|
||||||
|
|
||||||
|
Write a time stamp in the output for chronological reconstruction
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -11,3 +11,21 @@ FourIdx
|
|||||||
Four-index transformation.
|
Four-index transformation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: four_idx
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine four_idx
|
||||||
|
|
||||||
|
File: :file:`Four_idx_transform.irp.f`
|
||||||
|
|
||||||
|
4-index transformation from AO to MO integrals
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,3 +14,132 @@ variational space.
|
|||||||
This module is intended to be included in the :file:`NEED` file to define
|
This module is intended to be included in the :file:`NEED` file to define
|
||||||
a full set of generators.
|
a full set of generators.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: degree_max_generators
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: degree_max_generators
|
||||||
|
|
||||||
|
File: :file:`generators.irp.f`
|
||||||
|
|
||||||
|
Max degree of excitation (respect to HF) of the generators
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_det_generators
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: n_det_generators
|
||||||
|
|
||||||
|
File: :file:`generators.irp.f`
|
||||||
|
|
||||||
|
For Single reference wave functions, the number of generators is 1 : the Hartree-Fock determinant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_coef_generators
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
|
||||||
|
|
||||||
|
File: :file:`generators.irp.f`
|
||||||
|
|
||||||
|
For Single reference wave functions, the generator is the Hartree-Fock determinant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_coef_sorted_gen
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
|
||||||
|
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
|
||||||
|
|
||||||
|
File: :file:`generators.irp.f`
|
||||||
|
|
||||||
|
For Single reference wave functions, the generator is the Hartree-Fock determinant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_det_generators
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_det_generators (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_coef_generators (psi_det_size,N_states)
|
||||||
|
|
||||||
|
File: :file:`generators.irp.f`
|
||||||
|
|
||||||
|
For Single reference wave functions, the generator is the Hartree-Fock determinant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_det_sorted_gen
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
|
||||||
|
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
|
||||||
|
|
||||||
|
File: :file:`generators.irp.f`
|
||||||
|
|
||||||
|
For Single reference wave functions, the generator is the Hartree-Fock determinant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_det_sorted_gen_order
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_det_sorted_gen (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_coef_sorted_gen (psi_det_size,N_states)
|
||||||
|
integer, allocatable :: psi_det_sorted_gen_order (psi_det_size)
|
||||||
|
|
||||||
|
File: :file:`generators.irp.f`
|
||||||
|
|
||||||
|
For Single reference wave functions, the generator is the Hartree-Fock determinant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: select_max
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: select_max (size_select_max)
|
||||||
|
|
||||||
|
File: :file:`generators.irp.f`
|
||||||
|
|
||||||
|
Memo to skip useless selectors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: size_select_max
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: size_select_max
|
||||||
|
|
||||||
|
File: :file:`generators.irp.f`
|
||||||
|
|
||||||
|
Size of the select_max array
|
||||||
|
|
||||||
|
|
||||||
|
@ -45,76 +45,160 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: max_dim_diis
|
.. option:: max_dim_diis
|
||||||
|
|
||||||
Maximum size of the |DIIS| extrapolation procedure
|
Maximum size of the |DIIS| extrapolation procedure
|
||||||
|
|
||||||
Default: 15
|
Default: 15
|
||||||
|
|
||||||
.. option:: threshold_diis
|
.. option:: threshold_diis
|
||||||
|
|
||||||
Threshold on the convergence of the |DIIS| error vector during a Hartree-Fock calculation. If 0. is chosen, the square root of thresh_scf will be used.
|
Threshold on the convergence of the |DIIS| error vector during a Hartree-Fock calculation. If 0. is chosen, the square root of thresh_scf will be used.
|
||||||
|
|
||||||
Default: 0.
|
Default: 0.
|
||||||
|
|
||||||
.. option:: thresh_scf
|
.. option:: thresh_scf
|
||||||
|
|
||||||
Threshold on the convergence of the Hartree Fock energy.
|
Threshold on the convergence of the Hartree Fock energy.
|
||||||
|
|
||||||
Default: 1.e-10
|
Default: 1.e-10
|
||||||
|
|
||||||
.. option:: n_it_scf_max
|
.. option:: n_it_scf_max
|
||||||
|
|
||||||
Maximum number of |SCF| iterations
|
Maximum number of |SCF| iterations
|
||||||
|
|
||||||
Default: 500
|
Default: 500
|
||||||
|
|
||||||
.. option:: level_shift
|
.. option:: level_shift
|
||||||
|
|
||||||
Initial value of the energy shift on the virtual |MOs|
|
Initial value of the energy shift on the virtual |MOs|
|
||||||
|
|
||||||
Default: 0.0
|
Default: 0.0
|
||||||
|
|
||||||
.. option:: scf_algorithm
|
.. option:: scf_algorithm
|
||||||
|
|
||||||
Type of |SCF| algorithm used. Possible choices are [ Simple | DIIS]
|
Type of |SCF| algorithm used. Possible choices are [ Simple | DIIS]
|
||||||
|
|
||||||
Default: DIIS
|
Default: DIIS
|
||||||
|
|
||||||
.. option:: mo_guess_type
|
.. option:: mo_guess_type
|
||||||
|
|
||||||
Initial MO guess. Can be [ Huckel | HCore ]
|
Initial MO guess. Can be [ Huckel | HCore ]
|
||||||
|
|
||||||
Default: Huckel
|
Default: Huckel
|
||||||
|
|
||||||
.. option:: energy
|
.. option:: energy
|
||||||
|
|
||||||
Calculated HF energy
|
Calculated HF energy
|
||||||
|
|
||||||
|
|
||||||
.. option:: no_oa_or_av_opt
|
.. option:: no_oa_or_av_opt
|
||||||
|
|
||||||
If |true|, skip the (inactive+core) --> (active) and the (active) --> (virtual) orbital rotations within the |SCF| procedure
|
If |true|, skip the (inactive+core) --> (active) and the (active) --> (virtual) orbital rotations within the |SCF| procedure
|
||||||
|
|
||||||
Default: False
|
Default: False
|
||||||
|
|
||||||
|
|
||||||
Providers
|
Providers
|
||||||
---------
|
---------
|
||||||
|
|
||||||
|
|
||||||
.. option:: fock_matrix_mo_alpha
|
.. c:var:: ao_bi_elec_integral_alpha
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
double precision, allocatable :: fock_matrix_mo_alpha (mo_tot_num,mo_tot_num)
|
double precision, allocatable :: ao_bi_elec_integral_alpha (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_bi_elec_integral_beta (ao_num,ao_num)
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
Fock matrix on the MO basis
|
Alpha Fock matrix in AO basis set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: extrapolate_fock_matrix
|
.. c:var:: ao_bi_elec_integral_beta
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_bi_elec_integral_alpha (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: ao_bi_elec_integral_beta (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
|
Alpha Fock matrix in AO basis set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: diagonal_fock_matrix_mo
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: diagonal_fock_matrix_mo (mo_tot_num)
|
||||||
|
double precision, allocatable :: eigenvectors_fock_matrix_mo (ao_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`diagonalize_fock.irp.f`
|
||||||
|
|
||||||
|
Diagonal Fock matrix in the MO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: diagonal_fock_matrix_mo_sum
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: diagonal_fock_matrix_mo_sum (mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`diagonalize_fock.irp.f`
|
||||||
|
|
||||||
|
diagonal element of the fock matrix calculated as the sum over all the interactions with all the electrons in the RHF determinant diagonal_Fock_matrix_mo_sum(i) = sum_{j=1, N_elec} 2 J_ij -K_ij
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: eigenvalues_fock_matrix_ao
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: eigenvalues_fock_matrix_ao (AO_num)
|
||||||
|
double precision, allocatable :: eigenvectors_fock_matrix_ao (AO_num,AO_num)
|
||||||
|
|
||||||
|
File: :file:`DIIS.irp.f`
|
||||||
|
|
||||||
|
Eigenvalues and eigenvectors of the Fock matrix over the AO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: eigenvectors_fock_matrix_ao
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: eigenvalues_fock_matrix_ao (AO_num)
|
||||||
|
double precision, allocatable :: eigenvectors_fock_matrix_ao (AO_num,AO_num)
|
||||||
|
|
||||||
|
File: :file:`DIIS.irp.f`
|
||||||
|
|
||||||
|
Eigenvalues and eigenvectors of the Fock matrix over the AO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: eigenvectors_fock_matrix_mo
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: diagonal_fock_matrix_mo (mo_tot_num)
|
||||||
|
double precision, allocatable :: eigenvectors_fock_matrix_mo (ao_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`diagonalize_fock.irp.f`
|
||||||
|
|
||||||
|
Diagonal Fock matrix in the MO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: extrapolate_fock_matrix
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
@ -124,286 +208,290 @@ Providers
|
|||||||
iteration_SCF,dim_DIIS &
|
iteration_SCF,dim_DIIS &
|
||||||
)
|
)
|
||||||
|
|
||||||
File: Roothaan_Hall_SCF.irp.f
|
File: :file:`Roothaan_Hall_SCF.irp.f`
|
||||||
|
|
||||||
Compute the extrapolated Fock matrix using the DIIS procedure
|
Compute the extrapolated Fock matrix using the DIIS procedure
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: fock_matrix_ao_alpha
|
.. c:var:: fock_matrix_ao
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
|
|
||||||
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
|
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
|
||||||
|
|
||||||
Alpha Fock matrix in AO basis set
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: hf_energy
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision :: hf_energy
|
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
|
||||||
|
|
||||||
Hartree-Fock energy
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: fock_matrix_diag_mo
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: fock_matrix_mo (mo_tot_num,mo_tot_num)
|
|
||||||
double precision, allocatable :: fock_matrix_diag_mo (mo_tot_num)
|
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
|
||||||
|
|
||||||
Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is
|
|
||||||
| F-K | F + K/2 | F | |---------------------------------| | F + K/2 | F | F - K/2 | |---------------------------------| | F | F - K/2 | F + K |
|
|
||||||
F = 1/2 (Fa + Fb)
|
|
||||||
K = Fb - Fa
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: fock_matrix_ao_beta
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
|
|
||||||
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
|
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
|
||||||
|
|
||||||
Alpha Fock matrix in AO basis set
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: hf_density_matrix_ao
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: hf_density_matrix_ao (ao_num,ao_num)
|
|
||||||
|
|
||||||
File: HF_density_matrix_ao.irp.f
|
|
||||||
|
|
||||||
S^{-1}.P.S^{-1} where P = C.C^t
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: fps_spf_matrix_ao
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: fps_spf_matrix_ao (AO_num,AO_num)
|
|
||||||
|
|
||||||
File: DIIS.irp.f
|
|
||||||
|
|
||||||
Commutator FPS - SPF
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: threshold_diis_nonzero
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision :: threshold_diis_nonzero
|
|
||||||
|
|
||||||
File: DIIS.irp.f
|
|
||||||
|
|
||||||
If threshold_DIIS is zero, choose sqrt(thresh_scf)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_bi_elec_integral_alpha
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: ao_bi_elec_integral_alpha (ao_num,ao_num)
|
|
||||||
double precision, allocatable :: ao_bi_elec_integral_beta (ao_num,ao_num)
|
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
|
||||||
|
|
||||||
Alpha Fock matrix in AO basis set
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: eigenvectors_fock_matrix_ao
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: eigenvalues_fock_matrix_ao (AO_num)
|
|
||||||
double precision, allocatable :: eigenvectors_fock_matrix_ao (AO_num,AO_num)
|
|
||||||
|
|
||||||
File: DIIS.irp.f
|
|
||||||
|
|
||||||
Eigenvalues and eigenvectors of the Fock matrix over the AO basis
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: fock_matrix_mo_beta
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: fock_matrix_mo_beta (mo_tot_num,mo_tot_num)
|
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
|
||||||
|
|
||||||
Fock matrix on the MO basis
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: eigenvectors_fock_matrix_mo
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: diagonal_fock_matrix_mo (mo_tot_num)
|
|
||||||
double precision, allocatable :: eigenvectors_fock_matrix_mo (ao_num,mo_tot_num)
|
|
||||||
|
|
||||||
File: diagonalize_fock.irp.f
|
|
||||||
|
|
||||||
Diagonal Fock matrix in the MO basis
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: fock_matrix_mo
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: fock_matrix_mo (mo_tot_num,mo_tot_num)
|
|
||||||
double precision, allocatable :: fock_matrix_diag_mo (mo_tot_num)
|
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
|
||||||
|
|
||||||
Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is
|
|
||||||
| F-K | F + K/2 | F | |---------------------------------| | F + K/2 | F | F - K/2 | |---------------------------------| | F | F - K/2 | F + K |
|
|
||||||
F = 1/2 (Fa + Fb)
|
|
||||||
K = Fb - Fa
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: fps_spf_matrix_mo
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: fps_spf_matrix_mo (mo_tot_num,mo_tot_num)
|
|
||||||
|
|
||||||
File: DIIS.irp.f
|
|
||||||
|
|
||||||
Commutator FPS - SPF in MO basis
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: diagonal_fock_matrix_mo_sum
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: diagonal_fock_matrix_mo_sum (mo_tot_num)
|
|
||||||
|
|
||||||
File: diagonalize_fock.irp.f
|
|
||||||
|
|
||||||
diagonal element of the fock matrix calculated as the sum over all the interactions with all the electrons in the RHF determinant diagonal_Fock_matrix_mo_sum(i) = sum_{j=1, N_elec} 2 J_ij -K_ij
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: hf_density_matrix_ao_alpha
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: hf_density_matrix_ao_alpha (ao_num,ao_num)
|
|
||||||
|
|
||||||
File: HF_density_matrix_ao.irp.f
|
|
||||||
|
|
||||||
S^{-1}.P_alpha.S^{-1}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: hf_density_matrix_ao_beta
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: hf_density_matrix_ao_beta (ao_num,ao_num)
|
|
||||||
|
|
||||||
File: HF_density_matrix_ao.irp.f
|
|
||||||
|
|
||||||
S^{-1}.P_beta.S^{-1}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: eigenvalues_fock_matrix_ao
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: eigenvalues_fock_matrix_ao (AO_num)
|
|
||||||
double precision, allocatable :: eigenvectors_fock_matrix_ao (AO_num,AO_num)
|
|
||||||
|
|
||||||
File: DIIS.irp.f
|
|
||||||
|
|
||||||
Eigenvalues and eigenvectors of the Fock matrix over the AO basis
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_bi_elec_integral_beta
|
|
||||||
|
|
||||||
.. code:: text
|
|
||||||
|
|
||||||
double precision, allocatable :: ao_bi_elec_integral_alpha (ao_num,ao_num)
|
|
||||||
double precision, allocatable :: ao_bi_elec_integral_beta (ao_num,ao_num)
|
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
|
||||||
|
|
||||||
Alpha Fock matrix in AO basis set
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: fock_matrix_ao
|
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
double precision, allocatable :: fock_matrix_ao (ao_num,ao_num)
|
double precision, allocatable :: fock_matrix_ao (ao_num,ao_num)
|
||||||
|
|
||||||
File: Fock_matrix.irp.f
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
Fock matrix in AO basis set
|
Fock matrix in AO basis set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
.. option:: diagonal_fock_matrix_mo
|
.. c:var:: fock_matrix_ao_alpha
|
||||||
|
|
||||||
.. code:: text
|
.. code:: text
|
||||||
|
|
||||||
double precision, allocatable :: diagonal_fock_matrix_mo (mo_tot_num)
|
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
|
||||||
double precision, allocatable :: eigenvectors_fock_matrix_mo (ao_num,mo_tot_num)
|
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
|
||||||
|
|
||||||
File: diagonalize_fock.irp.f
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
Diagonal Fock matrix in the MO basis
|
Alpha Fock matrix in AO basis set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: fock_matrix_ao_beta
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: fock_matrix_ao_alpha (ao_num,ao_num)
|
||||||
|
double precision, allocatable :: fock_matrix_ao_beta (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
|
Alpha Fock matrix in AO basis set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: fock_matrix_diag_mo
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: fock_matrix_mo (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: fock_matrix_diag_mo (mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
|
Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is
|
||||||
|
| F-K | F + K/2 | F | |---------------------------------| | F + K/2 | F | F - K/2 | |---------------------------------| | F | F - K/2 | F + K |
|
||||||
|
F = 1/2 (Fa + Fb)
|
||||||
|
K = Fb - Fa
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: fock_matrix_mo
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: fock_matrix_mo (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: fock_matrix_diag_mo (mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
|
Fock matrix on the MO basis. For open shells, the ROHF Fock Matrix is
|
||||||
|
| F-K | F + K/2 | F | |---------------------------------| | F + K/2 | F | F - K/2 | |---------------------------------| | F | F - K/2 | F + K |
|
||||||
|
F = 1/2 (Fa + Fb)
|
||||||
|
K = Fb - Fa
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: fock_matrix_mo_alpha
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: fock_matrix_mo_alpha (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
|
Fock matrix on the MO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: fock_matrix_mo_beta
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: fock_matrix_mo_beta (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
|
Fock matrix on the MO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: fps_spf_matrix_ao
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: fps_spf_matrix_ao (AO_num,AO_num)
|
||||||
|
|
||||||
|
File: :file:`DIIS.irp.f`
|
||||||
|
|
||||||
|
Commutator FPS - SPF
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: fps_spf_matrix_mo
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: fps_spf_matrix_mo (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`DIIS.irp.f`
|
||||||
|
|
||||||
|
Commutator FPS - SPF in MO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: hf_density_matrix_ao
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: hf_density_matrix_ao (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`HF_density_matrix_ao.irp.f`
|
||||||
|
|
||||||
|
S^{-1}.P.S^{-1} where P = C.C^t
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: hf_density_matrix_ao_alpha
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: hf_density_matrix_ao_alpha (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`HF_density_matrix_ao.irp.f`
|
||||||
|
|
||||||
|
S^{-1}.P_alpha.S^{-1}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: hf_density_matrix_ao_beta
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: hf_density_matrix_ao_beta (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`HF_density_matrix_ao.irp.f`
|
||||||
|
|
||||||
|
S^{-1}.P_beta.S^{-1}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: hf_energy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: hf_energy
|
||||||
|
|
||||||
|
File: :file:`Fock_matrix.irp.f`
|
||||||
|
|
||||||
|
Hartree-Fock energy
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: threshold_diis_nonzero
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: threshold_diis_nonzero
|
||||||
|
|
||||||
|
File: :file:`DIIS.irp.f`
|
||||||
|
|
||||||
|
If threshold_DIIS is zero, choose sqrt(thresh_scf)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: create_guess
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine create_guess
|
||||||
|
|
||||||
|
File: :file:`SCF.irp.f`
|
||||||
|
|
||||||
|
Create a MO guess if no MOs are present in the EZFIO directory
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: damping_scf
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine damping_SCF
|
||||||
|
|
||||||
|
File: :file:`damping_SCF.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: huckel_guess
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine huckel_guess
|
||||||
|
|
||||||
|
File: :file:`huckel.irp.f`
|
||||||
|
|
||||||
|
Build the MOs using the extended Huckel model
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: roothaan_hall_scf
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine Roothaan_Hall_SCF
|
||||||
|
|
||||||
|
File: :file:`Roothaan_Hall_SCF.irp.f`
|
||||||
|
|
||||||
|
Roothaan-Hall algorithm for SCF Hartree-Fock calculation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: run
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine run
|
||||||
|
|
||||||
|
File: :file:`SCF.irp.f`
|
||||||
|
|
||||||
|
Run SCF calculation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: scf
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine scf
|
||||||
|
|
||||||
|
File: :file:`SCF.irp.f`
|
||||||
|
|
||||||
|
Produce `Hartree_Fock` MO orbital output: mo_basis.mo_tot_num mo_basis.mo_label mo_basis.ao_md5 mo_basis.mo_coef mo_basis.mo_occ output: hartree_fock.energy optional: mo_basis.mo_coef
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -17,21 +17,97 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: n_iter
|
.. option:: n_iter
|
||||||
|
|
||||||
Number of saved iterations
|
Number of saved iterations
|
||||||
|
|
||||||
Default: 1
|
Default: 1
|
||||||
|
|
||||||
.. option:: n_det_iterations
|
.. option:: n_det_iterations
|
||||||
|
|
||||||
Number of determinants at each iteration
|
Number of determinants at each iteration
|
||||||
|
|
||||||
|
|
||||||
.. option:: energy_iterations
|
.. option:: energy_iterations
|
||||||
|
|
||||||
The variational energy at each iteration
|
The variational energy at each iteration
|
||||||
|
|
||||||
|
|
||||||
.. option:: pt2_iterations
|
.. option:: pt2_iterations
|
||||||
|
|
||||||
The |PT2| correction at each iteration
|
The |PT2| correction at each iteration
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: extrapolated_energy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: extrapolated_energy (N_iter,N_states)
|
||||||
|
|
||||||
|
File: :file:`iterations.irp.f`
|
||||||
|
|
||||||
|
Extrapolated energy, using E_var = f(PT2) where PT2=0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_iter
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: n_iter
|
||||||
|
|
||||||
|
File: :file:`io.irp.f`
|
||||||
|
|
||||||
|
number of iterations
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: print_extrapolated_energy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine print_extrapolated_energy(e_,pt2_)
|
||||||
|
|
||||||
|
File: :file:`print_extrapolation.irp.f`
|
||||||
|
|
||||||
|
Print the extrapolated energy in the output
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: print_summary
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine print_summary(e_,pt2_,error_,variance_,norm_)
|
||||||
|
|
||||||
|
File: :file:`print_summary.irp.f`
|
||||||
|
|
||||||
|
Print the extrapolated energy in the output
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: save_iterations
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine save_iterations(e_, pt2_,n_)
|
||||||
|
|
||||||
|
File: :file:`iterations.irp.f`
|
||||||
|
|
||||||
|
Update the energy in the EZFIO file.
|
||||||
|
|
||||||
|
|
||||||
|
@ -36,30 +36,314 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: mo_tot_num
|
.. option:: mo_tot_num
|
||||||
|
|
||||||
Total number of |MOs|
|
Total number of |MOs|
|
||||||
|
|
||||||
|
|
||||||
.. option:: mo_coef
|
.. option:: mo_coef
|
||||||
|
|
||||||
Coefficient of the i-th |AO| on the j-th |MO|
|
Coefficient of the i-th |AO| on the j-th |MO|
|
||||||
|
|
||||||
|
|
||||||
.. option:: mo_label
|
.. option:: mo_label
|
||||||
|
|
||||||
Label characterizing the MOS (Local, Canonical, Natural, *etc*)
|
Label characterizing the MOS (Local, Canonical, Natural, *etc*)
|
||||||
|
|
||||||
|
|
||||||
.. option:: mo_occ
|
.. option:: mo_occ
|
||||||
|
|
||||||
|MO| occupation numbers
|
|MO| occupation numbers
|
||||||
|
|
||||||
|
|
||||||
.. option:: mo_class
|
.. option:: mo_class
|
||||||
|
|
||||||
[ Core | Inactive | Active | Virtual | Deleted ], as defined by :ref:`qp_set_mo_class`
|
[ Core | Inactive | Active | Virtual | Deleted ], as defined by :ref:`qp_set_mo_class`
|
||||||
|
|
||||||
|
|
||||||
.. option:: ao_md5
|
.. option:: ao_md5
|
||||||
|
|
||||||
MD5 checksum characterizing the |AO| basis set.
|
MD5 checksum characterizing the |AO| basis set.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_coef
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_coef (ao_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
Molecular orbital coefficients on AO basis set mo_coef(i,j) = coefficient of the ith ao on the jth mo mo_label : Label characterizing the MOS (local, canonical, natural, etc)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_coef_in_ao_ortho_basis
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_coef_in_ao_ortho_basis (ao_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
MO coefficients in orthogonalized AO basis
|
||||||
|
C^(-1).C_mo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_coef_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_coef_transp (mo_tot_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
Molecular orbital coefficients on AO basis set
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_label
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(64) :: mo_label
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
Molecular orbital coefficients on AO basis set mo_coef(i,j) = coefficient of the ith ao on the jth mo mo_label : Label characterizing the MOS (local, canonical, natural, etc)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_num
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: mo_num
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
mo_tot_num without the highest deleted MOs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_occ
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_occ (mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
MO occupation numbers
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_tot_num
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: mo_tot_num
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
Number of MOs
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: ao_ortho_cano_to_ao
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine ao_ortho_cano_to_ao(A_ao,LDA_ao,A,LDA)
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
Transform A from the AO basis to the orthogonal AO basis
|
||||||
|
C^(-1).A_ao.Ct^(-1)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: ao_to_mo
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine ao_to_mo(A_ao,LDA_ao,A_mo,LDA_mo)
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
Transform A from the AO basis to the MO basis
|
||||||
|
Ct.A_ao.C
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: give_all_mos_at_r
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine give_all_mos_at_r(r,mos_array)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: give_specific_mos_at_r
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine give_specific_mos_at_r(r,mos_array, mo_coef_specific)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: mix_mo_jk
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine mix_mo_jk(j,k)
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
subroutine that rotates the jth MO with the kth MO to give two new MO's that are '+' = 1/sqrt(2) (|j> + |k>) '-' = 1/sqrt(2) (|j> - |k>) by convention, the '+' MO is in the lower index (min(j,k)) by convention, the '-' MO is in the greater index (max(j,k))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: mo_as_eigvectors_of_mo_matrix
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine mo_as_eigvectors_of_mo_matrix(matrix,n,m,label,sign,output)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: mo_as_eigvectors_of_mo_matrix_sort_by_observable
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine mo_as_eigvectors_of_mo_matrix_sort_by_observable(matrix,observable,n,m,label)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: mo_as_svd_vectors_of_mo_matrix
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine mo_as_svd_vectors_of_mo_matrix(matrix,lda,m,n,label)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: mo_as_svd_vectors_of_mo_matrix_eig
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine mo_as_svd_vectors_of_mo_matrix_eig(matrix,lda,m,n,eig,label)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: mo_sort_by_observable
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine mo_sort_by_observable(observable,label)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: mo_to_ao_no_overlap
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine mo_to_ao_no_overlap(A_mo,LDA_mo,A_ao,LDA_ao)
|
||||||
|
|
||||||
|
File: :file:`mos.irp.f`
|
||||||
|
|
||||||
|
Transform A from the MO basis to the S^-1 AO basis Useful for density matrix
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: save_mos
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine save_mos
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: save_mos_truncated
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine save_mos_truncated(n)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -18,21 +18,267 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: integral_nuclear
|
.. option:: integral_nuclear
|
||||||
|
|
||||||
Nucleus-electron integrals in |MO| basis set
|
Nucleus-electron integrals in |MO| basis set
|
||||||
|
|
||||||
|
|
||||||
.. option:: integral_kinetic
|
.. option:: integral_kinetic
|
||||||
|
|
||||||
Kinetic energy integrals in |MO| basis set
|
Kinetic energy integrals in |MO| basis set
|
||||||
|
|
||||||
|
|
||||||
.. option:: integral_pseudo
|
.. option:: integral_pseudo
|
||||||
|
|
||||||
Pseudopotential integrals in |MO| basis set
|
Pseudopotential integrals in |MO| basis set
|
||||||
|
|
||||||
|
|
||||||
.. option:: disk_access_mo_one_integrals
|
.. option:: disk_access_mo_one_integrals
|
||||||
|
|
||||||
Read/Write |MO| one-electron integrals from/to disk [ Write | Read | None ]
|
Read/Write |MO| one-electron integrals from/to disk [ Write | Read | None ]
|
||||||
|
|
||||||
|
Default: None
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_dipole_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_dipole_x (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_dipole_y (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_dipole_z (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_mo.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_dipole_y
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_dipole_x (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_dipole_y (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_dipole_z (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_mo.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_dipole_z
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_dipole_x (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_dipole_y (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_dipole_z (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_mo.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of MO_i * x MO_j array of the integrals of MO_i * y MO_j array of the integrals of MO_i * z MO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_kinetic_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_kinetic_integral (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`kin_mo_ints.irp.f`
|
||||||
|
|
||||||
|
Kinetic energy integrals in the MO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_mono_elec_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_mono_elec_integral (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`mo_mono_ints.irp.f`
|
||||||
|
|
||||||
|
array of the mono electronic hamiltonian on the MOs basis : sum of the kinetic and nuclear electronic potential (and pseudo potential if needed)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_nucl_elec_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_nucl_elec_integral (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`pot_mo_ints.irp.f`
|
||||||
|
|
||||||
|
interaction nuclear electron on the MO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_nucl_elec_integral_per_atom
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_nucl_elec_integral_per_atom (mo_tot_num,mo_tot_num,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`pot_mo_ints.irp.f`
|
||||||
|
|
||||||
|
mo_nucl_elec_integral_per_atom(i,j,k) = -<MO(i)|1/|r-Rk|MO(j)> where Rk is the geometry of the kth atom
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_overlap
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_overlap (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`mo_overlap.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_pseudo_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_pseudo_integral (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`pot_mo_pseudo_ints.irp.f`
|
||||||
|
|
||||||
|
interaction nuclear electron on the MO basis
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_spread_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_spread_x (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_spread_y (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_spread_z (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_mo.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_spread_y
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_spread_x (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_spread_y (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_spread_z (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_mo.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mo_spread_z
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: mo_spread_x (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_spread_y (mo_tot_num,mo_tot_num)
|
||||||
|
double precision, allocatable :: mo_spread_z (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`spread_dipole_mo.irp.f`
|
||||||
|
|
||||||
|
array of the integrals of MO_i * x^2 MO_j array of the integrals of MO_i * y^2 MO_j array of the integrals of MO_i * z^2 MO_j
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: read_mo_one_integrals
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
logical :: read_mo_one_integrals
|
||||||
|
logical :: write_mo_one_integrals
|
||||||
|
|
||||||
|
File: :file:`read_write.irp.f`
|
||||||
|
|
||||||
|
One level of abstraction for disk_access_mo_integrals
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: s_mo_coef
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: s_mo_coef (ao_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`ao_to_mo.irp.f`
|
||||||
|
|
||||||
|
Product S.C where S is the overlap matrix in the AO basis and C the mo_coef matrix.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: write_mo_one_integrals
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
logical :: read_mo_one_integrals
|
||||||
|
logical :: write_mo_one_integrals
|
||||||
|
|
||||||
|
File: :file:`read_write.irp.f`
|
||||||
|
|
||||||
|
One level of abstraction for disk_access_mo_integrals
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: mo_to_ao
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine mo_to_ao(A_mo,LDA_mo,A_ao,LDA_ao)
|
||||||
|
|
||||||
|
File: :file:`ao_to_mo.irp.f`
|
||||||
|
|
||||||
|
Transform A from the MO basis to the AO basis
|
||||||
|
(S.C).A_mo.(S.C)t
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: orthonormalize_mos
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine orthonormalize_mos
|
||||||
|
|
||||||
|
File: :file:`orthonormalize.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Default: None
|
|
||||||
|
@ -11,3 +11,77 @@ MOGuess
|
|||||||
Guess for |MOs|.
|
Guess for |MOs|.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_ortho_canonical_nucl_elec_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_ortho_canonical_nucl_elec_integral (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`pot_mo_ortho_canonical_ints.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_ortho_lowdin_coef
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_ortho_lowdin_coef (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`mo_ortho_lowdin.irp.f`
|
||||||
|
|
||||||
|
matrix of the coefficients of the mos generated by the orthonormalization by the S^{-1/2} canonical transformation of the aos ao_ortho_lowdin_coef(i,j) = coefficient of the ith ao on the jth ao_ortho_lowdin orbital
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_ortho_lowdin_nucl_elec_integral
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_ortho_lowdin_nucl_elec_integral (mo_tot_num,mo_tot_num)
|
||||||
|
|
||||||
|
File: :file:`pot_mo_ortho_lowdin_ints.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ao_ortho_lowdin_overlap
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ao_ortho_lowdin_overlap (ao_num,ao_num)
|
||||||
|
|
||||||
|
File: :file:`mo_ortho_lowdin.irp.f`
|
||||||
|
|
||||||
|
overlap matrix of the ao_ortho_lowdin supposed to be the Identity
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: hcore_guess
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine hcore_guess
|
||||||
|
|
||||||
|
File: :file:`h_core_guess_routine.irp.f`
|
||||||
|
|
||||||
|
Produce `H_core` MO orbital
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,3 +10,107 @@ MPI
|
|||||||
|
|
||||||
Contains all the functions and providers for parallelization with |MPI|.
|
Contains all the functions and providers for parallelization with |MPI|.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mpi_initialized
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
logical :: mpi_initialized
|
||||||
|
|
||||||
|
File: :file:`mpi.irp.f`
|
||||||
|
|
||||||
|
Always true. Initialized MPI
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mpi_master
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
logical :: mpi_master
|
||||||
|
|
||||||
|
File: :file:`mpi.irp.f`
|
||||||
|
|
||||||
|
If true, rank is zero
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mpi_rank
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: mpi_rank
|
||||||
|
integer :: mpi_size
|
||||||
|
|
||||||
|
File: :file:`mpi.irp.f`
|
||||||
|
|
||||||
|
Rank of MPI process and number of MPI processes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: mpi_size
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: mpi_rank
|
||||||
|
integer :: mpi_size
|
||||||
|
|
||||||
|
File: :file:`mpi.irp.f`
|
||||||
|
|
||||||
|
Rank of MPI process and number of MPI processes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: broadcast_chunks_double
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine broadcast_chunks_double(A, LDA)
|
||||||
|
|
||||||
|
File: :file:`mpi.irp.f_template_97`
|
||||||
|
|
||||||
|
Broadcast with chunks of ~2GB
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: broadcast_chunks_integer
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine broadcast_chunks_integer(A, LDA)
|
||||||
|
|
||||||
|
File: :file:`mpi.irp.f_template_97`
|
||||||
|
|
||||||
|
Broadcast with chunks of ~2GB
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: broadcast_chunks_integer8
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine broadcast_chunks_integer8(A, LDA)
|
||||||
|
|
||||||
|
File: :file:`mpi.irp.f_template_97`
|
||||||
|
|
||||||
|
Broadcast with chunks of ~2GB
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -20,31 +20,332 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: nucl_num
|
.. option:: nucl_num
|
||||||
|
|
||||||
Number of nuclei
|
Number of nuclei
|
||||||
|
|
||||||
|
|
||||||
.. option:: nucl_label
|
.. option:: nucl_label
|
||||||
|
|
||||||
Nuclear labels
|
Nuclear labels
|
||||||
|
|
||||||
|
|
||||||
.. option:: nucl_charge
|
.. option:: nucl_charge
|
||||||
|
|
||||||
Nuclear charges
|
Nuclear charges
|
||||||
|
|
||||||
|
|
||||||
.. option:: nucl_coord
|
.. option:: nucl_coord
|
||||||
|
|
||||||
Nuclear coordinates in the format (:, {x,y,z})
|
Nuclear coordinates in the format (:, {x,y,z})
|
||||||
|
|
||||||
|
|
||||||
.. option:: disk_access_nuclear_repulsion
|
.. option:: disk_access_nuclear_repulsion
|
||||||
|
|
||||||
Read/Write Nuclear Repulsion from/to disk [ Write | Read | None ]
|
Read/Write Nuclear Repulsion from/to disk [ Write | Read | None ]
|
||||||
|
|
||||||
Default: None
|
Default: None
|
||||||
|
|
||||||
.. option:: nuclear_repulsion
|
.. option:: nuclear_repulsion
|
||||||
|
|
||||||
Nuclear repulsion (Computed automaticaly or Read in the |EZFIO|)
|
Nuclear repulsion (Computed automaticaly or Read in the |EZFIO|)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: center_of_mass
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: center_of_mass (3)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
Center of mass of the molecule
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: element_mass
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(4), allocatable :: element_name (0:127)
|
||||||
|
double precision, allocatable :: element_mass (0:127)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
Array of the name of element, sorted by nuclear charge (integer)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: element_name
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(4), allocatable :: element_name (0:127)
|
||||||
|
double precision, allocatable :: element_mass (0:127)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
Array of the name of element, sorted by nuclear charge (integer)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: inertia_tensor
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: inertia_tensor (3,3)
|
||||||
|
|
||||||
|
File: :file:`inertia.irp.f`
|
||||||
|
|
||||||
|
Inertia tensor
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: inertia_tensor_eigenvalues
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: inertia_tensor_eigenvectors (3,3)
|
||||||
|
double precision, allocatable :: inertia_tensor_eigenvalues (3)
|
||||||
|
|
||||||
|
File: :file:`inertia.irp.f`
|
||||||
|
|
||||||
|
Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: inertia_tensor_eigenvectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: inertia_tensor_eigenvectors (3,3)
|
||||||
|
double precision, allocatable :: inertia_tensor_eigenvalues (3)
|
||||||
|
|
||||||
|
File: :file:`inertia.irp.f`
|
||||||
|
|
||||||
|
Eigenvectors/eigenvalues of the inertia_tensor. Used to find normal orientation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_coord
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: nucl_coord (nucl_num,3)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
Nuclear coordinates in the format (:, {x,y,z})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_coord_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: nucl_coord_transp (3,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
Transposed array of nucl_coord
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_dist
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: nucl_dist_2 (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_x (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_y (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_z (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist (nucl_num,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_dist_2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: nucl_dist_2 (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_x (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_y (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_z (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist (nucl_num,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_dist_vec_x
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: nucl_dist_2 (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_x (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_y (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_z (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist (nucl_num,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_dist_vec_y
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: nucl_dist_2 (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_x (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_y (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_z (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist (nucl_num,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nucl_dist_vec_z
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: nucl_dist_2 (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_x (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_y (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist_vec_z (nucl_num,nucl_num)
|
||||||
|
double precision, allocatable :: nucl_dist (nucl_num,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
nucl_dist : Nucleus-nucleus distances nucl_dist_2 : Nucleus-nucleus distances squared nucl_dist_vec : Nucleus-nucleus distances vectors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: nuclear_repulsion
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: nuclear_repulsion
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
Nuclear repulsion energy
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: positive_charge_barycentre
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: positive_charge_barycentre (3)
|
||||||
|
|
||||||
|
File: :file:`nuclei.irp.f`
|
||||||
|
|
||||||
|
Centroid of the positive charges
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: slater_bragg_radii
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: slater_bragg_radii (100)
|
||||||
|
|
||||||
|
File: :file:`atomic_radii.irp.f`
|
||||||
|
|
||||||
|
atomic radii in Angstrom defined in table I of JCP 41, 3199 (1964) Slater execpt for the Hydrogen atom where we took the value of Becke (1988, JCP)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: slater_bragg_radii_per_atom
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: slater_bragg_radii_per_atom (nucl_num)
|
||||||
|
|
||||||
|
File: :file:`atomic_radii.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: slater_bragg_radii_per_atom_ua
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: slater_bragg_radii_per_atom_ua (nucl_num)
|
||||||
|
|
||||||
|
File: :file:`atomic_radii.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: slater_bragg_radii_ua
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: slater_bragg_radii_ua (100)
|
||||||
|
|
||||||
|
File: :file:`atomic_radii.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: slater_bragg_type_inter_distance
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: slater_bragg_type_inter_distance (nucl_num,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`atomic_radii.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: slater_bragg_type_inter_distance_ua
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: slater_bragg_type_inter_distance_ua (nucl_num,nucl_num)
|
||||||
|
|
||||||
|
File: :file:`atomic_radii.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,34 +76,725 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: do_pt2
|
.. option:: do_pt2
|
||||||
|
|
||||||
If `True`, compute the |PT2| contribution
|
If `True`, compute the |PT2| contribution
|
||||||
|
|
||||||
Default: True
|
Default: True
|
||||||
|
|
||||||
.. option:: pt2_max
|
.. option:: pt2_max
|
||||||
|
|
||||||
The selection process stops when the largest |PT2| (for all the state) is lower
|
The selection process stops when the largest |PT2| (for all the state) is lower
|
||||||
|
|
||||||
than `pt2_max` in absolute value
|
than `pt2_max` in absolute value
|
||||||
|
|
||||||
Default: 0.0001
|
Default: 0.0001
|
||||||
|
|
||||||
.. option:: pt2_relative_error
|
.. option:: pt2_relative_error
|
||||||
|
|
||||||
Stop stochastic |PT2| when the relative error is smaller than `PT2_relative_error`
|
Stop stochastic |PT2| when the relative error is smaller than `PT2_relative_error`
|
||||||
|
|
||||||
Default: 0.005
|
Default: 0.005
|
||||||
|
|
||||||
.. option:: correlation_energy_ratio_max
|
.. option:: correlation_energy_ratio_max
|
||||||
|
|
||||||
The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules).
|
The selection process stops at a fixed correlation ratio (useful for getting same accuracy between molecules).
|
||||||
|
|
||||||
Defined as :math:`{E_{CI}-E_{HF}}/{E_{CI}+E_{PT2} - E_{HF}}`.
|
Defined as :math:`{E_{CI}-E_{HF}}/{E_{CI}+E_{PT2} - E_{HF}}`.
|
||||||
|
|
||||||
Default: 1.00
|
Default: 1.00
|
||||||
|
|
||||||
.. option:: h0_type
|
.. option:: h0_type
|
||||||
|
|
||||||
Type of zeroth-order Hamiltonian [ EN | Barycentric | Variance | SOP ]
|
Type of zeroth-order Hamiltonian [ EN | Barycentric | Variance | SOP ]
|
||||||
|
|
||||||
|
Default: EN
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: fill_h_apply_buffer_selection
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine fill_H_apply_buffer_selection(n_selected,det_buffer,e_2_pert_buffer,coef_pert_buffer, &
|
||||||
|
N_st,Nint,iproc,select_max_out)
|
||||||
|
|
||||||
|
File: :file:`selection.irp.f`
|
||||||
|
|
||||||
|
Fill the H_apply buffer with determiants for the selection
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: max_exc_pert
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: max_exc_pert
|
||||||
|
|
||||||
|
File: :file:`exc_max.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: selection_criterion
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: selection_criterion
|
||||||
|
double precision :: selection_criterion_min
|
||||||
|
double precision :: selection_criterion_factor
|
||||||
|
|
||||||
|
File: :file:`selection.irp.f`
|
||||||
|
|
||||||
|
Threshold to select determinants. Set by selection routines.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: selection_criterion_factor
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: selection_criterion
|
||||||
|
double precision :: selection_criterion_min
|
||||||
|
double precision :: selection_criterion_factor
|
||||||
|
|
||||||
|
File: :file:`selection.irp.f`
|
||||||
|
|
||||||
|
Threshold to select determinants. Set by selection routines.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: selection_criterion_min
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: selection_criterion
|
||||||
|
double precision :: selection_criterion_min
|
||||||
|
double precision :: selection_criterion_factor
|
||||||
|
|
||||||
|
File: :file:`selection.irp.f`
|
||||||
|
|
||||||
|
Threshold to select determinants. Set by selection routines.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: var_pt2_ratio
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: var_pt2_ratio
|
||||||
|
|
||||||
|
File: :file:`var_pt2_ratio_provider.irp.f`
|
||||||
|
|
||||||
|
The selection process stops when the energy ratio variational/(variational+PT2) is equal to var_pt2_ratio
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: i_h_psi_pert_new_minilist
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine i_H_psi_pert_new_minilist(key,keys,idx_key,N_minilist,coef,Nint,Ndet,Ndet_max,Nstate,i_H_psi_array,coef_pert)
|
||||||
|
|
||||||
|
File: :file:`pt2_new.irp.f`
|
||||||
|
|
||||||
|
Computes <i|H|Psi> = \sum_J c_J <i|H|J>.
|
||||||
|
Uses filter_connected_i_H_psi0 to get all the |J> to which |i> is connected. The |J> are searched in short pre-computed lists.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_decontracted
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_decontracted(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``decontracted`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_dummy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_dummy(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``dummy`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_epstein_nesbet
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_epstein_nesbet(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_epstein_nesbet_2x2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_epstein_nesbet_2x2(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_epstein_nesbet_2x2_no_ci_diag
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_epstein_nesbet_2x2_no_ci_diag(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_2x2_no_ci_diag`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_epstein_nesbet_sc2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_epstein_nesbet_sc2(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_sc2`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_epstein_nesbet_sc2_no_projected
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_epstein_nesbet_sc2_no_projected(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_sc2_no_projected`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_epstein_nesbet_sc2_projected
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_epstein_nesbet_sc2_projected(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_sc2_projected`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_h_core
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_h_core(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_moller_plesset
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_moller_plesset(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_moller_plesset_general
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_moller_plesset_general(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``moller_plesset_general`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_by_mono_qdpt
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_by_mono_qdpt(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``qdpt`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_decontracted
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_decontracted(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``decontracted`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_dummy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_dummy(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``dummy`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_epstein_nesbet
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_epstein_nesbet(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_epstein_nesbet_2x2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_epstein_nesbet_2x2(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_2x2`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_epstein_nesbet_2x2_no_ci_diag
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_epstein_nesbet_2x2_no_ci_diag(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_2x2_no_ci_diag`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_epstein_nesbet_sc2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_epstein_nesbet_sc2(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_sc2`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_epstein_nesbet_sc2_no_projected
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_epstein_nesbet_sc2_no_projected(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_sc2_no_projected`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_epstein_nesbet_sc2_projected
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_epstein_nesbet_sc2_projected(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``epstein_nesbet_sc2_projected`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_h_core
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_h_core(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``h_core`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_moller_plesset
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_moller_plesset(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``moller_plesset`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_moller_plesset_general
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_moller_plesset_general(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``moller_plesset_general`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: perturb_buffer_qdpt
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine perturb_buffer_qdpt(i_generator,buffer,buffer_size,e_2_pert_buffer,coef_pert_buffer,sum_e_2_pert,sum_norm_pert,sum_H_pert_diag,N_st,Nint,key_mask,fock_diag_tmp,electronic_energy)
|
||||||
|
|
||||||
|
File: :file:`perturbation.irp.f_shell_13`
|
||||||
|
|
||||||
|
Applly pertubration ``qdpt`` to the buffer of determinants generated in the H_apply routine.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_decontracted
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_decontracted (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_dummy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_dummy (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
Dummy perturbation to add all connected determinants.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_epstein_nesbet
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_epstein_nesbet (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution
|
||||||
|
for the various N_st states.
|
||||||
|
c_pert(i) = <psi(i)|H|det_pert>/( E(i) - <det_pert|H|det_pert> )
|
||||||
|
e_2_pert(i) = <psi(i)|H|det_pert>^2/( E(i) - <det_pert|H|det_pert> )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_epstein_nesbet_2x2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_epstein_nesbet_2x2 (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
compute the Epstein-Nesbet 2x2 diagonalization coefficient and energetic contribution
|
||||||
|
for the various N_st states.
|
||||||
|
e_2_pert(i) = 0.5 * (( <det_pert|H|det_pert> - E(i) ) - sqrt( ( <det_pert|H|det_pert> - E(i)) ^2 + 4 <psi(i)|H|det_pert>^2 )
|
||||||
|
c_pert(i) = e_2_pert(i)/ <psi(i)|H|det_pert>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_epstein_nesbet_2x2_no_ci_diag
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_epstein_nesbet_2x2_no_ci_diag(electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
compute the Epstein-Nesbet 2x2 diagonalization coefficient and energetic contribution
|
||||||
|
for the various N_st states.
|
||||||
|
e_2_pert(i) = 0.5 * (( <det_pert|H|det_pert> - E(i) ) - sqrt( ( <det_pert|H|det_pert> - E(i)) ^2 + 4 <psi(i)|H|det_pert>^2 )
|
||||||
|
c_pert(i) = e_2_pert(i)/ <psi(i)|H|det_pert>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_epstein_nesbet_sc2
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_epstein_nesbet_sc2 (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution
|
||||||
|
for the various N_st states, but with the CISD_SC2 energies and coefficients
|
||||||
|
c_pert(i) = <psi(i)|H|det_pert>/( E(i) - <det_pert|H|det_pert> )
|
||||||
|
e_2_pert(i) = <psi(i)|H|det_pert>^2/( E(i) - <det_pert|H|det_pert> )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_epstein_nesbet_sc2_no_projected
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_epstein_nesbet_SC2_no_projected (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
compute the Epstein-Nesbet perturbative first order coefficient and second order energetic contribution
|
||||||
|
for the various N_st states,
|
||||||
|
but with the correction in the denominator
|
||||||
|
comming from the interaction of that determinant with all the others determinants
|
||||||
|
that can be repeated by repeating all the double excitations
|
||||||
|
: you repeat all the correlation energy already taken into account in electronic_energy(1)
|
||||||
|
that could be repeated to this determinant.
|
||||||
|
In addition, for the perturbative energetic contribution you have the standard second order
|
||||||
|
e_2_pert = <psi_i|H|det_pert>^2/(Delta_E)
|
||||||
|
and also the purely projected contribution
|
||||||
|
H_pert_diag = <HF|H|det_pert> c_pert
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_epstein_nesbet_sc2_projected
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_epstein_nesbet_SC2_projected (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
compute the Epstein-Nesbet perturbative first order coefficient and second order energetic contribution
|
||||||
|
for the various N_st states,
|
||||||
|
but with the correction in the denominator
|
||||||
|
comming from the interaction of that determinant with all the others determinants
|
||||||
|
that can be repeated by repeating all the double excitations
|
||||||
|
: you repeat all the correlation energy already taken into account in electronic_energy(1)
|
||||||
|
that could be repeated to this determinant.
|
||||||
|
In addition, for the perturbative energetic contribution you have the standard second order
|
||||||
|
e_2_pert = <psi_i|H|det_pert>^2/(Delta_E)
|
||||||
|
and also the purely projected contribution
|
||||||
|
H_pert_diag = <HF|H|det_pert> c_pert
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_h_core
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_h_core(det_pert,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pert_single.irp.f`
|
||||||
|
|
||||||
|
compute the standard Epstein-Nesbet perturbative first order coefficient and second order energetic contribution
|
||||||
|
for the various N_st states.
|
||||||
|
c_pert(i) = <psi(i)|H|det_pert>/( E(i) - <det_pert|H|det_pert> )
|
||||||
|
e_2_pert(i) = <psi(i)|H|det_pert>^2/( E(i) - <det_pert|H|det_pert> )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_moller_plesset
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_moller_plesset (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
compute the standard Moller-Plesset perturbative first order coefficient and second order energetic contribution
|
||||||
|
for the various n_st states.
|
||||||
|
c_pert(i) = <psi(i)|H|det_pert>/(difference of orbital energies)
|
||||||
|
e_2_pert(i) = <psi(i)|H|det_pert>^2/(difference of orbital energies)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_moller_plesset_general
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_moller_plesset_general (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
compute the general Moller-Plesset perturbative first order coefficient and second order energetic contribution
|
||||||
|
for the various n_st states.
|
||||||
|
c_pert(i) = <psi(i)|H|det_pert>/(difference of orbital energies)
|
||||||
|
e_2_pert(i) = <psi(i)|H|det_pert>^2/(difference of orbital energies)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: pt2_qdpt
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine pt2_qdpt (electronic_energy,det_ref,det_pert,fock_diag_tmp,c_pert,e_2_pert,H_pert_diag,Nint,ndet,N_st,minilist,idx_minilist,N_minilist)
|
||||||
|
|
||||||
|
File: :file:`pt2_equations.irp.f_template_606`
|
||||||
|
|
||||||
|
compute the QDPT first order coefficient and second order energetic contribution
|
||||||
|
for the various N_st states.
|
||||||
|
c_pert(i) = <psi(i)|H|det_pert>/( <psi(i)|H|psi(i)> - <det_pert|H|det_pert> )
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: remove_small_contributions
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine remove_small_contributions
|
||||||
|
|
||||||
|
File: :file:`selection.irp.f`
|
||||||
|
|
||||||
|
Remove determinants with small contributions. N_states is assumed to be provided.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: repeat_all_e_corr
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision function repeat_all_e_corr(key_in)
|
||||||
|
|
||||||
|
File: :file:`pert_sc2.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Default: EN
|
|
||||||
|
@ -17,78 +17,78 @@ EZFIO parameters
|
|||||||
|
|
||||||
.. option:: nucl_charge_remove
|
.. option:: nucl_charge_remove
|
||||||
|
|
||||||
Nuclear charges removed per atom
|
Nuclear charges removed per atom
|
||||||
|
|
||||||
|
|
||||||
.. option:: pseudo_klocmax
|
.. option:: pseudo_klocmax
|
||||||
|
|
||||||
Maximum value of k for the local component
|
Maximum value of k for the local component
|
||||||
|
|
||||||
|
|
||||||
.. option:: pseudo_n_k
|
.. option:: pseudo_n_k
|
||||||
|
|
||||||
Number of gaussians in the local component
|
Number of gaussians in the local component
|
||||||
|
|
||||||
|
|
||||||
.. option:: pseudo_v_k
|
.. option:: pseudo_v_k
|
||||||
|
|
||||||
Coefficients in the local component
|
Coefficients in the local component
|
||||||
|
|
||||||
|
|
||||||
.. option:: pseudo_dz_k
|
.. option:: pseudo_dz_k
|
||||||
|
|
||||||
Exponents in the local component
|
Exponents in the local component
|
||||||
|
|
||||||
|
|
||||||
.. option:: pseudo_lmax
|
.. option:: pseudo_lmax
|
||||||
|
|
||||||
Maximum angular momentum
|
Maximum angular momentum
|
||||||
|
|
||||||
|
|
||||||
.. option:: pseudo_kmax
|
.. option:: pseudo_kmax
|
||||||
|
|
||||||
Maximum number of functions in the non-local component
|
Maximum number of functions in the non-local component
|
||||||
|
|
||||||
|
|
||||||
.. option:: pseudo_n_kl
|
.. option:: pseudo_n_kl
|
||||||
|
|
||||||
Number of functions in the non-local component
|
Number of functions in the non-local component
|
||||||
|
|
||||||
|
|
||||||
.. option:: pseudo_v_kl
|
.. option:: pseudo_v_kl
|
||||||
|
|
||||||
Coefficients in the non-local component
|
Coefficients in the non-local component
|
||||||
|
|
||||||
|
|
||||||
.. option:: pseudo_dz_kl
|
.. option:: pseudo_dz_kl
|
||||||
|
|
||||||
Exponents in the non-local component
|
Exponents in the non-local component
|
||||||
|
|
||||||
|
|
||||||
.. option:: do_pseudo
|
.. option:: do_pseudo
|
||||||
|
|
||||||
If `True`, pseudo-potentials are used.
|
If `True`, pseudo-potentials are used.
|
||||||
|
|
||||||
Default: False
|
Default: False
|
||||||
|
|
||||||
.. option:: pseudo_grid_size
|
.. option:: pseudo_grid_size
|
||||||
|
|
||||||
Nb of points of the grid for the QMC interfaces
|
Nb of points of the grid for the QMC interfaces
|
||||||
|
|
||||||
Default: 1000
|
Default: 1000
|
||||||
|
|
||||||
.. option:: pseudo_grid_rmax
|
.. option:: pseudo_grid_rmax
|
||||||
|
|
||||||
R_max of the QMC grid
|
R_max of the QMC grid
|
||||||
|
|
||||||
Default: 10.0
|
Default: 10.0
|
||||||
|
|
||||||
.. option:: ao_pseudo_grid
|
.. option:: ao_pseudo_grid
|
||||||
|
|
||||||
Grid for the QMC interface
|
Grid for the QMC interface
|
||||||
|
|
||||||
|
|
||||||
.. option:: mo_pseudo_grid
|
.. option:: mo_pseudo_grid
|
||||||
|
|
||||||
Grid for the QMC interface
|
Grid for the QMC interface
|
||||||
|
|
||||||
|
@ -12,3 +12,166 @@ Reference wave function is defined as a |CAS| wave function.
|
|||||||
This module is required for |CAS-SD|, |MRPT| or |MRCC|.
|
This module is required for |CAS-SD|, |MRPT| or |MRCC|.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: idx_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_ref (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_ref_coef (psi_det_size,n_states)
|
||||||
|
integer, allocatable :: idx_ref (psi_det_size)
|
||||||
|
integer :: n_det_ref
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
CAS wave function, defined from the application of the CAS bitmask on the determinants. idx_cas gives the indice of the CAS determinant in psi_det.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: inv_norm_psi_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: norm_psi_ref (N_states)
|
||||||
|
double precision, allocatable :: inv_norm_psi_ref (N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_det_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_ref (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_ref_coef (psi_det_size,n_states)
|
||||||
|
integer, allocatable :: idx_ref (psi_det_size)
|
||||||
|
integer :: n_det_ref
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
CAS wave function, defined from the application of the CAS bitmask on the determinants. idx_cas gives the indice of the CAS determinant in psi_det.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: norm_psi_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: norm_psi_ref (N_states)
|
||||||
|
double precision, allocatable :: inv_norm_psi_ref (N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_non_ref_coef_interm_norm
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_non_ref_coef_interm_norm (N_det_non_ref,N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_ref (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_ref_coef (psi_det_size,n_states)
|
||||||
|
integer, allocatable :: idx_ref (psi_det_size)
|
||||||
|
integer :: n_det_ref
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
CAS wave function, defined from the application of the CAS bitmask on the determinants. idx_cas gives the indice of the CAS determinant in psi_det.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_coef
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_ref (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_ref_coef (psi_det_size,n_states)
|
||||||
|
integer, allocatable :: idx_ref (psi_det_size)
|
||||||
|
integer :: n_det_ref
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
CAS wave function, defined from the application of the CAS bitmask on the determinants. idx_cas gives the indice of the CAS determinant in psi_det.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_coef_interm_norm
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_ref_coef_interm_norm (N_det_ref,N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_coef_inv
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_ref_coef_inv (psi_det_size,n_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
1/psi_ref_coef
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_coef_restart
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_ref_restart (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_ref_coef_restart (psi_det_size,n_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
Projection of the CAS wave function on the restart wave function.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_restart
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_ref_restart (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_ref_coef_restart (psi_det_size,n_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref.irp.f`
|
||||||
|
|
||||||
|
Projection of the CAS wave function on the restart wave function.
|
||||||
|
|
||||||
|
|
||||||
|
@ -14,3 +14,369 @@ needs to be loaded with any `psi_ref_*` module.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: h_matrix_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: h_matrix_ref (N_det_ref,N_det_ref)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: holes_operators
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: holes_operators (N_int,2)
|
||||||
|
integer(bit_kind), allocatable :: particles_operators (N_int,2)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_excitations_operators.irp.f`
|
||||||
|
|
||||||
|
holes_operators represents an array of integers where all the holes have been done going from psi_ref to psi_non_ref particles_operators represents an array of integers where all the particles have been done going from psi_ref to psi_non_ref
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: idx_non_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
|
||||||
|
integer, allocatable :: idx_non_ref (psi_det_size)
|
||||||
|
integer, allocatable :: idx_non_ref_rev (psi_det_size)
|
||||||
|
integer :: n_det_non_ref
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: idx_non_ref_from_sorted
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: idx_non_ref_from_sorted (N_det)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: idx_non_ref_rev
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
|
||||||
|
integer, allocatable :: idx_non_ref (psi_det_size)
|
||||||
|
integer, allocatable :: idx_non_ref_rev (psi_det_size)
|
||||||
|
integer :: n_det_non_ref
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_det_non_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
|
||||||
|
integer, allocatable :: idx_non_ref (psi_det_size)
|
||||||
|
integer, allocatable :: idx_non_ref_rev (psi_det_size)
|
||||||
|
integer :: n_det_non_ref
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: particles_operators
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: holes_operators (N_int,2)
|
||||||
|
integer(bit_kind), allocatable :: particles_operators (N_int,2)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_excitations_operators.irp.f`
|
||||||
|
|
||||||
|
holes_operators represents an array of integers where all the holes have been done going from psi_ref to psi_non_ref particles_operators represents an array of integers where all the particles have been done going from psi_ref to psi_non_ref
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_non_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
|
||||||
|
integer, allocatable :: idx_non_ref (psi_det_size)
|
||||||
|
integer, allocatable :: idx_non_ref_rev (psi_det_size)
|
||||||
|
integer :: n_det_non_ref
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_non_ref_coef
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_non_ref (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_non_ref_coef (psi_det_size,n_states)
|
||||||
|
integer, allocatable :: idx_non_ref (psi_det_size)
|
||||||
|
integer, allocatable :: idx_non_ref_rev (psi_det_size)
|
||||||
|
integer :: n_det_non_ref
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. idx_non_ref_rev gives the reverse.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_non_ref_coef_restart
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_non_ref_restart (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_non_ref_coef_restart (psi_det_size,n_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. But this is with respect to the restart wave function.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_non_ref_coef_sorted_bit
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_non_ref_sorted_bit (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_non_ref_coef_sorted_bit (psi_det_size,N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Reference determinants sorted to accelerate the search of a random determinant in the wave function.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_non_ref_coef_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_non_ref_coef_transp (n_states,psi_det_size)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Transposed psi_non_ref_coef
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_non_ref_restart
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_non_ref_restart (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_non_ref_coef_restart (psi_det_size,n_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Set of determinants which are not part of the reference, defined from the application of the reference bitmask on the determinants. idx_non_ref gives the indice of the determinant in psi_det. But this is with respect to the restart wave function.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_non_ref_sorted_bit
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_non_ref_sorted_bit (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_non_ref_coef_sorted_bit (psi_det_size,N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Reference determinants sorted to accelerate the search of a random determinant in the wave function.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_coef_diagonalized
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_ref_coef_diagonalized (N_det_ref,N_states)
|
||||||
|
double precision, allocatable :: psi_ref_energy_diagonalized (N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_coef_normalized
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_ref_coef_normalized (psi_det_size,n_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Normalized coefficients of the reference
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_coef_sorted_bit
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_ref_sorted_bit (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_ref_coef_sorted_bit (psi_det_size,N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Reference determinants sorted to accelerate the search of a random determinant in the wave function.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_coef_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_ref_coef_transp (n_states,psi_det_size)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Transposed psi_ref_coef
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_energy
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_ref_energy (N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_energy_diagonalized
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_ref_coef_diagonalized (N_det_ref,N_states)
|
||||||
|
double precision, allocatable :: psi_ref_energy_diagonalized (N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_ref_sorted_bit
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_ref_sorted_bit (N_int,2,psi_det_size)
|
||||||
|
double precision, allocatable :: psi_ref_coef_sorted_bit (psi_det_size,N_states)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Reference determinants sorted to accelerate the search of a random determinant in the wave function.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: ref_hamiltonian_matrix
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: ref_hamiltonian_matrix (n_det_ref,n_det_ref)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
H matrix in the Reference space
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: extract_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine extract_ref
|
||||||
|
|
||||||
|
File: :file:`extract_ref.irp.f`
|
||||||
|
|
||||||
|
Replaces the total wave function by the normalized projection on the reference
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: get_index_in_psi_ref_sorted_bit
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function get_index_in_psi_ref_sorted_bit(key,Nint)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
Returns the index of the determinant in the ``psi_ref_sorted_bit`` array
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: is_in_psi_ref
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
logical function is_in_psi_ref(key,Nint)
|
||||||
|
|
||||||
|
File: :file:`psi_ref_utils.irp.f`
|
||||||
|
|
||||||
|
True if the determinant ``det`` is in the wave function
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,3 +12,48 @@ All the determinants are possible selectors. Only the largest contributions are
|
|||||||
a threshold is applied to the squared norm of the wave function, with the :option:`determinants
|
a threshold is applied to the squared norm of the wave function, with the :option:`determinants
|
||||||
threshold_selectors` flag.
|
threshold_selectors` flag.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_det_selectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: n_det_selectors
|
||||||
|
|
||||||
|
File: :file:`selectors.irp.f`
|
||||||
|
|
||||||
|
For Single reference wave functions, the number of selectors is 1 : the Hartree-Fock determinant
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_selectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_selectors (N_int,2,psi_selectors_size)
|
||||||
|
double precision, allocatable :: psi_selectors_coef (psi_selectors_size,N_states)
|
||||||
|
|
||||||
|
File: :file:`selectors.irp.f`
|
||||||
|
|
||||||
|
Determinants on which we apply <i|H|psi> for perturbation.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_selectors_coef
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(bit_kind), allocatable :: psi_selectors (N_int,2,psi_selectors_size)
|
||||||
|
double precision, allocatable :: psi_selectors_coef (psi_selectors_size,N_states)
|
||||||
|
|
||||||
|
File: :file:`selectors.irp.f`
|
||||||
|
|
||||||
|
Determinants on which we apply <i|H|psi> for perturbation.
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,3 +11,352 @@ Selectors_Utils
|
|||||||
Helper functions for selectors.
|
Helper functions for selectors.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: coef_hf_selector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: coef_hf_selector
|
||||||
|
double precision :: inv_selectors_coef_hf
|
||||||
|
double precision :: inv_selectors_coef_hf_squared
|
||||||
|
double precision, allocatable :: e_corr_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: i_h_hf_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: delta_e_per_selector (N_det_selectors)
|
||||||
|
double precision :: e_corr_double_only
|
||||||
|
double precision :: e_corr_second_order
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||||
|
for the all the double excitations in the selectors determinants
|
||||||
|
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||||
|
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||||
|
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: delta_e_per_selector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: coef_hf_selector
|
||||||
|
double precision :: inv_selectors_coef_hf
|
||||||
|
double precision :: inv_selectors_coef_hf_squared
|
||||||
|
double precision, allocatable :: e_corr_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: i_h_hf_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: delta_e_per_selector (N_det_selectors)
|
||||||
|
double precision :: e_corr_double_only
|
||||||
|
double precision :: e_corr_second_order
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||||
|
for the all the double excitations in the selectors determinants
|
||||||
|
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||||
|
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||||
|
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: double_index_selectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: exc_degree_per_selectors (N_det_selectors)
|
||||||
|
integer, allocatable :: double_index_selectors (N_det_selectors)
|
||||||
|
integer :: n_double_selectors
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
degree of excitation respect to Hartree Fock for the wave function
|
||||||
|
for the all the selectors determinants
|
||||||
|
double_index_selectors = list of the index of the double excitations
|
||||||
|
n_double_selectors = number of double excitations in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: e_corr_double_only
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: coef_hf_selector
|
||||||
|
double precision :: inv_selectors_coef_hf
|
||||||
|
double precision :: inv_selectors_coef_hf_squared
|
||||||
|
double precision, allocatable :: e_corr_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: i_h_hf_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: delta_e_per_selector (N_det_selectors)
|
||||||
|
double precision :: e_corr_double_only
|
||||||
|
double precision :: e_corr_second_order
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||||
|
for the all the double excitations in the selectors determinants
|
||||||
|
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||||
|
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||||
|
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: e_corr_per_selectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: coef_hf_selector
|
||||||
|
double precision :: inv_selectors_coef_hf
|
||||||
|
double precision :: inv_selectors_coef_hf_squared
|
||||||
|
double precision, allocatable :: e_corr_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: i_h_hf_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: delta_e_per_selector (N_det_selectors)
|
||||||
|
double precision :: e_corr_double_only
|
||||||
|
double precision :: e_corr_second_order
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||||
|
for the all the double excitations in the selectors determinants
|
||||||
|
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||||
|
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||||
|
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: e_corr_second_order
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: coef_hf_selector
|
||||||
|
double precision :: inv_selectors_coef_hf
|
||||||
|
double precision :: inv_selectors_coef_hf_squared
|
||||||
|
double precision, allocatable :: e_corr_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: i_h_hf_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: delta_e_per_selector (N_det_selectors)
|
||||||
|
double precision :: e_corr_double_only
|
||||||
|
double precision :: e_corr_second_order
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||||
|
for the all the double excitations in the selectors determinants
|
||||||
|
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||||
|
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||||
|
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: exc_degree_per_selectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: exc_degree_per_selectors (N_det_selectors)
|
||||||
|
integer, allocatable :: double_index_selectors (N_det_selectors)
|
||||||
|
integer :: n_double_selectors
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
degree of excitation respect to Hartree Fock for the wave function
|
||||||
|
for the all the selectors determinants
|
||||||
|
double_index_selectors = list of the index of the double excitations
|
||||||
|
n_double_selectors = number of double excitations in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: i_h_hf_per_selectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: coef_hf_selector
|
||||||
|
double precision :: inv_selectors_coef_hf
|
||||||
|
double precision :: inv_selectors_coef_hf_squared
|
||||||
|
double precision, allocatable :: e_corr_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: i_h_hf_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: delta_e_per_selector (N_det_selectors)
|
||||||
|
double precision :: e_corr_double_only
|
||||||
|
double precision :: e_corr_second_order
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||||
|
for the all the double excitations in the selectors determinants
|
||||||
|
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||||
|
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||||
|
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: inv_selectors_coef_hf
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: coef_hf_selector
|
||||||
|
double precision :: inv_selectors_coef_hf
|
||||||
|
double precision :: inv_selectors_coef_hf_squared
|
||||||
|
double precision, allocatable :: e_corr_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: i_h_hf_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: delta_e_per_selector (N_det_selectors)
|
||||||
|
double precision :: e_corr_double_only
|
||||||
|
double precision :: e_corr_second_order
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||||
|
for the all the double excitations in the selectors determinants
|
||||||
|
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||||
|
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||||
|
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: inv_selectors_coef_hf_squared
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision :: coef_hf_selector
|
||||||
|
double precision :: inv_selectors_coef_hf
|
||||||
|
double precision :: inv_selectors_coef_hf_squared
|
||||||
|
double precision, allocatable :: e_corr_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: i_h_hf_per_selectors (N_det_selectors)
|
||||||
|
double precision, allocatable :: delta_e_per_selector (N_det_selectors)
|
||||||
|
double precision :: e_corr_double_only
|
||||||
|
double precision :: e_corr_second_order
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||||
|
for the all the double excitations in the selectors determinants
|
||||||
|
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||||
|
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||||
|
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: n_double_selectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer, allocatable :: exc_degree_per_selectors (N_det_selectors)
|
||||||
|
integer, allocatable :: double_index_selectors (N_det_selectors)
|
||||||
|
integer :: n_double_selectors
|
||||||
|
|
||||||
|
File: :file:`e_corr_selectors.irp.f`
|
||||||
|
|
||||||
|
degree of excitation respect to Hartree Fock for the wave function
|
||||||
|
for the all the selectors determinants
|
||||||
|
double_index_selectors = list of the index of the double excitations
|
||||||
|
n_double_selectors = number of double excitations in the selectors determinants
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_selectors_coef_transp
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_selectors_coef_transp (N_states,psi_selectors_size)
|
||||||
|
|
||||||
|
File: :file:`selectors.irp.f`
|
||||||
|
|
||||||
|
Transposed psi_selectors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_selectors_diag_h_mat
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
double precision, allocatable :: psi_selectors_diag_h_mat (psi_selectors_size)
|
||||||
|
|
||||||
|
File: :file:`selectors.irp.f`
|
||||||
|
|
||||||
|
Diagonal elements of the H matrix for each selectors
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: psi_selectors_size
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer :: psi_selectors_size
|
||||||
|
|
||||||
|
File: :file:`selectors.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_n_det_generators
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_N_det_generators(zmq_to_qp_run_socket, worker_id)
|
||||||
|
|
||||||
|
File: :file:`zmq.irp.f_template_102`
|
||||||
|
|
||||||
|
Get N_det_generators from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_n_det_selectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_N_det_selectors(zmq_to_qp_run_socket, worker_id)
|
||||||
|
|
||||||
|
File: :file:`zmq.irp.f_template_102`
|
||||||
|
|
||||||
|
Get N_det_selectors from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put_n_det_generators
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put_N_det_generators(zmq_to_qp_run_socket,worker_id)
|
||||||
|
|
||||||
|
File: :file:`zmq.irp.f_template_102`
|
||||||
|
|
||||||
|
Put N_det_generators on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put_n_det_selectors
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put_N_det_selectors(zmq_to_qp_run_socket,worker_id)
|
||||||
|
|
||||||
|
File: :file:`zmq.irp.f_template_102`
|
||||||
|
|
||||||
|
Put N_det_selectors on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
@ -11,3 +11,63 @@ Slave
|
|||||||
Slave processes for distributed parallelism.
|
Slave processes for distributed parallelism.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: provide_everything
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine provide_everything
|
||||||
|
|
||||||
|
File: :file:`slave_cipsi.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: qp_ao_ints
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine qp_ao_ints
|
||||||
|
|
||||||
|
File: :file:`slave_eri.irp.f`
|
||||||
|
|
||||||
|
Slave for electron repulsion integrals
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: run_wf
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine run_wf
|
||||||
|
|
||||||
|
File: :file:`slave_cipsi.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: slave
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine slave
|
||||||
|
|
||||||
|
File: :file:`slave_cipsi.irp.f`
|
||||||
|
|
||||||
|
Helper program for distributed parallelism
|
||||||
|
|
||||||
|
|
||||||
|
@ -10,3 +10,119 @@ Tools
|
|||||||
|
|
||||||
Useful tools are grouped in this module.
|
Useful tools are grouped in this module.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: fcidump
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine fcidump
|
||||||
|
|
||||||
|
File: :file:`fcidump.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: print_mos
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine print_mos
|
||||||
|
|
||||||
|
File: :file:`molden.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: save_natorb
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine save_natorb
|
||||||
|
|
||||||
|
File: :file:`save_natorb.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: save_ortho_mos
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine save_ortho_mos
|
||||||
|
|
||||||
|
File: :file:`save_ortho_mos.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: write_ao_basis
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine write_Ao_basis(i_unit_output)
|
||||||
|
|
||||||
|
File: :file:`molden.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: write_geometry
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine write_geometry(i_unit_output)
|
||||||
|
|
||||||
|
File: :file:`molden.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: write_intro_gamess
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine write_intro_gamess(i_unit_output)
|
||||||
|
|
||||||
|
File: :file:`molden.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: write_mo_basis
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine write_Mo_basis(i_unit_output)
|
||||||
|
|
||||||
|
File: :file:`molden.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -12,3 +12,874 @@ Definition of |ZeroMQ| sockets and messages.
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Providers
|
||||||
|
---------
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: qp_run_address
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: qp_run_address
|
||||||
|
integer :: zmq_port_start
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Address of the qp_run socket Example : tcp://130.120.229.139:12345
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_context
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(ZMQ_PTR) :: zmq_context
|
||||||
|
integer(omp_lock_kind) :: zmq_lock
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Context for the ZeroMQ library
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_lock
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer(ZMQ_PTR) :: zmq_context
|
||||||
|
integer(omp_lock_kind) :: zmq_lock
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Context for the ZeroMQ library
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_port_start
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: qp_run_address
|
||||||
|
integer :: zmq_port_start
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Address of the qp_run socket Example : tcp://130.120.229.139:12345
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_socket_pair_inproc_address
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: zmq_socket_pull_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pair_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pull_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_inproc_address
|
||||||
|
character*(128) :: zmq_socket_sub_tcp_address
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket which pulls the results (2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_socket_pull_inproc_address
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: zmq_socket_pull_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pair_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pull_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_inproc_address
|
||||||
|
character*(128) :: zmq_socket_sub_tcp_address
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket which pulls the results (2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_socket_pull_tcp_address
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: zmq_socket_pull_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pair_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pull_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_inproc_address
|
||||||
|
character*(128) :: zmq_socket_sub_tcp_address
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket which pulls the results (2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_socket_push_inproc_address
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: zmq_socket_pull_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pair_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pull_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_inproc_address
|
||||||
|
character*(128) :: zmq_socket_sub_tcp_address
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket which pulls the results (2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_socket_push_tcp_address
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: zmq_socket_pull_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pair_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pull_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_inproc_address
|
||||||
|
character*(128) :: zmq_socket_sub_tcp_address
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket which pulls the results (2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_socket_sub_tcp_address
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: zmq_socket_pull_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pair_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_tcp_address
|
||||||
|
character*(128) :: zmq_socket_pull_inproc_address
|
||||||
|
character*(128) :: zmq_socket_push_inproc_address
|
||||||
|
character*(128) :: zmq_socket_sub_tcp_address
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket which pulls the results (2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:var:: zmq_state
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
character*(128) :: zmq_state
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Threads executing work through the ZeroMQ interface
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Subroutines / functions
|
||||||
|
-----------------------
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: add_task_to_taskserver
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function add_task_to_taskserver(zmq_to_qp_run_socket,task)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Get a task from the task server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: connect_to_taskserver
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function connect_to_taskserver(zmq_to_qp_run_socket,worker_id,thread)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Connect to the task server and obtain the worker ID
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: disconnect_from_taskserver
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function disconnect_from_taskserver(zmq_to_qp_run_socket, worker_id)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Disconnect from the task server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: disconnect_from_taskserver_state
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function disconnect_from_taskserver_state(zmq_to_qp_run_socket, worker_id, state)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Disconnect from the task server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: end_parallel_job
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine end_parallel_job(zmq_to_qp_run_socket,zmq_socket_pull,name_in)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
End a new parallel job with name 'name'. The slave tasks execute subroutine 'slave'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: end_zmq_pair_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine end_zmq_pair_socket(zmq_socket_pair)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Terminate socket on which the results are sent.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: end_zmq_pull_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine end_zmq_pull_socket(zmq_socket_pull)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Terminate socket on which the results are sent.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: end_zmq_push_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine end_zmq_push_socket(zmq_socket_push,thread)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Terminate socket on which the results are sent.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: end_zmq_sub_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine end_zmq_sub_socket(zmq_socket_sub)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Terminate socket on which the results are sent.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: end_zmq_to_qp_run_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine end_zmq_to_qp_run_socket(zmq_to_qp_run_socket)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Terminate the socket from the application to qp_run
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: get_task_from_taskserver
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function get_task_from_taskserver(zmq_to_qp_run_socket,worker_id,task_id,task)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Get a task from the task server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: get_tasks_from_taskserver
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function get_tasks_from_taskserver(zmq_to_qp_run_socket,worker_id,task_id,task,n_tasks)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Get multiple tasks from the task server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: new_parallel_job
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine new_parallel_job(zmq_to_qp_run_socket,zmq_socket_pull,name_in)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Start a new parallel job with name 'name'. The slave tasks execute subroutine 'slave'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: new_zmq_pair_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
function new_zmq_pair_socket(bind)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket on which the collector and the main communicate
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: new_zmq_pull_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
function new_zmq_pull_socket()
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket on which the results are sent. If thread is 1, use inproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: new_zmq_push_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
function new_zmq_push_socket(thread)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket on which the results are sent. If thread is 1, use inproc
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: new_zmq_sub_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
function new_zmq_sub_socket()
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket to read the state published by the Task server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: new_zmq_to_qp_run_socket
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
function new_zmq_to_qp_run_socket()
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket on which the qp_run process replies
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: reset_zmq_addresses
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine reset_zmq_addresses
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Socket which pulls the results (2)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: switch_qp_run_to_master
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine switch_qp_run_to_master
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Address of the master qp_run socket Example : tcp://130.120.229.139:12345
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: task_done_to_taskserver
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function task_done_to_taskserver(zmq_to_qp_run_socket, worker_id, task_id)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Get a task from the task server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: tasks_done_to_taskserver
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function tasks_done_to_taskserver(zmq_to_qp_run_socket, worker_id, task_id, n_tasks)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Get a task from the task server
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: wait_for_next_state
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine wait_for_next_state(state)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: wait_for_state
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine wait_for_state(state_wait,state)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Wait for the ZMQ state to be ready
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: wait_for_states
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
subroutine wait_for_states(state_wait,state,n)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Wait for the ZMQ state to be ready
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_abort
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_abort(zmq_to_qp_run_socket)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Aborts a running parallel computation
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_delete_task
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_delete_task(zmq_to_qp_run_socket,zmq_socket_pull,task_id,more)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_delete_tasks
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_delete_tasks(zmq_to_qp_run_socket,zmq_socket_pull,task_id,n_tasks,more)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_delete_tasks_async_recv
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_delete_tasks_async_recv(zmq_to_qp_run_socket,zmq_socket_pull,task_id,n_tasks,more)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_delete_tasks_async_send
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_delete_tasks_async_send(zmq_to_qp_run_socket,zmq_socket_pull,task_id,n_tasks,more)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
When a task is done, it has to be removed from the list of tasks on the qp_run queue. This guarantees that the results have been received in the pull.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get8_dvector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get8_dvector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Get a float vector from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get8_ivector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get8_ivector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Get a vector of integers from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_dmatrix
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_dmatrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Get a float vector from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_dvector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_dvector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Get a float vector from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_i8matrix
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_i8matrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Get a float vector from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_imatrix
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_imatrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Get a float vector from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_int
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_int(zmq_to_qp_run_socket, worker_id, name, x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Get a vector of integers from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_int_nompi
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_int_nompi(zmq_to_qp_run_socket, worker_id, name, x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Get a vector of integers from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_get_ivector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_get_ivector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Get a vector of integers from the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_port
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
function zmq_port(ishift)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Return the value of the ZMQ port from the corresponding integer
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put8_dvector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put8_dvector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Put a float vector on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put8_ivector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put8_ivector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Put a vector of integers on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put_dmatrix
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put_dmatrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Put a float vector on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put_dvector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put_dvector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Put a float vector on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put_i8matrix
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put_i8matrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Put a float vector on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put_imatrix
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put_imatrix(zmq_to_qp_run_socket, worker_id, name, x, size_x1, size_x2, sze)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Put a float vector on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put_int
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put_int(zmq_to_qp_run_socket, worker_id, name, x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Put a vector of integers on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_put_ivector
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_put_ivector(zmq_to_qp_run_socket, worker_id, name, x, size_x)
|
||||||
|
|
||||||
|
File: :file:`put_get.irp.f`
|
||||||
|
|
||||||
|
Put a vector of integers on the qp_run scheduler
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
.. c:function:: zmq_set_running
|
||||||
|
|
||||||
|
.. code:: text
|
||||||
|
|
||||||
|
integer function zmq_set_running(zmq_to_qp_run_socket)
|
||||||
|
|
||||||
|
File: :file:`utils.irp.f`
|
||||||
|
|
||||||
|
Set the job to Running in QP-run
|
||||||
|
|
||||||
|
|
||||||
|
@ -12,23 +12,9 @@ Index of Modules
|
|||||||
/modules/*
|
/modules/*
|
||||||
|
|
||||||
|
|
||||||
Index of Providers
|
.. Auto-generated file
|
||||||
------------------
|
|
||||||
|
|
||||||
.. toctree::
|
.. include:: index_providers.rst
|
||||||
:maxdepth: 1
|
|
||||||
:glob:
|
|
||||||
|
|
||||||
/providers/*
|
|
||||||
|
|
||||||
|
|
||||||
Index of Subroutines/Functions
|
|
||||||
------------------------------
|
|
||||||
|
|
||||||
.. toctree::
|
|
||||||
:maxdepth: 1
|
|
||||||
:glob:
|
|
||||||
|
|
||||||
/subroutines/*
|
|
||||||
|
|
||||||
|
|
||||||
|
1307
docs/source/programmers_guide/index_providers.rst
Normal file
1307
docs/source/programmers_guide/index_providers.rst
Normal file
File diff suppressed because it is too large
Load Diff
1
include/.gitignore
vendored
1
include/.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
zmq.h
|
zmq.h
|
||||||
zmq_utils.h
|
zmq_utils.h
|
||||||
|
f77_zmq_free.h
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
BEGIN_PROVIDER [ integer, ao_prim_num_max ]
|
BEGIN_PROVIDER [ integer, ao_prim_num_max ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! max number of primitives
|
! Max number of primitives.
|
||||||
END_DOC
|
END_DOC
|
||||||
ao_prim_num_max = maxval(ao_prim_num)
|
ao_prim_num_max = maxval(ao_prim_num)
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
@ -10,7 +10,7 @@ END_PROVIDER
|
|||||||
&BEGIN_PROVIDER [ double precision, ao_coef_normalization_factor, (ao_num) ]
|
&BEGIN_PROVIDER [ double precision, ao_coef_normalization_factor, (ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Coefficients including the AO normalization
|
! Coefficients including the |AO| normalization
|
||||||
END_DOC
|
END_DOC
|
||||||
double precision :: norm,overlap_x,overlap_y,overlap_z,C_A(3), c
|
double precision :: norm,overlap_x,overlap_y,overlap_z,C_A(3), c
|
||||||
integer :: l, powA(3), nz
|
integer :: l, powA(3), nz
|
||||||
@ -46,7 +46,7 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ double precision, ao_coef_normalization_libint_factor, (ao_num) ]
|
BEGIN_PROVIDER [ double precision, ao_coef_normalization_libint_factor, (ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Coefficients including the AO normalization
|
! |AO| normalization for interfacing with libint
|
||||||
END_DOC
|
END_DOC
|
||||||
double precision :: norm,overlap_x,overlap_y,overlap_z,C_A(3), c
|
double precision :: norm,overlap_x,overlap_y,overlap_z,C_A(3), c
|
||||||
integer :: l, powA(3), nz
|
integer :: l, powA(3), nz
|
||||||
@ -78,34 +78,34 @@ END_PROVIDER
|
|||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, ao_coef_normalized_ordered, (ao_num,ao_prim_num_max) ]
|
BEGIN_PROVIDER [ double precision, ao_coef_normalized_ordered, (ao_num,ao_prim_num_max) ]
|
||||||
&BEGIN_PROVIDER [ double precision, ao_expo_ordered, (ao_num,ao_prim_num_max) ]
|
&BEGIN_PROVIDER [ double precision, ao_expo_ordered, (ao_num,ao_prim_num_max) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Sorted primitives to accelerate 4 index MO transformation
|
! Sorted primitives to accelerate 4 index |MO| transformation
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
integer :: iorder(ao_prim_num_max)
|
integer :: iorder(ao_prim_num_max)
|
||||||
double precision :: d(ao_prim_num_max,2)
|
double precision :: d(ao_prim_num_max,2)
|
||||||
integer :: i,j
|
integer :: i,j
|
||||||
do i=1,ao_num
|
do i=1,ao_num
|
||||||
do j=1,ao_prim_num(i)
|
do j=1,ao_prim_num(i)
|
||||||
iorder(j) = j
|
iorder(j) = j
|
||||||
d(j,1) = ao_expo(i,j)
|
d(j,1) = ao_expo(i,j)
|
||||||
d(j,2) = ao_coef_normalized(i,j)
|
d(j,2) = ao_coef_normalized(i,j)
|
||||||
enddo
|
enddo
|
||||||
call dsort(d(1,1),iorder,ao_prim_num(i))
|
call dsort(d(1,1),iorder,ao_prim_num(i))
|
||||||
call dset_order(d(1,2),iorder,ao_prim_num(i))
|
call dset_order(d(1,2),iorder,ao_prim_num(i))
|
||||||
do j=1,ao_prim_num(i)
|
do j=1,ao_prim_num(i)
|
||||||
ao_expo_ordered(i,j) = d(j,1)
|
ao_expo_ordered(i,j) = d(j,1)
|
||||||
ao_coef_normalized_ordered(i,j) = d(j,2)
|
ao_coef_normalized_ordered(i,j) = d(j,2)
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
BEGIN_PROVIDER [ double precision, ao_coef_normalized_ordered_transp, (ao_prim_num_max,ao_num) ]
|
BEGIN_PROVIDER [ double precision, ao_coef_normalized_ordered_transp, (ao_prim_num_max,ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Transposed ao_coef_normalized_ordered
|
! Transposed :c:var:`ao_coef_normalized_ordered`
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i,j
|
integer :: i,j
|
||||||
do j=1, ao_num
|
do j=1, ao_num
|
||||||
@ -119,7 +119,7 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ double precision, ao_expo_ordered_transp, (ao_prim_num_max,ao_num) ]
|
BEGIN_PROVIDER [ double precision, ao_expo_ordered_transp, (ao_prim_num_max,ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Transposed ao_expo_ordered
|
! Transposed :c:var:`ao_expo_ordered`
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i,j
|
integer :: i,j
|
||||||
do j=1, ao_num
|
do j=1, ao_num
|
||||||
@ -135,7 +135,7 @@ END_PROVIDER
|
|||||||
&BEGIN_PROVIDER [ character*(128), ao_l_char, (ao_num) ]
|
&BEGIN_PROVIDER [ character*(128), ao_l_char, (ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! ao_l = l value of the AO: a+b+c in x^a y^b z^c
|
! :math:`l` value of the |AO|: :math`a+b+c` in :math:`x^a y^b z^c`
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i
|
integer :: i
|
||||||
do i=1,ao_num
|
do i=1,ao_num
|
||||||
@ -151,7 +151,7 @@ integer function ao_power_index(nx,ny,nz)
|
|||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Unique index given to a triplet of powers:
|
! Unique index given to a triplet of powers:
|
||||||
!
|
!
|
||||||
! 1/2 (l-n_x)*(l-n_x+1) + n_z + 1
|
! :math:`\frac{1}{2} (l-n_x) (l-n_x+1) + n_z + 1`
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: l
|
integer :: l
|
||||||
l = nx + ny + nz
|
l = nx + ny + nz
|
||||||
@ -161,7 +161,7 @@ end
|
|||||||
|
|
||||||
BEGIN_PROVIDER [ character*(128), l_to_charater, (0:7)]
|
BEGIN_PROVIDER [ character*(128), l_to_charater, (0:7)]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! character corresponding to the "L" value of an AO orbital
|
! Character corresponding to the "l" value of an |AO|
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
l_to_charater(0)='S'
|
l_to_charater(0)='S'
|
||||||
@ -178,10 +178,10 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ integer, Nucl_N_Aos, (nucl_num)]
|
BEGIN_PROVIDER [ integer, Nucl_N_Aos, (nucl_num)]
|
||||||
&BEGIN_PROVIDER [ integer, N_AOs_max ]
|
&BEGIN_PROVIDER [ integer, N_AOs_max ]
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Number of AOs per atom
|
! Number of |AOs| per atom
|
||||||
END_DOC
|
END_DOC
|
||||||
|
integer :: i
|
||||||
Nucl_N_Aos = 0
|
Nucl_N_Aos = 0
|
||||||
do i = 1, ao_num
|
do i = 1, ao_num
|
||||||
Nucl_N_Aos(ao_nucl(i)) +=1
|
Nucl_N_Aos(ao_nucl(i)) +=1
|
||||||
@ -192,7 +192,7 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ integer, Nucl_Aos, (nucl_num,N_AOs_max)]
|
BEGIN_PROVIDER [ integer, Nucl_Aos, (nucl_num,N_AOs_max)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! List of AOs attached on each atom
|
! List of |AOs| centered on each atom
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i
|
integer :: i
|
||||||
integer, allocatable :: nucl_tmp(:)
|
integer, allocatable :: nucl_tmp(:)
|
||||||
@ -212,9 +212,9 @@ END_PROVIDER
|
|||||||
implicit none
|
implicit none
|
||||||
integer :: i,j,k
|
integer :: i,j,k
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Index of the shell type Aos and of the corresponding Aos
|
! Index of the shell type |AOs| and of the corresponding |AOs|
|
||||||
! Per convention, for P,D,F and G AOs, we take the index
|
! By convention, for p,d,f and g |AOs|, we take the index
|
||||||
! of the AO with the the corresponding power in the "X" axis
|
! of the |AO| with the the corresponding power in the x axis
|
||||||
END_DOC
|
END_DOC
|
||||||
do i = 1, nucl_num
|
do i = 1, nucl_num
|
||||||
Nucl_num_shell_Aos(i) = 0
|
Nucl_num_shell_Aos(i) = 0
|
||||||
@ -258,6 +258,9 @@ END_PROVIDER
|
|||||||
|
|
||||||
BEGIN_PROVIDER [ character*(4), ao_l_char_space, (ao_num) ]
|
BEGIN_PROVIDER [ character*(4), ao_l_char_space, (ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! Converts an l value to a string
|
||||||
|
END_DOC
|
||||||
integer :: i
|
integer :: i
|
||||||
character*(4) :: give_ao_character_space
|
character*(4) :: give_ao_character_space
|
||||||
do i=1,ao_num
|
do i=1,ao_num
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
double precision function ao_value(i,r)
|
double precision function ao_value(i,r)
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! return the value of the ith ao at point r
|
! Returns the value of the i-th |AO| at point r
|
||||||
END_DOC
|
END_DOC
|
||||||
double precision, intent(in) :: r(3)
|
double precision, intent(in) :: r(3)
|
||||||
integer, intent(in) :: i
|
integer, intent(in) :: i
|
||||||
@ -34,7 +34,7 @@ end
|
|||||||
subroutine give_all_aos_at_r(r,aos_array)
|
subroutine give_all_aos_at_r(r,aos_array)
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_dOC
|
BEGIN_dOC
|
||||||
! gives the values of aos at a given point r
|
! Gives the values of |AOs| at a given point r
|
||||||
END_DOC
|
END_DOC
|
||||||
double precision, intent(in) :: r(3)
|
double precision, intent(in) :: r(3)
|
||||||
double precision, intent(out) :: aos_array(ao_num)
|
double precision, intent(out) :: aos_array(ao_num)
|
||||||
@ -44,5 +44,4 @@ subroutine give_all_aos_at_r(r,aos_array)
|
|||||||
aos_array(i) = ao_value(i,r)
|
aos_array(i) = ao_value(i,r)
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
@ -1,6 +1,9 @@
|
|||||||
BEGIN_PROVIDER [ integer, n_pt_max_integrals ]
|
BEGIN_PROVIDER [ integer, n_pt_max_integrals ]
|
||||||
&BEGIN_PROVIDER [ integer, n_pt_max_i_x]
|
&BEGIN_PROVIDER [ integer, n_pt_max_i_x]
|
||||||
implicit none
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! Number of points used in the numerical integrations.
|
||||||
|
END_DOC
|
||||||
integer :: n_pt_sup
|
integer :: n_pt_sup
|
||||||
integer :: prim_power_l_max
|
integer :: prim_power_l_max
|
||||||
include 'Utils/constants.include.F'
|
include 'Utils/constants.include.F'
|
||||||
|
@ -1 +1,2 @@
|
|||||||
AO_Basis Pseudo
|
AO_Basis
|
||||||
|
Pseudo
|
||||||
|
@ -3,8 +3,7 @@
|
|||||||
implicit none
|
implicit none
|
||||||
integer :: i,j,n,l
|
integer :: i,j,n,l
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! array of the mono electronic hamiltonian on the AOs basis
|
! Array of the one-electron Hamiltonian on the |AO| basis.
|
||||||
! : sum of the kinetic and nuclear electronic potential
|
|
||||||
END_DOC
|
END_DOC
|
||||||
do j = 1, ao_num
|
do j = 1, ao_num
|
||||||
do i = 1, ao_num
|
do i = 1, ao_num
|
||||||
|
@ -2,7 +2,8 @@
|
|||||||
&BEGIN_PROVIDER [ integer, ao_cart_to_sphe_num ]
|
&BEGIN_PROVIDER [ integer, ao_cart_to_sphe_num ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! ao_cart_to_sphe coefficients of the current basis set
|
! Coefficients to go from cartesian to spherical coordinates in the current
|
||||||
|
! basis set
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i
|
integer :: i
|
||||||
integer, external :: ao_power_index
|
integer, external :: ao_power_index
|
||||||
@ -49,7 +50,7 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ double precision, ao_cart_to_sphe_overlap, (ao_cart_to_sphe_num,ao_cart_to_sphe_num) ]
|
BEGIN_PROVIDER [ double precision, ao_cart_to_sphe_overlap, (ao_cart_to_sphe_num,ao_cart_to_sphe_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! AO overlap matrix in the spherical basis set
|
! |AO| overlap matrix in the spherical basis set
|
||||||
END_DOC
|
END_DOC
|
||||||
double precision, allocatable :: S(:,:)
|
double precision, allocatable :: S(:,:)
|
||||||
allocate (S(ao_cart_to_sphe_num,ao_num))
|
allocate (S(ao_cart_to_sphe_num,ao_num))
|
||||||
@ -71,7 +72,7 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ double precision, ao_cart_to_sphe_inv, (ao_cart_to_sphe_num,ao_num) ]
|
BEGIN_PROVIDER [ double precision, ao_cart_to_sphe_inv, (ao_cart_to_sphe_num,ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! AO_cart_to_sphe_coef^(-1)
|
! Inverse of :c:var:`ao_cart_to_sphe_coef`
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
call get_pseudo_inverse(ao_cart_to_sphe_coef,size(ao_cart_to_sphe_coef,1),&
|
call get_pseudo_inverse(ao_cart_to_sphe_coef,size(ao_cart_to_sphe_coef,1),&
|
||||||
|
@ -5,7 +5,8 @@
|
|||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Overlap between atomic basis functions:
|
! Overlap between atomic basis functions:
|
||||||
! :math:`\int \chi_i(r) \chi_j(r) dr)`
|
!
|
||||||
|
! :math:`\int \chi_i(r) \chi_j(r) dr`
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i,j,n,l
|
integer :: i,j,n,l
|
||||||
double precision :: f
|
double precision :: f
|
||||||
@ -73,8 +74,9 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ double precision, ao_overlap_abs,(ao_num,ao_num) ]
|
BEGIN_PROVIDER [ double precision, ao_overlap_abs,(ao_num,ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Overlap between absolute value of atomic basis functions:
|
! Overlap between absolute values of atomic basis functions:
|
||||||
! :math:`\int |\chi_i(r)| |\chi_j(r)| dr)`
|
!
|
||||||
|
! :math:`\int |\chi_i(r)| |\chi_j(r)| dr`
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i,j,n,l
|
integer :: i,j,n,l
|
||||||
double precision :: f
|
double precision :: f
|
||||||
@ -127,7 +129,7 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ double precision, S_inv,(ao_num,ao_num) ]
|
BEGIN_PROVIDER [ double precision, S_inv,(ao_num,ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! S^-1
|
! Inverse of the overlap matrix
|
||||||
END_DOC
|
END_DOC
|
||||||
call get_pseudo_inverse(ao_overlap,size(ao_overlap,1),ao_num,ao_num,S_inv,size(S_inv,1))
|
call get_pseudo_inverse(ao_overlap,size(ao_overlap,1),ao_num,ao_num,S_inv,size(S_inv,1))
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
@ -135,7 +137,7 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ double precision, S_half_inv, (AO_num,AO_num) ]
|
BEGIN_PROVIDER [ double precision, S_half_inv, (AO_num,AO_num) ]
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Matrix X = S^{-1/2} obtained by SVD
|
! :math:`X = S^{-1/2}` obtained by SVD
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
@ -194,7 +196,7 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [ double precision, S_half, (ao_num,ao_num) ]
|
BEGIN_PROVIDER [ double precision, S_half, (ao_num,ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! S^{1/2}
|
! :math:`S^{1/2}`
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
integer :: i,j,k
|
integer :: i,j,k
|
||||||
|
@ -2,6 +2,13 @@
|
|||||||
&BEGIN_PROVIDER [ double precision, ao_deriv2_y,(ao_num,ao_num) ]
|
&BEGIN_PROVIDER [ double precision, ao_deriv2_y,(ao_num,ao_num) ]
|
||||||
&BEGIN_PROVIDER [ double precision, ao_deriv2_z,(ao_num,ao_num) ]
|
&BEGIN_PROVIDER [ double precision, ao_deriv2_z,(ao_num,ao_num) ]
|
||||||
implicit none
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! Second derivative matrix elements in the |AO| basis.
|
||||||
|
!
|
||||||
|
! :math:`{\tt ao_deriv2_x} =
|
||||||
|
! \langle \chi_i(x,y,z) | \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle`
|
||||||
|
!
|
||||||
|
END_DOC
|
||||||
integer :: i,j,n,l
|
integer :: i,j,n,l
|
||||||
double precision :: f
|
double precision :: f
|
||||||
integer :: dim1
|
integer :: dim1
|
||||||
@ -12,12 +19,6 @@
|
|||||||
integer :: power_A(3), power_B(3)
|
integer :: power_A(3), power_B(3)
|
||||||
double precision :: d_a_2,d_2
|
double precision :: d_a_2,d_2
|
||||||
dim1=100
|
dim1=100
|
||||||
BEGIN_DOC
|
|
||||||
! second derivatives matrix elements in the ao basis
|
|
||||||
! .. math::
|
|
||||||
!
|
|
||||||
! {\tt ao_deriv2_x} = \langle \chi_i(x,y,z) \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle
|
|
||||||
END_DOC
|
|
||||||
|
|
||||||
! -- Dummy call to provide everything
|
! -- Dummy call to provide everything
|
||||||
A_center(:) = 0.d0
|
A_center(:) = 0.d0
|
||||||
@ -61,9 +62,6 @@
|
|||||||
beta = ao_expo_ordered_transp(l,i)
|
beta = ao_expo_ordered_transp(l,i)
|
||||||
call overlap_gaussian_xyz(A_center,B_center,alpha,beta,power_A,power_B,overlap_x0,overlap_y0,overlap_z0,overlap,dim1)
|
call overlap_gaussian_xyz(A_center,B_center,alpha,beta,power_A,power_B,overlap_x0,overlap_y0,overlap_z0,overlap,dim1)
|
||||||
c = ao_coef_normalized_ordered_transp(n,j) * ao_coef_normalized_ordered_transp(l,i)
|
c = ao_coef_normalized_ordered_transp(n,j) * ao_coef_normalized_ordered_transp(l,i)
|
||||||
! if (abs(c) < 1.d-8) then
|
|
||||||
! cycle
|
|
||||||
! endif
|
|
||||||
|
|
||||||
power_A(1) = power_A(1)-2
|
power_A(1) = power_A(1)-2
|
||||||
if (power_A(1)>-1) then
|
if (power_A(1)>-1) then
|
||||||
@ -122,8 +120,9 @@ END_PROVIDER
|
|||||||
BEGIN_PROVIDER [double precision, ao_kinetic_integral, (ao_num,ao_num)]
|
BEGIN_PROVIDER [double precision, ao_kinetic_integral, (ao_num,ao_num)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! array of the priminitve basis kinetic integrals
|
! Kinetic energy integrals in the |AO| basis.
|
||||||
! \langle \chi_i |\hat{T}| \chi_j \rangle
|
!
|
||||||
|
! :math:`\langle \chi_i |\hat{T}| \chi_j \rangle`
|
||||||
END_DOC
|
END_DOC
|
||||||
integer :: i,j,k,l
|
integer :: i,j,k,l
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
|||||||
BEGIN_PROVIDER [ double precision, ao_pseudo_integral, (ao_num,ao_num)]
|
BEGIN_PROVIDER [ double precision, ao_pseudo_integral, (ao_num,ao_num)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Pseudo-potential integrals
|
! Pseudo-potential integrals in the |AO| basis set.
|
||||||
END_DOC
|
END_DOC
|
||||||
|
|
||||||
if (read_ao_one_integrals) then
|
if (read_ao_one_integrals) then
|
||||||
@ -137,7 +137,7 @@ BEGIN_PROVIDER [ double precision, ao_pseudo_integral_local, (ao_num,ao_num)]
|
|||||||
BEGIN_PROVIDER [ double precision, ao_pseudo_integral_non_local, (ao_num,ao_num)]
|
BEGIN_PROVIDER [ double precision, ao_pseudo_integral_non_local, (ao_num,ao_num)]
|
||||||
implicit none
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Local pseudo-potential
|
! Non-local pseudo-potential
|
||||||
END_DOC
|
END_DOC
|
||||||
include 'Utils/constants.include.F'
|
include 'Utils/constants.include.F'
|
||||||
double precision :: alpha, beta, gama, delta
|
double precision :: alpha, beta, gama, delta
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
&BEGIN_PROVIDER [ logical, write_ao_one_integrals ]
|
&BEGIN_PROVIDER [ logical, write_ao_one_integrals ]
|
||||||
|
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
! If |true|, read/write one-electrons from/to disk.
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
|
|
||||||
|
@ -2,9 +2,11 @@
|
|||||||
&BEGIN_PROVIDER [ double precision, ao_spread_y, (ao_num,ao_num)]
|
&BEGIN_PROVIDER [ double precision, ao_spread_y, (ao_num,ao_num)]
|
||||||
&BEGIN_PROVIDER [ double precision, ao_spread_z, (ao_num,ao_num)]
|
&BEGIN_PROVIDER [ double precision, ao_spread_z, (ao_num,ao_num)]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! array of the integrals of AO_i * x^2 AO_j
|
! * array of the integrals of AO_i * x^2 AO_j
|
||||||
! array of the integrals of AO_i * y^2 AO_j
|
!
|
||||||
! array of the integrals of AO_i * z^2 AO_j
|
! * array of the integrals of AO_i * y^2 AO_j
|
||||||
|
!
|
||||||
|
! * array of the integrals of AO_i * z^2 AO_j
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i,j,n,l
|
integer :: i,j,n,l
|
||||||
@ -73,9 +75,11 @@
|
|||||||
&BEGIN_PROVIDER [ double precision, ao_dipole_y, (ao_num,ao_num)]
|
&BEGIN_PROVIDER [ double precision, ao_dipole_y, (ao_num,ao_num)]
|
||||||
&BEGIN_PROVIDER [ double precision, ao_dipole_z, (ao_num,ao_num)]
|
&BEGIN_PROVIDER [ double precision, ao_dipole_z, (ao_num,ao_num)]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! array of the integrals of AO_i * x AO_j
|
! * array of the integrals of AO_i * x AO_j
|
||||||
! array of the integrals of AO_i * y AO_j
|
!
|
||||||
! array of the integrals of AO_i * z AO_j
|
! * array of the integrals of AO_i * y AO_j
|
||||||
|
!
|
||||||
|
! * array of the integrals of AO_i * z AO_j
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i,j,n,l
|
integer :: i,j,n,l
|
||||||
@ -143,9 +147,11 @@
|
|||||||
&BEGIN_PROVIDER [ double precision, ao_deriv_1_y, (ao_num,ao_num)]
|
&BEGIN_PROVIDER [ double precision, ao_deriv_1_y, (ao_num,ao_num)]
|
||||||
&BEGIN_PROVIDER [ double precision, ao_deriv_1_z, (ao_num,ao_num)]
|
&BEGIN_PROVIDER [ double precision, ao_deriv_1_z, (ao_num,ao_num)]
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! array of the integrals of AO_i * d/dx AO_j
|
! * array of the integrals of AO_i * d/dx AO_j
|
||||||
! array of the integrals of AO_i * d/dy AO_j
|
!
|
||||||
! array of the integrals of AO_i * d/dz AO_j
|
! * array of the integrals of AO_i * d/dy AO_j
|
||||||
|
!
|
||||||
|
! * array of the integrals of AO_i * d/dz AO_j
|
||||||
END_DOC
|
END_DOC
|
||||||
implicit none
|
implicit none
|
||||||
integer :: i,j,n,l
|
integer :: i,j,n,l
|
||||||
@ -214,47 +220,9 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
subroutine overlap_bourrin_x_abs(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
|
|
||||||
implicit none
|
|
||||||
! compute the following integral :
|
|
||||||
! int [-infty ; +infty] of [(x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) ]
|
|
||||||
integer :: i,j,k,l
|
|
||||||
integer,intent(in) :: power_A,power_B
|
|
||||||
double precision, intent(in) :: lower_exp_val
|
|
||||||
double precision,intent(in) :: A_center, B_center,alpha,beta
|
|
||||||
double precision, intent(out) :: overlap_x,dx
|
|
||||||
integer, intent(in) :: nx
|
|
||||||
double precision :: x_min,x_max,domain,x,power,factor,dist,p,p_inv,rho
|
|
||||||
double precision :: P_center,pouet_timy
|
|
||||||
if(power_A.lt.0.or.power_B.lt.0)then
|
|
||||||
overlap_x = 0.d0
|
|
||||||
dx = 0.d0
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
p = alpha + beta
|
|
||||||
p_inv= 1.d0/p
|
|
||||||
rho = alpha * beta * p_inv
|
|
||||||
dist = (A_center - B_center)*(A_center - B_center)
|
|
||||||
P_center = (alpha * A_center + beta * B_center) * p_inv
|
|
||||||
factor = dexp(-rho * dist)
|
|
||||||
pouet_timy = dsqrt(lower_exp_val/p)
|
|
||||||
x_min = P_center - pouet_timy
|
|
||||||
x_max = P_center + pouet_timy
|
|
||||||
!print*,'xmin = ',x_min
|
|
||||||
!print*,'xmax = ',x_max
|
|
||||||
domain = x_max-x_min
|
|
||||||
dx = domain/dble(nx)
|
|
||||||
overlap_x = 0.d0
|
|
||||||
x = x_min
|
|
||||||
do i = 1, nx
|
|
||||||
x += dx
|
|
||||||
overlap_x += (power(power_A,x-A_center) * power(power_B,x-B_center)) * dexp(-p * (x-P_center)*(x-P_center))
|
|
||||||
enddo
|
|
||||||
overlap_x *= factor * dx
|
|
||||||
end
|
|
||||||
|
|
||||||
subroutine overlap_bourrin_spread(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
|
subroutine overlap_bourrin_spread(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
|
||||||
! compute the following integral :
|
! Computes the following integral :
|
||||||
! int [-infty ; +infty] of [(x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) * x ]
|
! int [-infty ; +infty] of [(x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) * x ]
|
||||||
! needed for the dipole and those things
|
! needed for the dipole and those things
|
||||||
implicit none
|
implicit none
|
||||||
@ -264,7 +232,7 @@ end
|
|||||||
double precision,intent(in) :: A_center, B_center,alpha,beta
|
double precision,intent(in) :: A_center, B_center,alpha,beta
|
||||||
double precision, intent(out) :: overlap_x,dx
|
double precision, intent(out) :: overlap_x,dx
|
||||||
integer, intent(in) :: nx
|
integer, intent(in) :: nx
|
||||||
double precision :: x_min,x_max,domain,x,power,factor,dist,p,p_inv,rho
|
double precision :: x_min,x_max,domain,x,factor,dist,p,p_inv,rho
|
||||||
double precision :: P_center,pouet_timy
|
double precision :: P_center,pouet_timy
|
||||||
if(power_A.lt.0.or.power_B.lt.0)then
|
if(power_A.lt.0.or.power_B.lt.0)then
|
||||||
overlap_x = 0.d0
|
overlap_x = 0.d0
|
||||||
@ -292,19 +260,12 @@ end
|
|||||||
x = x_min
|
x = x_min
|
||||||
do i = 1, nx
|
do i = 1, nx
|
||||||
x += dx
|
x += dx
|
||||||
overlap_x += power(power_A,x-A_center) * power(power_B,x-B_center) * dexp(-p * (x-P_center)*(x-P_center)) * x * x
|
overlap_x += (x-A_center)**(power_A) * (x-B_center)**(power_B) * dexp(-p * (x-P_center)*(x-P_center)) * x * x
|
||||||
enddo
|
enddo
|
||||||
overlap_x *= factor * dx
|
overlap_x *= factor * dx
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
double precision function power(n,x)
|
|
||||||
implicit none
|
|
||||||
integer :: i,n
|
|
||||||
double precision :: x,accu
|
|
||||||
power = x**n
|
|
||||||
return
|
|
||||||
end
|
|
||||||
|
|
||||||
subroutine overlap_bourrin_dipole(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
|
subroutine overlap_bourrin_dipole(A_center,B_center,alpha,beta,power_A,power_B,overlap_x,lower_exp_val,dx,nx)
|
||||||
! compute the following integral :
|
! compute the following integral :
|
||||||
@ -317,7 +278,7 @@ end
|
|||||||
double precision,intent(in) :: A_center, B_center,alpha,beta
|
double precision,intent(in) :: A_center, B_center,alpha,beta
|
||||||
double precision, intent(out) :: overlap_x,dx
|
double precision, intent(out) :: overlap_x,dx
|
||||||
integer, intent(in) :: nx
|
integer, intent(in) :: nx
|
||||||
double precision :: x_min,x_max,domain,x,power,factor,dist,p,p_inv,rho
|
double precision :: x_min,x_max,domain,x,factor,dist,p,p_inv,rho
|
||||||
double precision :: P_center
|
double precision :: P_center
|
||||||
if(power_A.lt.0.or.power_B.lt.0)then
|
if(power_A.lt.0.or.power_B.lt.0)then
|
||||||
overlap_x = 0.d0
|
overlap_x = 0.d0
|
||||||
@ -347,7 +308,7 @@ end
|
|||||||
x = x_min
|
x = x_min
|
||||||
do i = 1, nx
|
do i = 1, nx
|
||||||
x += dx
|
x += dx
|
||||||
overlap_x += power(power_A,x-A_center) * power(power_B,x-B_center) * dexp(-p * (x-P_center)*(x-P_center)) * x
|
overlap_x += (x-A_center)**(power_A) * (x-B_center)**(power_B) * dexp(-p * (x-P_center)*(x-P_center)) * x
|
||||||
enddo
|
enddo
|
||||||
overlap_x *= factor * dx
|
overlap_x *= factor * dx
|
||||||
|
|
||||||
@ -378,7 +339,7 @@ end
|
|||||||
double precision,intent(in) :: A_center, B_center,alpha,beta
|
double precision,intent(in) :: A_center, B_center,alpha,beta
|
||||||
double precision, intent(out) :: overlap_x,dx
|
double precision, intent(out) :: overlap_x,dx
|
||||||
integer, intent(in) :: nx
|
integer, intent(in) :: nx
|
||||||
double precision :: x_min,x_max,domain,x,power,factor,dist,p,p_inv,rho
|
double precision :: x_min,x_max,domain,x,factor,dist,p,p_inv,rho
|
||||||
double precision :: P_center,pouet_timy
|
double precision :: P_center,pouet_timy
|
||||||
if(power_A.lt.0.or.power_B.lt.0)then
|
if(power_A.lt.0.or.power_B.lt.0)then
|
||||||
overlap_x = 0.d0
|
overlap_x = 0.d0
|
||||||
@ -406,7 +367,7 @@ end
|
|||||||
x = x_min
|
x = x_min
|
||||||
do i = 1, nx
|
do i = 1, nx
|
||||||
x += dx
|
x += dx
|
||||||
overlap_x += power(power_A,x-A_center) * power(power_B,x-B_center) * dexp(-p * (x-P_center)*(x-P_center))
|
overlap_x += (x-A_center)**(power_A) * (x-B_center)**(power_B) * dexp(-p * (x-P_center)*(x-P_center))
|
||||||
enddo
|
enddo
|
||||||
overlap_x *= factor * dx
|
overlap_x *= factor * dx
|
||||||
end
|
end
|
||||||
|
@ -1 +1,3 @@
|
|||||||
Selectors_full SingleRefMethod DavidsonUndressed
|
Selectors_full
|
||||||
|
SingleRefMethod
|
||||||
|
DavidsonUndressed
|
||||||
|
@ -1 +1,3 @@
|
|||||||
Selectors_full SingleRefMethod DavidsonUndressed
|
Selectors_full
|
||||||
|
SingleRefMethod
|
||||||
|
DavidsonUndressed
|
||||||
|
@ -1 +1,3 @@
|
|||||||
MO_Basis MO_one_e_integrals Integrals_Bielec
|
MO_Basis
|
||||||
|
MO_one_e_integrals
|
||||||
|
Integrals_Bielec
|
||||||
|
@ -1 +1,7 @@
|
|||||||
Perturbation Selectors_full Generators_full ZMQ MPI DavidsonUndressed Iterations
|
Perturbation
|
||||||
|
Selectors_full
|
||||||
|
Generators_full
|
||||||
|
ZMQ
|
||||||
|
MPI
|
||||||
|
DavidsonUndressed
|
||||||
|
Iterations
|
||||||
|
@ -1 +1,2 @@
|
|||||||
Determinants Hartree_Fock
|
Determinants
|
||||||
|
Hartree_Fock
|
||||||
|
@ -1 +1,4 @@
|
|||||||
Integrals_Bielec AO_one_e_integrals MOGuess Bitmask
|
Integrals_Bielec
|
||||||
|
AO_one_e_integrals
|
||||||
|
MOGuess
|
||||||
|
Bitmask
|
||||||
|
@ -1 +1,7 @@
|
|||||||
AO_one_e_integrals MO_one_e_integrals Pseudo Bitmask ZMQ AO_Basis MO_Basis
|
AO_one_e_integrals
|
||||||
|
MO_one_e_integrals
|
||||||
|
Pseudo
|
||||||
|
Bitmask
|
||||||
|
ZMQ
|
||||||
|
AO_Basis
|
||||||
|
MO_Basis
|
||||||
|
@ -1 +1,2 @@
|
|||||||
MO_Basis MO_one_e_integrals
|
MO_Basis
|
||||||
|
MO_one_e_integrals
|
||||||
|
@ -1 +1,3 @@
|
|||||||
AO_Basis AO_one_e_integrals Electrons
|
AO_Basis
|
||||||
|
AO_one_e_integrals
|
||||||
|
Electrons
|
||||||
|
@ -1 +1,3 @@
|
|||||||
AO_one_e_integrals MO_Basis Pseudo
|
AO_one_e_integrals
|
||||||
|
MO_Basis
|
||||||
|
Pseudo
|
||||||
|
@ -1 +1,3 @@
|
|||||||
Determinants Davidson Psiref_CAS
|
Determinants
|
||||||
|
Davidson
|
||||||
|
Psiref_CAS
|
||||||
|
@ -1 +1,2 @@
|
|||||||
Ezfio_files Utils
|
Ezfio_files
|
||||||
|
Utils
|
||||||
|
@ -1 +1,4 @@
|
|||||||
Determinants Hartree_Fock Davidson MRPT_Utils
|
Determinants
|
||||||
|
Hartree_Fock
|
||||||
|
Davidson
|
||||||
|
MRPT_Utils
|
||||||
|
@ -1 +1,2 @@
|
|||||||
Bitmask Determinants
|
Bitmask
|
||||||
|
Determinants
|
||||||
|
@ -1 +1,3 @@
|
|||||||
Determinants Hartree_Fock Selectors_Utils
|
Determinants
|
||||||
|
Hartree_Fock
|
||||||
|
Selectors_Utils
|
||||||
|
@ -1 +1,2 @@
|
|||||||
FCI MPI
|
FCI
|
||||||
|
MPI
|
||||||
|
@ -1 +1,34 @@
|
|||||||
AO_Basis AO_one_e_integrals Bitmask CIS CISD Davidson DavidsonDressed DavidsonUndressed Determinants Dressing Electrons Ezfio_files FCI FourIdx Generators_CAS Generators_full Hartree_Fock Integrals_Bielec MO_Basis MOGuess MO_one_e_integrals MPI Nuclei Perturbation Pseudo Psiref_CAS Psiref_Utils Selectors_CASSD Selectors_full Selectors_Utils SingleRefMethod Utils ZMQ MRPT_Utils
|
AO_Basis
|
||||||
|
AO_one_e_integrals
|
||||||
|
Bitmask
|
||||||
|
CIS
|
||||||
|
CISD
|
||||||
|
Davidson
|
||||||
|
DavidsonDressed
|
||||||
|
DavidsonUndressed
|
||||||
|
Determinants
|
||||||
|
Dressing
|
||||||
|
Electrons
|
||||||
|
Ezfio_files
|
||||||
|
FCI
|
||||||
|
FourIdx
|
||||||
|
Generators_CAS
|
||||||
|
Generators_full
|
||||||
|
Hartree_Fock
|
||||||
|
Integrals_Bielec
|
||||||
|
MO_Basis
|
||||||
|
MOGuess
|
||||||
|
MO_one_e_integrals
|
||||||
|
MPI
|
||||||
|
Nuclei
|
||||||
|
Perturbation
|
||||||
|
Pseudo
|
||||||
|
Psiref_CAS
|
||||||
|
Psiref_Utils
|
||||||
|
Selectors_CASSD
|
||||||
|
Selectors_full
|
||||||
|
Selectors_Utils
|
||||||
|
SingleRefMethod
|
||||||
|
Utils
|
||||||
|
ZMQ
|
||||||
|
MRPT_Utils
|
||||||
|
Loading…
Reference in New Issue
Block a user