mirror of
https://github.com/LCPQ/quantum_package
synced 2024-08-31 00:23:42 +02:00
commit
70de4546b8
5
.gitattributes
vendored
Normal file
5
.gitattributes
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
*.irp.f linguist-language=IRPF90
|
||||
*.f linguist-language=Fortran
|
||||
*.ml linguist-language=Ocaml
|
||||
*.sh linguist-language=Bash
|
||||
*.py linguist-language=Python
|
@ -6,8 +6,9 @@
|
||||
* m4
|
||||
* GNU make
|
||||
* Fortran compiler (ifort or gfortran are tested)
|
||||
* Python >= 2.7
|
||||
* Python >= 2.6
|
||||
* Bash
|
||||
* Patch (for opam)
|
||||
|
||||
|
||||
## Standard installation
|
||||
|
@ -32,16 +32,17 @@ full_ci
|
||||
do_pt2_end True
|
||||
var_pt2_ratio 0.75
|
||||
|
||||
cas_sd
|
||||
n_det_max_cas_sd 100000
|
||||
pt2_max 1.e-4
|
||||
do_pt2_end True
|
||||
var_pt2_ratio 0.75
|
||||
|
||||
all_singles
|
||||
n_det_max_fci 50000
|
||||
pt2_max 1.e-8
|
||||
do_pt2_end False
|
||||
|
||||
cassd
|
||||
n_det_max_cassd 10000
|
||||
pt2_max 1.e-4
|
||||
do_pt2_end True
|
||||
|
||||
hartree_fock
|
||||
n_it_scf_max 200
|
||||
thresh_scf 1.e-10
|
@ -4,6 +4,6 @@ determinants
|
||||
n_det_max_jacobi 1000
|
||||
threshold_generators 0.99
|
||||
threshold_selectors 0.999
|
||||
read_wf False
|
||||
s2_eig False
|
||||
only_single_double_dm False
|
||||
read_wf false
|
||||
s2_eig false
|
||||
only_single_double_dm false
|
||||
|
@ -25,9 +25,12 @@ default: $(ALL_TESTS) $(ALL_EXE) .gitignore
|
||||
|
||||
.gitignore: $(MLFILES)
|
||||
@for i in .gitignore ezfio.ml Qptypes.ml qptypes_generator.byte _build $(ALL_EXE) $(ALL_TESTS) \
|
||||
$(patsubst %.ml,%,$(wildcard test_*.ml)) $(patsubst %.ml,%,$(wildcard qp_*.ml)) ; do \
|
||||
$(patsubst %.ml,%,$(wildcard test_*.ml)) $(patsubst %.ml,%,$(wildcard qp_*.ml)) \
|
||||
$(shell grep Input Input_auto_generated.ml | awk '{print $$2 ".ml"}') \
|
||||
Input_auto_generated.ml;\
|
||||
do \
|
||||
echo $$i ; \
|
||||
done >> .gitignore
|
||||
done > .gitignore
|
||||
|
||||
executables: $(QPACKAGE_ROOT)/data/executables
|
||||
|
||||
|
@ -94,7 +94,7 @@ let get_ezfio_default_in_file ~directory ~data ~filename =
|
||||
match (String.lsplit2 ~on:' ' (String.strip line)) with
|
||||
| Some (l,r) ->
|
||||
if (l = data) then
|
||||
String.lowercase (String.strip r)
|
||||
String.strip r
|
||||
else
|
||||
find_data rest
|
||||
| None -> raise Not_found
|
||||
|
@ -20,6 +20,10 @@ let run exe ezfio_file =
|
||||
Printf.printf "===============\nQuantum Package\n===============\n\n";
|
||||
Printf.printf "Date : %s\n\n%!" (Time.to_string time_start);
|
||||
|
||||
match (Sys.command ("qp_edit -c "^ezfio_file)) with
|
||||
| 0 -> ()
|
||||
| i -> failwith "Error: Input inconsistent\n";
|
||||
;
|
||||
let exe =
|
||||
match (List.find ~f:(fun (x,_) -> x = exe) executables) with
|
||||
| None -> assert false
|
||||
|
@ -150,15 +150,12 @@ end = struct
|
||||
|
||||
let to_string = function
|
||||
| Huckel -> \"Huckel\"
|
||||
| HCore -> \"HCore\"
|
||||
| HCore -> \"Hcore\"
|
||||
|
||||
let of_string s =
|
||||
let s =
|
||||
String.lowercase s
|
||||
in
|
||||
match s with
|
||||
| \"huckel\" -> Huckel
|
||||
| \"hcore\" -> HCore
|
||||
| \"Huckel\" -> Huckel
|
||||
| \"Hcore\" -> HCore
|
||||
| _ -> failwith (\"Wrong Guess type : \"^s)
|
||||
|
||||
end
|
||||
@ -179,13 +176,10 @@ end = struct
|
||||
| Write -> \"Write\"
|
||||
| None -> \"None\"
|
||||
let of_string s =
|
||||
let s =
|
||||
String.lowercase s
|
||||
in
|
||||
match s with
|
||||
| \"read\" -> Read
|
||||
| \"write\" -> Write
|
||||
| \"none\" -> None
|
||||
| \"Read\" -> Read
|
||||
| \"Write\" -> Write
|
||||
| \"None\" -> None
|
||||
| _ -> failwith (\"Wrong IO type : \"^s)
|
||||
|
||||
end
|
||||
|
@ -1,177 +0,0 @@
|
||||
open Qptypes;;
|
||||
|
||||
let test_ao () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Ao_basis.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Ao_basis.to_string b);
|
||||
print_endline (Input.Ao_basis.to_rst b |> Rst_string.to_string);
|
||||
;;
|
||||
|
||||
let test_bielec_intergals () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Bielec_integrals.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
let output = Input.Bielec_integrals.to_string b
|
||||
in
|
||||
print_endline output;
|
||||
let rst = Input.Bielec_integrals.to_rst b in
|
||||
let b2 = match Input.Bielec_integrals.of_rst rst with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
if (b = b2) then
|
||||
print_endline "OK"
|
||||
else
|
||||
print_endline "rst failed";
|
||||
;;
|
||||
|
||||
let test_bitmasks () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Bitmasks.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Bitmasks.to_string b);
|
||||
;;
|
||||
|
||||
|
||||
let test_dets () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Determinants.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Determinants.to_rst b |> Rst_string.to_string ) ;
|
||||
print_endline (Input.Determinants.sexp_of_t b |> Sexplib.Sexp.to_string ) ;
|
||||
let rst = Input.Determinants.to_rst b in
|
||||
let b2 = match Input.Determinants.of_rst rst with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
if (b2 = b) then
|
||||
print_endline "OK"
|
||||
else
|
||||
print_endline "Failed"
|
||||
;;
|
||||
|
||||
let test_cisd_sc2 () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Cisd_sc2_selected.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Cisd_sc2_selected.to_string b);
|
||||
let rst = Input.Cisd_sc2_selected.to_rst b in
|
||||
let b2 = match Input.Cisd_sc2_selected.of_rst rst with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
if (b = b2) then
|
||||
print_endline "OK"
|
||||
else
|
||||
print_endline "rst failed";
|
||||
|
||||
;;
|
||||
|
||||
let test_electrons () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Electrons.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Electrons.to_string b);
|
||||
let rst = Input.Electrons.to_rst b in
|
||||
let b2 = match Input.Electrons.of_rst rst with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
if (b = b2) then
|
||||
print_endline "OK"
|
||||
else
|
||||
print_endline "Failed in rst"
|
||||
;;
|
||||
|
||||
let test_fci () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Full_ci.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Full_ci.to_string b);
|
||||
let rst = Input.Full_ci.to_rst b in
|
||||
let b2 = match Input.Full_ci.of_rst rst with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Full_ci.to_string b);
|
||||
if (b = b2) then
|
||||
print_endline "OK"
|
||||
else
|
||||
print_endline "Failed in rst"
|
||||
;;
|
||||
|
||||
let test_hf () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Hartree_fock.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Hartree_fock.to_string b);
|
||||
let rst = Input.Hartree_fock.to_rst b in
|
||||
let b2 = match Input.Hartree_fock.of_rst rst with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Hartree_fock.to_string b);
|
||||
if (b = b2) then
|
||||
print_endline "OK"
|
||||
else
|
||||
print_endline "Failed in rst"
|
||||
;;
|
||||
|
||||
let test_mo () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Mo_basis.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Mo_basis.to_string b);
|
||||
;;
|
||||
|
||||
let test_nucl () =
|
||||
Ezfio.set_file "F2.ezfio" ;
|
||||
let b = match Input.Nuclei.read () with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
let rst = Input.Nuclei.to_rst b in
|
||||
let b2 = match Input.Nuclei.of_rst rst with
|
||||
| Some x -> x
|
||||
| None -> assert false
|
||||
in
|
||||
print_endline (Input.Nuclei.to_string b);
|
||||
if (b = b2) then
|
||||
print_endline "OK"
|
||||
else
|
||||
print_endline "Failed in rst"
|
||||
;;
|
||||
|
||||
(*
|
||||
test_ao ();;
|
||||
test_bitmasks ();
|
||||
test_cis ();
|
||||
test_cisd_sc2 ();
|
||||
test_dets ();
|
||||
test_hf ();;
|
||||
test_mo ();;
|
||||
test_nucl ();
|
||||
test_bielec_intergals ();;
|
||||
test_electrons();
|
||||
*)
|
||||
test_dets ();
|
||||
|
@ -30,6 +30,7 @@ Build failed for module $MODULE
|
||||
"
|
||||
fi
|
||||
fi
|
||||
${QPACKAGE_ROOT}/scripts/create_gitignore.sh
|
||||
cd ${OLDPWD}
|
||||
done
|
||||
${QPACKAGE_ROOT}/scripts/create_executables_list.sh
|
||||
|
@ -35,4 +35,4 @@ then
|
||||
fi
|
||||
|
||||
find . -type l | sed "s@./@@" >> .gitignore
|
||||
|
||||
find . -type f -executable -print | sed "s@./@@" >> .gitignore
|
@ -12,6 +12,8 @@ fi
|
||||
source ${QPACKAGE_ROOT}/scripts/qp_include.sh
|
||||
|
||||
check_current_dir_is_module
|
||||
MODULE=$(basename $PWD)
|
||||
|
||||
|
||||
README="True"
|
||||
if [[ -f README.rst ]]
|
||||
|
@ -12,8 +12,8 @@ By default all the option are executed.
|
||||
Options:
|
||||
-h --help
|
||||
--path The path of the `EZFIO.cfg`, by default will look in the ${pwd}
|
||||
--irpf90 Create the `ezfio_interface.ipf90`
|
||||
who containt all the provider needed
|
||||
--irpf90 Create the `ezfio_interface.irpf90`
|
||||
which contains all the providers needed
|
||||
(aka all with the `interface: input` parameter)
|
||||
in `${pwd}`
|
||||
--ezfio_config Create the `${module_lower}_ezfio_interface_config` in
|
||||
@ -28,7 +28,7 @@ Options:
|
||||
Format specification :
|
||||
[provider_name] | the name of the provider in irp.f90
|
||||
doc:{str} | Is the doc
|
||||
Type:{str} | Is a fancy_type support by the ocaml
|
||||
Type:{str} | Is a fancy_type supported by the ocaml
|
||||
ezfio_name:{str} | Will be the name of the file for the ezfio
|
||||
(optional by default is the name of the provider)
|
||||
interface:{str} | The provider is a imput or a output
|
||||
@ -67,13 +67,13 @@ Type = namedtuple('Type', 'fancy ocaml fortran')
|
||||
|
||||
def is_bool(str_):
|
||||
"""
|
||||
Take a string, if is a bool return the convert into
|
||||
fortran and ocaml one.
|
||||
Take a string, if is a bool return the conversion into
|
||||
fortran and ocaml.
|
||||
"""
|
||||
if str_.lower() in ['true', '.true.']:
|
||||
return Type(None, "True", ".True.")
|
||||
elif str_.lower() in ['false', '.False.']:
|
||||
return Type(None, "False", ".False")
|
||||
if "true" in str_.lower():
|
||||
return Type(None, "true", ".True.")
|
||||
elif "false" in str_.lower():
|
||||
return Type(None, "false", ".False")
|
||||
else:
|
||||
raise TypeError
|
||||
|
||||
@ -81,7 +81,7 @@ def is_bool(str_):
|
||||
def get_type_dict():
|
||||
"""
|
||||
This function makes the correspondance between the type of value read in
|
||||
ezfio.cfg into the f90 and Ocam Type
|
||||
ezfio.cfg into the f90 and Ocaml Type
|
||||
return fancy_type[fancy_type] = namedtuple('Type', 'ocaml fortran')
|
||||
For example fancy_type['Ndet'].fortran = interger
|
||||
.ocaml = int
|
||||
@ -154,7 +154,7 @@ def get_type_dict():
|
||||
# q p _ t y p e s _ g e n e r a t e #
|
||||
# ~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~#~ #
|
||||
|
||||
# Read the fancy_type, the ocaml. and convert the ocam to the fortran
|
||||
# Read the fancy_type, the ocaml. and convert the ocaml to the fortran
|
||||
for i in l_gen + l_un:
|
||||
str_fancy_type = i.split()[1].strip()
|
||||
str_ocaml_type = i.split()[3]
|
||||
@ -507,6 +507,9 @@ def create_ocaml_input(dict_ezfio_cfg, module_lower):
|
||||
l_type.append(v["type"])
|
||||
l_doc.append(v["doc"])
|
||||
|
||||
if not l_ezfio_name:
|
||||
raise ValueError
|
||||
|
||||
e_glob = EZFIO_ocaml(l_ezfio_name=l_ezfio_name,
|
||||
l_type=l_type,
|
||||
l_doc=l_doc)
|
||||
@ -602,6 +605,49 @@ def save_ocaml_input(module_lower, str_ocaml_input):
|
||||
f.write(str_ocaml_input)
|
||||
|
||||
|
||||
def get_l_module_lower():
|
||||
"""
|
||||
Get all module who have EZFIO.cfg with input data
|
||||
(NB `search` in all the ligne and `match` only in one)
|
||||
"""
|
||||
|
||||
# ~#~#~#~ #
|
||||
# I n i t #
|
||||
# ~#~#~#~ #
|
||||
|
||||
mypath = "{0}/src".format(os.environ['QPACKAGE_ROOT'])
|
||||
|
||||
# ~#~#~#~#~#~#~#~ #
|
||||
# L _ f o l d e r #
|
||||
# ~#~#~#~#~#~#~#~ #
|
||||
|
||||
from os import listdir
|
||||
from os.path import isdir, join, exists
|
||||
|
||||
l_folder = [f for f in listdir(mypath) if isdir(join(mypath, f))]
|
||||
|
||||
# ~#~#~#~#~#~#~#~#~#~#~#~#~#~ #
|
||||
# L _ m o d u l e _ l o w e r #
|
||||
# ~#~#~#~#~#~#~#~#~#~#~#~#~#~ #
|
||||
|
||||
l_module_lower = []
|
||||
import re
|
||||
p = re.compile(ur'interface:\s+input')
|
||||
|
||||
for f in l_folder:
|
||||
path = "{0}/{1}/EZFIO.cfg".format(mypath, f)
|
||||
if exists(path):
|
||||
with open(path, 'r') as file_:
|
||||
if p.search(file_.read()):
|
||||
l_module_lower.append(f.lower())
|
||||
|
||||
# ~#~#~#~#~#~ #
|
||||
# R e t u r n #
|
||||
# ~#~#~#~#~#~ #
|
||||
|
||||
return l_module_lower
|
||||
|
||||
|
||||
def create_ocaml_input_global():
|
||||
"""
|
||||
Check for all the EZFIO.cfg get the module lower
|
||||
@ -612,15 +658,7 @@ def create_ocaml_input_global():
|
||||
# I n i t #
|
||||
# ~#~#~#~# #
|
||||
|
||||
from os import listdir
|
||||
from os.path import isdir, join, exists
|
||||
|
||||
mypath = "{0}/src".format(os.environ['QPACKAGE_ROOT'])
|
||||
|
||||
onlyfodler = [f for f in listdir(mypath) if isdir(join(mypath, f))]
|
||||
|
||||
l_module_lower = [f.lower() for f in onlyfodler
|
||||
if exists("{0}/{1}/EZFIO.cfg".format(mypath, f))]
|
||||
l_module_lower = get_l_module_lower()
|
||||
|
||||
# ~#~#~#~#~#~#~#~# #
|
||||
# C r e a t i o n #
|
||||
@ -761,7 +799,11 @@ if __name__ == "__main__":
|
||||
# O c a m l #
|
||||
# ~#~#~#~#~#~#
|
||||
if do_all or arguments["--ocaml"]:
|
||||
try:
|
||||
str_ocaml_input = create_ocaml_input(dict_ezfio_cfg, module_lower)
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
save_ocaml_input(module_lower, str_ocaml_input)
|
||||
|
||||
# ~#~#~#~#~#~#~#~#~#~#~#~#~ #
|
||||
|
@ -90,19 +90,14 @@ END_PROVIDER
|
||||
self.default = t
|
||||
|
||||
def get_default(self):
|
||||
filename = '/'.join( [os.environ['QPACKAGE_ROOT'], 'data',
|
||||
'ezfio_defaults',
|
||||
'WILL_BE_DELETED.ezfio_default'] )
|
||||
|
||||
from os import listdir
|
||||
from os.path import isfile, join
|
||||
|
||||
mypath = '/'.join( [os.environ['QPACKAGE_ROOT'], 'data', 'ezfio_defaults','/'])
|
||||
onlyfiles = [ f for f in listdir(mypath) if isfile(join(mypath,f)) ]
|
||||
|
||||
lines= []
|
||||
for filename in onlyfiles:
|
||||
file = open(mypath+filename,'r')
|
||||
lines.extend(file.readlines()[:])
|
||||
file = open(filename,'r')
|
||||
lines = file.readlines()
|
||||
file.close()
|
||||
|
||||
k=-1
|
||||
# Search directory
|
||||
for k,line in enumerate(lines):
|
||||
if line[0] != ' ':
|
||||
@ -120,16 +115,21 @@ END_PROVIDER
|
||||
break
|
||||
v = buffer[1]
|
||||
name = self.name
|
||||
true = True
|
||||
false= False
|
||||
try:
|
||||
true = True
|
||||
false = False
|
||||
v_eval = eval(v)
|
||||
except:
|
||||
v = "call ezfio_get_%(v)s(%(name)s)"%locals()
|
||||
else:
|
||||
if type(v_eval) == bool:
|
||||
v = '.%s.'%(v)
|
||||
elif type(v_eval) == float:
|
||||
v = v.replace('e','d')
|
||||
v = v.replace('E','D')
|
||||
v = "%(name)s = %(v)s"%locals()
|
||||
except:
|
||||
v = "call ezfio_get_%(v)s(%(name)s)"%locals()
|
||||
self.default = v
|
||||
|
||||
|
||||
|
@ -53,7 +53,7 @@ class H_apply(object):
|
||||
!$OMP N_elec_in_key_hole_2,ia_ja_pairs) &
|
||||
!$OMP SHARED(key_in,N_int,elec_num_tab,mo_tot_num, &
|
||||
!$OMP hole_1, particl_1, hole_2, particl_2, &
|
||||
!$OMP elec_alpha_num,i_generator)"""
|
||||
!$OMP elec_alpha_num,i_generator) FIRSTPRIVATE(iproc)"""
|
||||
s["omp_end_parallel"] = "!$OMP END PARALLEL"
|
||||
s["omp_master"] = "!$OMP MASTER"
|
||||
s["omp_end_master"] = "!$OMP END MASTER"
|
||||
|
@ -53,16 +53,68 @@ def write_ezfioFile(res,filename):
|
||||
basis = res.uncontracted_basis
|
||||
geom = res.geometry
|
||||
|
||||
res.clean_contractions()
|
||||
# AO Basis
|
||||
import string
|
||||
at = []
|
||||
num_prim = []
|
||||
magnetic_number = []
|
||||
angular_number = []
|
||||
power_x = []
|
||||
power_y = []
|
||||
power_z = []
|
||||
coefficient = []
|
||||
exponent = []
|
||||
res.convert_to_cartesian()
|
||||
for b in res.basis:
|
||||
c = b.center
|
||||
for i,atom in enumerate(res.geometry):
|
||||
if atom.coord == c:
|
||||
at.append(i+1)
|
||||
num_prim.append(len(b.prim))
|
||||
s = b.sym
|
||||
power_x.append( string.count(s,"x") )
|
||||
power_y.append( string.count(s,"y") )
|
||||
power_z.append( string.count(s,"z") )
|
||||
coefficient.append( b.coef )
|
||||
exponent.append( [ p.expo for p in b.prim ] )
|
||||
ezfio.set_ao_basis_ao_num(len(res.basis))
|
||||
ezfio.set_ao_basis_ao_nucl(at)
|
||||
ezfio.set_ao_basis_ao_prim_num(num_prim)
|
||||
ezfio.set_ao_basis_ao_power(power_x+power_y+power_z)
|
||||
prim_num_max = ezfio.get_ao_basis_ao_prim_num_max()
|
||||
len_res_basis = len(res.basis)
|
||||
for i in range(len(res.basis)):
|
||||
coefficient[i] += [ 0. for j in range(len(coefficient[i]),prim_num_max) ]
|
||||
exponent[i] += [ 0. for j in range(len(exponent[i]),prim_num_max) ]
|
||||
coefficient = reduce(lambda x, y: x+y, coefficient, [])
|
||||
exponent = reduce(lambda x, y: x+y, exponent, [])
|
||||
coef = []
|
||||
expo = []
|
||||
for i in range(prim_num_max):
|
||||
for j in range(i,len(coefficient),prim_num_max):
|
||||
coef.append ( coefficient[j] )
|
||||
expo.append ( exponent[j] )
|
||||
ezfio.set_ao_basis_ao_coef(coef)
|
||||
ezfio.set_ao_basis_ao_expo(expo)
|
||||
ezfio.set_ao_basis_ao_basis("Read by resultsFile")
|
||||
|
||||
|
||||
# MO
|
||||
MoTag = res.determinants_mo_type
|
||||
ezfio.set_mo_basis_mo_label('Orthonormalized')
|
||||
MO_type = MoTag
|
||||
allMOs = res.uncontracted_mo_sets[MO_type]
|
||||
allMOs = res.mo_sets[MO_type]
|
||||
|
||||
|
||||
try:
|
||||
closed = [ (allMOs[i].eigenvalue,i) for i in res.closed_mos ]
|
||||
active = [ (allMOs[i].eigenvalue,i) for i in res.active_mos ]
|
||||
virtual =[ (allMOs[i].eigenvalue,i) for i in res.virtual_mos ]
|
||||
except:
|
||||
closed = []
|
||||
virtual = []
|
||||
active = [ (allMOs[i].eigenvalue,i) for i in range(len(allMOs)) ]
|
||||
|
||||
# closed.sort()
|
||||
# active.sort()
|
||||
@ -111,117 +163,6 @@ def write_ezfioFile(res,filename):
|
||||
while len(MoMatrix) < len(MOs[0].vector)**2:
|
||||
MoMatrix.append(0.)
|
||||
|
||||
ezfio.set_mo_basis_mo_tot_num(mo_tot_num)
|
||||
ezfio.set_mo_basis_mo_occ(OccNum)
|
||||
|
||||
|
||||
res.clean_contractions()
|
||||
# AO Basis
|
||||
import string
|
||||
at = []
|
||||
num_prim = []
|
||||
magnetic_number = []
|
||||
angular_number = []
|
||||
power_x = []
|
||||
power_y = []
|
||||
power_z = []
|
||||
coefficient = []
|
||||
exponent = []
|
||||
res.convert_to_cartesian()
|
||||
for b in res.basis:
|
||||
c = b.center
|
||||
for i,atom in enumerate(res.geometry):
|
||||
if atom.coord == c:
|
||||
at.append(i+1)
|
||||
num_prim.append(len(b.prim))
|
||||
s = b.sym
|
||||
power_x.append( string.count(s,"x") )
|
||||
power_y.append( string.count(s,"y") )
|
||||
power_z.append( string.count(s,"z") )
|
||||
coefficient.append( b.coef )
|
||||
exponent.append( [ p.expo for p in b.prim ] )
|
||||
ezfio.set_ao_basis_ao_num(len(res.basis))
|
||||
ezfio.set_ao_basis_ao_nucl(at)
|
||||
ezfio.set_ao_basis_ao_prim_num(num_prim)
|
||||
ezfio.set_ao_basis_ao_power(power_x+power_y+power_z)
|
||||
prim_num_max = ezfio.get_ao_basis_ao_prim_num_max()
|
||||
len_res_basis = len(res.basis)
|
||||
for i in range(len(res.basis)):
|
||||
coefficient[i] += [ 0. for j in range(len(coefficient[i]),prim_num_max) ]
|
||||
exponent[i] += [ 0. for j in range(len(exponent[i]),prim_num_max) ]
|
||||
coefficient = reduce(lambda x, y: x+y, coefficient, [])
|
||||
exponent = reduce(lambda x, y: x+y, exponent, [])
|
||||
coef = []
|
||||
expo = []
|
||||
for i in range(prim_num_max):
|
||||
for j in range(i,len(coefficient),prim_num_max):
|
||||
coef.append ( coefficient[j] )
|
||||
expo.append ( exponent[j] )
|
||||
ezfio.set_ao_basis_ao_coef(coef)
|
||||
ezfio.set_ao_basis_ao_expo(expo)
|
||||
ezfio.set_ao_basis_ao_basis("Read by resultsFile")
|
||||
|
||||
# Apply threshold to determinants
|
||||
if len(res.determinants) == 1:
|
||||
sorted_determinants = [ (-1.,1.,res.determinants[0]) ]
|
||||
else:
|
||||
sorted_determinants = []
|
||||
for i,j in zip(res.det_coefficients[0],res.determinants):
|
||||
sorted_determinants.append((-abs(i),i,j))
|
||||
sorted_determinants.sort()
|
||||
norm = 0.0
|
||||
for length, (a,b,c) in enumerate(sorted_determinants):
|
||||
if -a < det_threshold:
|
||||
length -=1
|
||||
break
|
||||
norm += a**2
|
||||
norm = sqrt(norm)
|
||||
length += 1
|
||||
for i in xrange(length):
|
||||
a = sorted_determinants[i]
|
||||
sorted_determinants[i] = (a[0],a[1]/norm,a[2])
|
||||
sorted_determinants = sorted_determinants[:length]
|
||||
|
||||
# MOs
|
||||
mo_tot_num = len(res.mo_sets[MoTag])
|
||||
closed_mos = res.closed_mos
|
||||
active_mos = res.active_mos
|
||||
virtual_mos = res.virtual_mos
|
||||
to_remove = []
|
||||
to_add = []
|
||||
for i in active_mos:
|
||||
found = False
|
||||
for (a,b,c) in sorted_determinants:
|
||||
if i in c['alpha']+c['beta']:
|
||||
found = True
|
||||
break
|
||||
if not found:
|
||||
to_remove.append(i)
|
||||
to_add.append(i)
|
||||
virtual_mos = to_add + virtual_mos
|
||||
for i in active_mos:
|
||||
always = True
|
||||
for (a,b,c) in sorted_determinants:
|
||||
if not (i in c['alpha'] and i in c['beta']):
|
||||
always = False
|
||||
break
|
||||
if always:
|
||||
to_remove.append(i)
|
||||
closed_mos.append(i)
|
||||
for i in to_remove:
|
||||
active_mos.remove(i)
|
||||
|
||||
|
||||
MOindices = closed_mos + active_mos + virtual_mos
|
||||
while len(MOindices) < mo_tot_num:
|
||||
MOindices.append(len(MOindices))
|
||||
MOmap = list(MOindices)
|
||||
for i in range(len(MOindices)):
|
||||
MOmap[i] = MOindices.index(i)
|
||||
|
||||
|
||||
ezfio.set_mo_basis_mo_tot_num(mo_tot_num)
|
||||
|
||||
mo = []
|
||||
for i in MOindices:
|
||||
mo.append(res.mo_sets[MoTag][i])
|
||||
@ -235,34 +176,10 @@ def write_ezfioFile(res,filename):
|
||||
mo.append(newmo)
|
||||
Energies = [ m.eigenvalue for m in mo ]
|
||||
|
||||
if res.occ_num is not None:
|
||||
OccNum = []
|
||||
for i in MOindices:
|
||||
OccNum.append(res.occ_num[MoTag][i])
|
||||
|
||||
while len(OccNum) < mo_tot_num:
|
||||
OccNum.append(0.)
|
||||
ezfio.set_mo_basis_mo_tot_num(mo_tot_num)
|
||||
ezfio.set_mo_basis_mo_occ(OccNum)
|
||||
|
||||
cls = [ "v" for i in mo ]
|
||||
for i in closed_mos:
|
||||
cls[MOmap[i]] = 'c'
|
||||
for i in active_mos:
|
||||
cls[MOmap[i]] = 'a'
|
||||
|
||||
sym0 = [ i.sym for i in res.mo_sets[MoTag] ]
|
||||
sym = [ i.sym for i in res.mo_sets[MoTag] ]
|
||||
for i in xrange(len(sym)):
|
||||
sym[MOmap[i]] = sym0[i]
|
||||
|
||||
MoMatrix = []
|
||||
for m in mo:
|
||||
for coef in m.vector:
|
||||
MoMatrix.append(coef)
|
||||
while len(MoMatrix) < len(mo[0].vector)**2:
|
||||
MoMatrix.append(0.)
|
||||
ezfio.set_mo_basis_mo_coef(MoMatrix)
|
||||
del MoMatrix
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -5,12 +5,12 @@ __date__ = "Thu Apr 3 23:06:18 CEST 2014"
|
||||
__author__ = "Anthony Scemama <scemama@irsamc.ups-tlse.fr>"
|
||||
|
||||
|
||||
README="README.rst"
|
||||
Assum_key="Assumptions\n===========\n"
|
||||
Needed_key="Needed Modules\n==============\n"
|
||||
Doc_key="Documentation\n=============\n"
|
||||
Sentinel="@@$%&@@"
|
||||
URL="http://github.com/LCPQ/quantum_package/tree/master/src/"
|
||||
README = "README.rst"
|
||||
Assum_key = "Assumptions\n===========\n"
|
||||
Needed_key = "Needed Modules\n==============\n"
|
||||
Doc_key = "Documentation\n=============\n"
|
||||
Sentinel = "@@$%&@@"
|
||||
URL = "http://github.com/LCPQ/quantum_package/tree/master/src/"
|
||||
|
||||
import os
|
||||
import subprocess
|
||||
@ -22,12 +22,12 @@ header = """
|
||||
"""
|
||||
|
||||
try:
|
||||
# subprocess.check_output("git status".split())
|
||||
# has_git = True
|
||||
pass
|
||||
# subprocess.check_output("git status".split())
|
||||
has_git = True
|
||||
except OSError:
|
||||
has_git = False
|
||||
|
||||
|
||||
def fetch_splitted_data():
|
||||
"""Read the README.rst file and split it in strings:
|
||||
* The description
|
||||
@ -37,14 +37,14 @@ def fetch_splitted_data():
|
||||
The result is given as a list of strings
|
||||
"""
|
||||
|
||||
file = open(README,'r')
|
||||
file = open(README, 'r')
|
||||
data = file.read()
|
||||
file.close()
|
||||
|
||||
# Place sentinels
|
||||
data = data.replace(Assum_key,Sentinel+Assum_key)
|
||||
data = data.replace(Doc_key,Sentinel+Doc_key)
|
||||
data = data.replace(Needed_key,Sentinel+Needed_key)
|
||||
data = data.replace(Assum_key, Sentinel + Assum_key)
|
||||
data = data.replace(Doc_key, Sentinel + Doc_key)
|
||||
data = data.replace(Needed_key, Sentinel + Needed_key)
|
||||
|
||||
# Now Split data using the sentinels
|
||||
result = data.split(Sentinel)
|
||||
@ -56,9 +56,9 @@ def update_assumptions(data):
|
||||
"""Read the ASSUMPTIONS.rst file, and replace the data with it."""
|
||||
|
||||
try:
|
||||
file = open('ASSUMPTIONS.rst','r')
|
||||
file = open('ASSUMPTIONS.rst', 'r')
|
||||
except IOError:
|
||||
file = open('ASSUMPTIONS.rst','w')
|
||||
file = open('ASSUMPTIONS.rst', 'w')
|
||||
assumptions = ""
|
||||
else:
|
||||
assumptions = file.read()
|
||||
@ -74,7 +74,7 @@ def update_assumptions(data):
|
||||
data[i] = assumptions
|
||||
|
||||
if not has_assumptions:
|
||||
data.insert(1,assumptions)
|
||||
data.insert(1, assumptions)
|
||||
|
||||
return data
|
||||
|
||||
@ -83,12 +83,12 @@ def update_needed(data):
|
||||
"""Read the NEEDED_MODULES file, and replace the data with it.
|
||||
Create the links to the GitHub pages."""
|
||||
|
||||
file = open('NEEDED_MODULES','r')
|
||||
file = open('NEEDED_MODULES', 'r')
|
||||
modules = file.read()
|
||||
file.close()
|
||||
|
||||
if modules.strip() != "":
|
||||
modules = [ '* `%s <%s%s>`_'%(x,URL,x) for x in modules.split() ]
|
||||
modules = ['* `%s <%s%s>`_' % (x, URL, x) for x in modules.split()]
|
||||
modules = "\n".join(modules)
|
||||
modules = Needed_key + header + modules + '\n\n'
|
||||
|
||||
@ -109,7 +109,7 @@ def update_documentation(data):
|
||||
|
||||
# If the file does not exist, don't do anything
|
||||
try:
|
||||
file = open('tags','r')
|
||||
file = open('tags', 'r')
|
||||
except:
|
||||
return
|
||||
tags = file.readlines()
|
||||
@ -117,7 +117,7 @@ def update_documentation(data):
|
||||
|
||||
def extract_doc(item):
|
||||
"""Extracts the documentation contained in IRPF90_man file"""
|
||||
file = open("IRPF90_man/%s.l"%(item),'r')
|
||||
file = open("IRPF90_man/%s.l" % (item), 'r')
|
||||
lines = file.readlines()
|
||||
file.close()
|
||||
result = []
|
||||
@ -128,21 +128,19 @@ def update_documentation(data):
|
||||
else:
|
||||
if line.startswith(".SH"):
|
||||
break
|
||||
result.append(" "+line.strip())
|
||||
result.append(" " + line.strip())
|
||||
|
||||
if result == []:
|
||||
result = [" Undocumented"]
|
||||
return "\n".join(result)+'\n'
|
||||
|
||||
|
||||
return "\n".join(result) + '\n'
|
||||
|
||||
items = []
|
||||
dirname = os.path.basename(os.getcwd())
|
||||
command = "git ls-tree --full-tree --name-only HEAD:src/%s"
|
||||
command = command%(dirname)
|
||||
command = command % (dirname)
|
||||
try:
|
||||
if dirname != 'src':
|
||||
p = subprocess.Popen(command.split(),stdout=subprocess.PIPE)
|
||||
p = subprocess.Popen(command.split(), stdout=subprocess.PIPE)
|
||||
tracked_files = p.stdout.read()
|
||||
else:
|
||||
tracked_files = ""
|
||||
@ -153,14 +151,14 @@ def update_documentation(data):
|
||||
if filename.endswith('.irp.f'):
|
||||
# Search for providers, subroutines and functions in each file using
|
||||
# the tags file
|
||||
search = "\t"+filename+"\t"
|
||||
search = "\t" + filename + "\t"
|
||||
tmp = filter(lambda line: search in line, tags)
|
||||
|
||||
# Search for the documentation in the IRPF90_man directory
|
||||
for item in tmp :
|
||||
for item in tmp:
|
||||
item, _, line = item.strip().split('\t')
|
||||
doc = extract_doc(item)
|
||||
items.append( (item, filename, doc, line) )
|
||||
items.append((item, filename, doc, line))
|
||||
|
||||
dirname = os.path.basename(os.getcwd())
|
||||
# Write the documentation in the README
|
||||
@ -169,7 +167,7 @@ def update_documentation(data):
|
||||
documentation = Doc_key + header
|
||||
url = URL
|
||||
for item, filename, doc, line in items:
|
||||
documentation += template%locals()
|
||||
documentation += template % locals()
|
||||
documentation += '\n\n'
|
||||
|
||||
has_doc = False
|
||||
@ -187,30 +185,34 @@ def update_documentation(data):
|
||||
def git_add():
|
||||
"""Executes:
|
||||
git add README.rst
|
||||
if git is present on the machine."""
|
||||
command = "git add "+README
|
||||
os.system(command+" &> /dev/null")
|
||||
throw an error if git is not precent"""
|
||||
|
||||
import subprocess
|
||||
|
||||
try:
|
||||
# pipe output to /dev/null for silence
|
||||
null = open("/dev/null", "w")
|
||||
subprocess.Popen("git add README.rst", stdout=null, stderr=null)
|
||||
null.close()
|
||||
|
||||
except OSError:
|
||||
raise
|
||||
|
||||
|
||||
def main():
|
||||
if not has_git:
|
||||
return
|
||||
data = fetch_splitted_data()
|
||||
data = update_assumptions(data)
|
||||
data = update_documentation(data)
|
||||
data = update_needed(data)
|
||||
output = ''.join(data)
|
||||
|
||||
file = open(README,'w')
|
||||
file.write(output)
|
||||
file.close()
|
||||
with open(README, 'w') as f:
|
||||
f.write(output)
|
||||
|
||||
git_add()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
main()
|
||||
except:
|
||||
git_add()
|
||||
except OSError:
|
||||
pass
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
@ -50,16 +50,6 @@ then
|
||||
fi
|
||||
|
||||
|
||||
echo "${BLUE}===== Installing EZFIO ===== ${BLACK}"
|
||||
${QPACKAGE_ROOT}/scripts/install_ezfio.sh | tee install_ezfio.log
|
||||
|
||||
if [[ ! -d ${QPACKAGE_ROOT}/EZFIO ]]
|
||||
then
|
||||
echo $RED "Error in EZFIO installation" $BLACK
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
echo "${BLUE}===== Installing Zlib ===== ${BLACK}"
|
||||
${QPACKAGE_ROOT}/scripts/install_zlib.sh | tee install_zlib.log
|
||||
|
||||
|
@ -50,21 +50,65 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`ao_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/ao_overlap.irp.f#L1>`_
|
||||
Overlap between atomic basis functions:
|
||||
:math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||
|
||||
`ao_overlap_abs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/ao_overlap.irp.f#L65>`_
|
||||
Overlap between absolute value of atomic basis functions:
|
||||
:math:`\int |\chi_i(r)| |\chi_j(r)| dr)`
|
||||
|
||||
`ao_overlap_x <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/ao_overlap.irp.f#L2>`_
|
||||
Overlap between atomic basis functions:
|
||||
:math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||
|
||||
`ao_overlap_y <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/ao_overlap.irp.f#L3>`_
|
||||
Overlap between atomic basis functions:
|
||||
:math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||
|
||||
`ao_overlap_z <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/ao_overlap.irp.f#L4>`_
|
||||
Overlap between atomic basis functions:
|
||||
:math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||
|
||||
`ao_coef <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L21>`_
|
||||
Coefficients, exponents and powers of x,y and z
|
||||
ao_coef(i,j) = coefficient of the jth primitive on the ith ao
|
||||
|
||||
`ao_coef_transp <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L96>`_
|
||||
`ao_coef_transp <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L157>`_
|
||||
Transposed ao_coef and ao_expo
|
||||
|
||||
`ao_coef_unnormalized <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L116>`_
|
||||
Coefficients, exponents and powers of x,y and z as in the EZFIO file
|
||||
ao_coef(i,j) = coefficient of the jth primitive on the ith ao
|
||||
ao_l = l value of the AO: a+b+c in x^a y^b z^c
|
||||
|
||||
`ao_expo <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L20>`_
|
||||
Coefficients, exponents and powers of x,y and z
|
||||
ao_coef(i,j) = coefficient of the jth primitive on the ith ao
|
||||
|
||||
`ao_expo_transp <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L97>`_
|
||||
`ao_expo_transp <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L158>`_
|
||||
Transposed ao_coef and ao_expo
|
||||
|
||||
`ao_nucl <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L146>`_
|
||||
`ao_expo_unsorted <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L117>`_
|
||||
Coefficients, exponents and powers of x,y and z as in the EZFIO file
|
||||
ao_coef(i,j) = coefficient of the jth primitive on the ith ao
|
||||
ao_l = l value of the AO: a+b+c in x^a y^b z^c
|
||||
|
||||
`ao_l <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L118>`_
|
||||
Coefficients, exponents and powers of x,y and z as in the EZFIO file
|
||||
ao_coef(i,j) = coefficient of the jth primitive on the ith ao
|
||||
ao_l = l value of the AO: a+b+c in x^a y^b z^c
|
||||
|
||||
`ao_l_char <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L119>`_
|
||||
Coefficients, exponents and powers of x,y and z as in the EZFIO file
|
||||
ao_coef(i,j) = coefficient of the jth primitive on the ith ao
|
||||
ao_l = l value of the AO: a+b+c in x^a y^b z^c
|
||||
|
||||
`ao_l_char_space <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L309>`_
|
||||
Undocumented
|
||||
|
||||
`ao_md5 <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L400>`_
|
||||
MD5 key characteristic of the AO basis
|
||||
|
||||
`ao_nucl <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L207>`_
|
||||
Index of the nuclei on which the ao is centered
|
||||
|
||||
`ao_num <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L1>`_
|
||||
@ -75,16 +119,37 @@ Documentation
|
||||
|
||||
`ao_power <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L19>`_
|
||||
Coefficients, exponents and powers of x,y and z
|
||||
ao_coef(i,j) = coefficient of the jth primitive on the ith ao
|
||||
|
||||
`ao_prim_num <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L114>`_
|
||||
`ao_prim_num <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L175>`_
|
||||
Number of primitives per atomic orbital
|
||||
|
||||
`ao_prim_num_max <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L136>`_
|
||||
`ao_prim_num_max <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L197>`_
|
||||
Undocumented
|
||||
|
||||
`ao_prim_num_max_align <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L137>`_
|
||||
`ao_prim_num_max_align <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L198>`_
|
||||
Undocumented
|
||||
|
||||
`l_to_charater <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L216>`_
|
||||
character corresponding to the "L" value of an AO orbital
|
||||
|
||||
`n_aos_max <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L229>`_
|
||||
Number of AOs per atom
|
||||
|
||||
`nucl_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L242>`_
|
||||
List of AOs attached on each atom
|
||||
|
||||
`nucl_list_shell_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L260>`_
|
||||
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
|
||||
|
||||
`nucl_n_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L228>`_
|
||||
Number of AOs per atom
|
||||
|
||||
`nucl_num_shell_aos <http://github.com/LCPQ/quantum_package/tree/master/src/AOs/aos.irp.f#L261>`_
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
@ -7,26 +7,26 @@ ezfio_name: direct
|
||||
|
||||
[disk_access_mo_integrals]
|
||||
type: Disk_access
|
||||
doc: Write, Read, None for MO integrals from disk (EZFIO folder)
|
||||
doc: Read/Write MO integrals from/to disk [ Write | Read | None ]
|
||||
interface: input
|
||||
default: None
|
||||
|
||||
[disk_access_ao_integrals]
|
||||
type: Disk_access
|
||||
doc: Write or Read or None for AO integrals from disk (EZFIO folder)
|
||||
doc: Read/Write AO integrals from/to disk [ Write | Read | None ]
|
||||
interface: input
|
||||
default: None
|
||||
|
||||
[ao_integrals_threshold]
|
||||
type: Threshold
|
||||
doc: If <pq|rs> < ao_integrals_threshold then <pq|rs> is null
|
||||
doc: If |<pq|rs>| < ao_integrals_threshold then <pq|rs> is zero
|
||||
interface: input
|
||||
default: 1.e-15
|
||||
ezfio_name: threshold_ao
|
||||
|
||||
[mo_integrals_threshold]
|
||||
type: Threshold
|
||||
doc: If <ij|kl> < ao_integrals_threshold then <pq|rs> is null
|
||||
doc: If |<ij|kl>| < ao_integrals_threshold then <pq|rs> is zero
|
||||
interface: input
|
||||
default: 1.e-15
|
||||
ezfio_name: threshold_mo
|
@ -32,152 +32,193 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`ao_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L1>`_
|
||||
`ao_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L1>`_
|
||||
integral of the AO basis <ik|jl> or (ij|kl)
|
||||
i(r1) j(r1) 1/r12 k(r2) l(r2)
|
||||
|
||||
`ao_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L350>`_
|
||||
Needed to compuet Schwartz inequalities
|
||||
`ao_bielec_integral_schwartz <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L490>`_
|
||||
Needed to compute Schwartz inequalities
|
||||
|
||||
`ao_bielec_integrals_in_map <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L188>`_
|
||||
`ao_bielec_integral_schwartz_accel <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L107>`_
|
||||
integral of the AO basis <ik|jl> or (ij|kl)
|
||||
i(r1) j(r1) 1/r12 k(r2) l(r2)
|
||||
|
||||
`ao_bielec_integrals_in_map <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L322>`_
|
||||
Map of Atomic integrals
|
||||
i(r1) j(r2) 1/r12 k(r1) l(r2)
|
||||
|
||||
`compute_ao_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L147>`_
|
||||
`ao_l4 <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L279>`_
|
||||
Computes the product of l values of i,j,k,and l
|
||||
|
||||
`compute_ao_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L290>`_
|
||||
Compute AO 1/r12 integrals for all i and fixed j,k,l
|
||||
|
||||
`eri <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L511>`_
|
||||
`eri <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L653>`_
|
||||
ATOMIC PRIMTIVE bielectronic integral between the 4 primitives ::
|
||||
primitive_1 = x1**(a_x) y1**(a_y) z1**(a_z) exp(-alpha * r1**2)
|
||||
primitive_2 = x1**(b_x) y1**(b_y) z1**(b_z) exp(- beta * r1**2)
|
||||
primitive_3 = x2**(c_x) y2**(c_y) z2**(c_z) exp(-delta * r2**2)
|
||||
primitive_4 = x2**(d_x) y2**(d_y) z2**(d_z) exp(- gama * r2**2)
|
||||
|
||||
`general_primitive_integral <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L376>`_
|
||||
`general_primitive_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L515>`_
|
||||
Computes the integral <pq|rs> where p,q,r,s are Gaussian primitives
|
||||
|
||||
`give_polynom_mult_center_x <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L656>`_
|
||||
`give_polynom_mult_center_x <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L851>`_
|
||||
subroutine that returns the explicit polynom in term of the "t"
|
||||
variable of the following polynomw :
|
||||
I_x1(a_x, d_x,p,q) * I_x1(a_y, d_y,p,q) * I_x1(a_z, d_z,p,q)
|
||||
|
||||
`i_x1_new <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L600>`_
|
||||
`i_x1_new <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L772>`_
|
||||
recursive function involved in the bielectronic integral
|
||||
|
||||
`i_x1_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L719>`_
|
||||
`i_x1_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L914>`_
|
||||
recursive function involved in the bielectronic integral
|
||||
|
||||
`i_x1_pol_mult_a1 <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L839>`_
|
||||
`i_x1_pol_mult_a1 <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L1034>`_
|
||||
recursive function involved in the bielectronic integral
|
||||
|
||||
`i_x1_pol_mult_a2 <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L893>`_
|
||||
`i_x1_pol_mult_a2 <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L1088>`_
|
||||
recursive function involved in the bielectronic integral
|
||||
|
||||
`i_x1_pol_mult_recurs <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L753>`_
|
||||
`i_x1_pol_mult_recurs <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L948>`_
|
||||
recursive function involved in the bielectronic integral
|
||||
|
||||
`i_x2_new <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L623>`_
|
||||
`i_x2_new <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L807>`_
|
||||
recursive function involved in the bielectronic integral
|
||||
|
||||
`i_x2_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L955>`_
|
||||
`i_x2_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L1150>`_
|
||||
recursive function involved in the bielectronic integral
|
||||
|
||||
`integrale_new <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L555>`_
|
||||
`integrale_new <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L698>`_
|
||||
calculate the integral of the polynom ::
|
||||
I_x1(a_x+b_x, c_x+d_x,p,q) * I_x1(a_y+b_y, c_y+d_y,p,q) * I_x1(a_z+b_z, c_z+d_z,p,q)
|
||||
between ( 0 ; 1)
|
||||
|
||||
`n_pt_sup <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/ao_bi_integrals.irp.f#L642>`_
|
||||
Returns the upper boundary of the degree of the polynom involved in the
|
||||
`n_pt_sup <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/ao_bi_integrals.irp.f#L837>`_
|
||||
Returns the upper boundary of the degree of the polynomial involved in the
|
||||
bielctronic integral :
|
||||
Ix(a_x,b_x,c_x,d_x) * Iy(a_y,b_y,c_y,d_y) * Iz(a_z,b_z,c_z,d_z)
|
||||
|
||||
`gauleg <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/gauss_legendre.irp.f#L20>`_
|
||||
`gauleg <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/gauss_legendre.irp.f#L29>`_
|
||||
Gauss-Legendre
|
||||
|
||||
`gauleg_t2 <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/gauss_legendre.irp.f#L1>`_
|
||||
`gauleg_t2 <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/gauss_legendre.irp.f#L10>`_
|
||||
t_w(i,1,k) = w(i)
|
||||
t_w(i,2,k) = t(i)
|
||||
|
||||
`gauleg_w <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/gauss_legendre.irp.f#L2>`_
|
||||
`gauleg_w <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/gauss_legendre.irp.f#L11>`_
|
||||
t_w(i,1,k) = w(i)
|
||||
t_w(i,2,k) = t(i)
|
||||
|
||||
`ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L6>`_
|
||||
`n_pt_max_integrals_16 <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/gauss_legendre.irp.f#L1>`_
|
||||
Aligned n_pt_max_integrals
|
||||
|
||||
`ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L6>`_
|
||||
AO integrals
|
||||
|
||||
`bielec_integrals_index <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L17>`_
|
||||
`bielec_integrals_index <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L19>`_
|
||||
Undocumented
|
||||
|
||||
`clear_ao_map <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L128>`_
|
||||
`bielec_integrals_index_reverse <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L36>`_
|
||||
Undocumented
|
||||
|
||||
`clear_ao_map <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L223>`_
|
||||
Frees the memory of the AO map
|
||||
|
||||
`clear_mo_map <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L285>`_
|
||||
`clear_mo_map <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L399>`_
|
||||
Frees the memory of the MO map
|
||||
|
||||
`get_ao_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L33>`_
|
||||
`get_ao_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L113>`_
|
||||
Gets one AO bi-electronic integral from the AO map
|
||||
|
||||
`get_ao_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L51>`_
|
||||
`get_ao_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L137>`_
|
||||
Gets multiple AO bi-electronic integral from the AO map .
|
||||
All i are retrieved for j,k,l fixed.
|
||||
|
||||
`get_ao_bielec_integrals_non_zero <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L84>`_
|
||||
`get_ao_bielec_integrals_non_zero <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L172>`_
|
||||
Gets multiple AO bi-electronic integral from the AO map .
|
||||
All non-zero i are retrieved for j,k,l fixed.
|
||||
|
||||
`get_ao_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L120>`_
|
||||
`get_ao_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L214>`_
|
||||
Returns the number of elements in the AO map
|
||||
|
||||
`get_mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L184>`_
|
||||
`get_mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L281>`_
|
||||
Returns one integral <ij|kl> in the MO basis
|
||||
|
||||
`get_mo_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L213>`_
|
||||
`get_mo_bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L310>`_
|
||||
Returns multiple integrals <ij|kl> in the MO basis, all
|
||||
i for j,k,l fixed.
|
||||
|
||||
`get_mo_bielec_integrals_existing_ik <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L235>`_
|
||||
`get_mo_bielec_integrals_existing_ik <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L341>`_
|
||||
Returns multiple integrals <ij|kl> in the MO basis, all
|
||||
i(1)j(1) 1/r12 k(2)l(2)
|
||||
i for j,k,l fixed.
|
||||
|
||||
`get_mo_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L277>`_
|
||||
`get_mo_map_size <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L391>`_
|
||||
Return the number of elements in the MO map
|
||||
|
||||
`insert_into_ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L153>`_
|
||||
`insert_into_ao_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L250>`_
|
||||
Create new entry into AO map
|
||||
|
||||
`insert_into_mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L168>`_
|
||||
`insert_into_mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L265>`_
|
||||
Create new entry into MO map, or accumulate in an existing entry
|
||||
|
||||
`mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L201>`_
|
||||
`mo_bielec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L298>`_
|
||||
Returns one integral <ij|kl> in the MO basis
|
||||
|
||||
`mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/map_integrals.irp.f#L142>`_
|
||||
`mo_integrals_map <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/map_integrals.irp.f#L237>`_
|
||||
MO integrals
|
||||
|
||||
`add_integrals_to_map <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/mo_bi_integrals.irp.f#L40>`_
|
||||
`add_integrals_to_map <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/mo_bi_integrals.irp.f#L42>`_
|
||||
Adds integrals to tha MO map according to some bitmask
|
||||
|
||||
`mo_bielec_integral_jj <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/mo_bi_integrals.irp.f#L314>`_
|
||||
`mo_bielec_integral_jj <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/mo_bi_integrals.irp.f#L464>`_
|
||||
mo_bielec_integral_jj(i,j) = J_ij
|
||||
mo_bielec_integral_jj_exchange(i,j) = J_ij
|
||||
mo_bielec_integral_jj_exchange(i,j) = K_ij
|
||||
mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij
|
||||
|
||||
`mo_bielec_integral_jj_anti <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/mo_bi_integrals.irp.f#L316>`_
|
||||
`mo_bielec_integral_jj_anti <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/mo_bi_integrals.irp.f#L466>`_
|
||||
mo_bielec_integral_jj(i,j) = J_ij
|
||||
mo_bielec_integral_jj_exchange(i,j) = J_ij
|
||||
mo_bielec_integral_jj_exchange(i,j) = K_ij
|
||||
mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij
|
||||
|
||||
`mo_bielec_integral_jj_exchange <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/mo_bi_integrals.irp.f#L315>`_
|
||||
`mo_bielec_integral_jj_anti_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/mo_bi_integrals.irp.f#L326>`_
|
||||
mo_bielec_integral_jj_from_ao(i,j) = J_ij
|
||||
mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij
|
||||
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
|
||||
|
||||
`mo_bielec_integral_jj_exchange <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/mo_bi_integrals.irp.f#L465>`_
|
||||
mo_bielec_integral_jj(i,j) = J_ij
|
||||
mo_bielec_integral_jj_exchange(i,j) = J_ij
|
||||
mo_bielec_integral_jj_exchange(i,j) = K_ij
|
||||
mo_bielec_integral_jj_anti(i,j) = J_ij - K_ij
|
||||
|
||||
`mo_bielec_integrals_in_map <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/mo_bi_integrals.irp.f#L21>`_
|
||||
`mo_bielec_integral_jj_exchange_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/mo_bi_integrals.irp.f#L325>`_
|
||||
mo_bielec_integral_jj_from_ao(i,j) = J_ij
|
||||
mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij
|
||||
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
|
||||
|
||||
`mo_bielec_integral_jj_from_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/mo_bi_integrals.irp.f#L324>`_
|
||||
mo_bielec_integral_jj_from_ao(i,j) = J_ij
|
||||
mo_bielec_integral_jj_exchange_from_ao(i,j) = J_ij
|
||||
mo_bielec_integral_jj_anti_from_ao(i,j) = J_ij - K_ij
|
||||
|
||||
`mo_bielec_integrals_in_map <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/mo_bi_integrals.irp.f#L22>`_
|
||||
If True, the map of MO bielectronic integrals is provided
|
||||
|
||||
`mo_bielec_integrals_index <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts/mo_bi_integrals.irp.f#L1>`_
|
||||
`mo_bielec_integrals_index <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/mo_bi_integrals.irp.f#L1>`_
|
||||
Computes an unique index for i,j,k,l integrals
|
||||
|
||||
`read_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/read_write.irp.f#L1>`_
|
||||
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||
|
||||
`read_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/read_write.irp.f#L2>`_
|
||||
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||
|
||||
`write_ao_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/read_write.irp.f#L3>`_
|
||||
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||
|
||||
`write_mo_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals/read_write.irp.f#L4>`_
|
||||
One level of abstraction for disk_access_ao_integrals and disk_access_mo_integrals
|
||||
|
||||
|
||||
|
||||
|
@ -368,11 +368,11 @@ subroutine get_mo_bielec_integrals_existing_ik(j,l,sze,out_array,map)
|
||||
enddo
|
||||
|
||||
logical :: integral_is_in_map
|
||||
if (cache_key_kind == 8) then
|
||||
if (key_kind == 8) then
|
||||
call i8radix_sort(hash,iorder,kk,-1)
|
||||
else if (cache_key_kind == 4) then
|
||||
else if (key_kind == 4) then
|
||||
call iradix_sort(hash,iorder,kk,-1)
|
||||
else if (cache_key_kind == 2) then
|
||||
else if (key_kind == 2) then
|
||||
call i2radix_sort(hash,iorder,kk,-1)
|
||||
endif
|
||||
|
||||
|
@ -54,6 +54,24 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`is_a_two_holes_two_particles <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L206>`_
|
||||
Undocumented
|
||||
|
||||
`number_of_holes <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`number_of_holes_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L394>`_
|
||||
Undocumented
|
||||
|
||||
`number_of_particles <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L103>`_
|
||||
Undocumented
|
||||
|
||||
`number_of_particles_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmask_cas_routines.irp.f#L422>`_
|
||||
Undocumented
|
||||
|
||||
`cas_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L173>`_
|
||||
Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference)
|
||||
|
||||
`cis_ijkl_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L32>`_
|
||||
Bitmask to include all possible single excitations from Hartree-Fock
|
||||
|
||||
@ -61,23 +79,35 @@ Documentation
|
||||
Bitmask to include all possible MOs
|
||||
|
||||
`generators_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L100>`_
|
||||
Bitmasks for generator determinants. (N_int, alpha/beta, hole/particle, generator).
|
||||
Bitmasks for generator determinants.
|
||||
(N_int, alpha/beta, hole/particle, generator).
|
||||
.br
|
||||
3rd index is :
|
||||
.br
|
||||
* 1 : hole for single exc
|
||||
* 1 : particle for single exc
|
||||
.br
|
||||
* 2 : particle for single exc
|
||||
.br
|
||||
* 3 : hole for 1st exc of double
|
||||
.br
|
||||
* 4 : particle for 1st exc of double
|
||||
* 5 : hole for 2dn exc of double
|
||||
* 6 : particle for 2dn exc of double
|
||||
.br
|
||||
* 5 : hole for 2nd exc of double
|
||||
.br
|
||||
* 6 : particle for 2nd exc of double
|
||||
.br
|
||||
|
||||
`hf_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L44>`_
|
||||
Hartree Fock bit mask
|
||||
|
||||
`i_bitmask_gen <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L186>`_
|
||||
`i_bitmask_gen <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L211>`_
|
||||
Current bitmask for the generators
|
||||
|
||||
`i_bitmask_ref <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L194>`_
|
||||
Current bitmask for the reference
|
||||
`inact_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L193>`_
|
||||
Bitmasks for the inactive orbitals that are excited in post CAS method
|
||||
|
||||
`n_cas_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L143>`_
|
||||
Number of bitmasks for CAS
|
||||
|
||||
`n_generators_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L70>`_
|
||||
Number of bitmasks for generators
|
||||
@ -85,36 +115,31 @@ Documentation
|
||||
`n_int <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L3>`_
|
||||
Number of 64-bit integers needed to represent determinants as binary strings
|
||||
|
||||
`n_reference_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L134>`_
|
||||
Number of bitmasks for reference
|
||||
|
||||
`ref_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L62>`_
|
||||
Reference bit mask, used in Slater rules, chosen as Hartree-Fock bitmask
|
||||
|
||||
`reference_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L164>`_
|
||||
Bitmasks for reference determinants. (N_int, alpha/beta, hole/particle, reference)
|
||||
`virt_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks.irp.f#L194>`_
|
||||
Bitmasks for the inactive orbitals that are excited in post CAS method
|
||||
|
||||
`bitstring_to_hexa <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L95>`_
|
||||
`bitstring_to_hexa <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L98>`_
|
||||
Transform a bit string to a string in hexadecimal format for printing
|
||||
|
||||
`bitstring_to_list <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L1>`_
|
||||
Gives the inidices(+1) of the bits set to 1 in the bit string
|
||||
|
||||
`bitstring_to_str <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L62>`_
|
||||
`bitstring_to_str <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L65>`_
|
||||
Transform a bit string to a string for printing
|
||||
|
||||
`debug_det <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L117>`_
|
||||
Undocumented
|
||||
`debug_det <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L120>`_
|
||||
Subroutine to print the content of a determinant in '+-' notation and
|
||||
hexadecimal representation.
|
||||
|
||||
`list_to_bitstring <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L29>`_
|
||||
return the physical string "string(N_int,2)" from the array of occupations "list(N_int*bit_kind_size,2)
|
||||
list
|
||||
<== ipos ==>
|
||||
|
|
||||
v
|
||||
string :|------------------------|-------------------------|------------------------|
|
||||
<==== bit_kind_size ====> <==== bit_kind_size ====> <==== bit_kind_size ====>
|
||||
{ iint } { iint } { iint }
|
||||
Returns the physical string "string(N_int,2)" from the array of
|
||||
occupations "list(N_int*bit_kind_size,2)
|
||||
|
||||
`print_det <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask/bitmasks_routines.irp.f#L138>`_
|
||||
Subroutine to print the content of a determinant using the '+-' notation
|
||||
|
||||
|
||||
|
||||
|
@ -123,7 +123,6 @@ BEGIN_PROVIDER [ integer(bit_kind), generators_bitmask, (N_int,2,6,N_generators_
|
||||
|
||||
call ezfio_has_bitmasks_generators(exists)
|
||||
if (exists) then
|
||||
print*,'EXIST !!'
|
||||
call ezfio_get_bitmasks_generators(generators_bitmask)
|
||||
else
|
||||
integer :: k, ispin
|
||||
@ -181,7 +180,6 @@ BEGIN_PROVIDER [ integer(bit_kind), cas_bitmask, (N_int,2,N_cas_bitmask) ]
|
||||
PROVIDE ezfio_filename
|
||||
|
||||
call ezfio_has_bitmasks_cas(exists)
|
||||
print*,'exists = ',exists
|
||||
if (exists) then
|
||||
call ezfio_get_bitmasks_cas(cas_bitmask)
|
||||
else
|
||||
|
36
src/CAS_SD/EZFIO.cfg
Normal file
36
src/CAS_SD/EZFIO.cfg
Normal file
@ -0,0 +1,36 @@
|
||||
[N_det_max_cas_sd]
|
||||
type: Det_number_max
|
||||
doc: Max number of determinants in the wave function
|
||||
interface: input
|
||||
default: 10000
|
||||
|
||||
[do_pt2_end]
|
||||
type: logical
|
||||
doc: If true, compute the PT2 at the end of the selection
|
||||
interface: input
|
||||
default: True
|
||||
|
||||
[PT2_max]
|
||||
type: PT2_energy
|
||||
doc: The selection process stops when the largest PT2 (for all the state is lower
|
||||
than pt2_max in absolute value
|
||||
interface: input
|
||||
default: 0.0001
|
||||
|
||||
[var_pt2_ratio]
|
||||
type: Normalized_float
|
||||
doc: The selection process stops when the energy ratio variational/(variational+PT2)
|
||||
is equal to var_pt2_ratio
|
||||
interface: input
|
||||
default: 0.75
|
||||
|
||||
[energy]
|
||||
type: double precision
|
||||
doc: "Calculated CAS-SD energy"
|
||||
interface: output
|
||||
|
||||
[energy_pt2]
|
||||
type: double precision
|
||||
doc: "Calculated selected CAS-SD energy with PT2 correction"
|
||||
interface: output
|
||||
|
@ -2,11 +2,14 @@ use bitmasks
|
||||
BEGIN_SHELL [ /usr/bin/env python ]
|
||||
from generate_h_apply import *
|
||||
|
||||
s = H_apply("FCI")
|
||||
s = H_apply("CAS_SD")
|
||||
print s
|
||||
|
||||
s = H_apply("CAS_SD_selected")
|
||||
s.set_selection_pt2("epstein_nesbet_2x2")
|
||||
print s
|
||||
|
||||
s = H_apply("FCI_PT2")
|
||||
s = H_apply("CAS_SD_PT2")
|
||||
s.set_perturbation("epstein_nesbet_2x2")
|
||||
print s
|
||||
|
44
src/CAS_SD/README.rst
Normal file
44
src/CAS_SD/README.rst
Normal file
@ -0,0 +1,44 @@
|
||||
======================
|
||||
CAS_SD_selected Module
|
||||
======================
|
||||
|
||||
Selected CAS + SD module.
|
||||
|
||||
1) Set the different MO classes using the ``qp_set_mo_class`` command
|
||||
2) Run the selected CAS+SD program
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`full_ci <http://github.com/LCPQ/quantum_package/tree/master/src/CAS_SD/cas_sd_selected.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
|
||||
Needed Modules
|
||||
==============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Generators_CAS <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_CAS>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
|
@ -11,12 +11,12 @@ program full_ci
|
||||
|
||||
pt2 = 1.d0
|
||||
diag_algorithm = "Lapack"
|
||||
if (N_det > n_det_max_fci) then
|
||||
if (N_det > n_det_max_cas_sd) then
|
||||
call diagonalize_CI
|
||||
call save_wavefunction
|
||||
psi_det = psi_det_sorted
|
||||
psi_coef = psi_coef_sorted
|
||||
N_det = n_det_max_fci
|
||||
N_det = n_det_max_cas_sd
|
||||
soft_touch N_det psi_det psi_coef
|
||||
call diagonalize_CI
|
||||
call save_wavefunction
|
||||
@ -28,17 +28,17 @@ program full_ci
|
||||
print *, '-----'
|
||||
endif
|
||||
|
||||
do while (N_det < n_det_max_fci.and.maxval(abs(pt2(1:N_st))) > pt2_max)
|
||||
call H_apply_FCI(pt2, norm_pert, H_pert_diag, N_st)
|
||||
do while (N_det < n_det_max_cas_sd.and.maxval(abs(pt2(1:N_st))) > pt2_max)
|
||||
call H_apply_CAS_SD(pt2, norm_pert, H_pert_diag, N_st)
|
||||
|
||||
PROVIDE psi_coef
|
||||
PROVIDE psi_det
|
||||
PROVIDE psi_det_sorted
|
||||
|
||||
if (N_det > n_det_max_fci) then
|
||||
if (N_det > n_det_max_cas_sd) then
|
||||
psi_det = psi_det_sorted
|
||||
psi_coef = psi_coef_sorted
|
||||
N_det = n_det_max_fci
|
||||
N_det = n_det_max_cas_sd
|
||||
soft_touch N_det psi_det psi_coef
|
||||
endif
|
||||
call diagonalize_CI
|
||||
@ -60,7 +60,7 @@ program full_ci
|
||||
integer :: exc_max, degree_min
|
||||
exc_max = 0
|
||||
print *, 'CAS determinants : ', N_det_generators
|
||||
do i=1,N_det_generators
|
||||
do i=1,min(N_det_generators,10)
|
||||
do k=i,N_det_generators
|
||||
call get_excitation_degree(psi_det_generators(1,1,k),psi_det_generators(1,1,i),degree,N_int)
|
||||
exc_max = max(exc_max,degree)
|
87
src/CAS_SD/cas_sd_selected.irp.f
Normal file
87
src/CAS_SD/cas_sd_selected.irp.f
Normal file
@ -0,0 +1,87 @@
|
||||
program full_ci
|
||||
implicit none
|
||||
integer :: i,k
|
||||
|
||||
|
||||
double precision, allocatable :: pt2(:), norm_pert(:), H_pert_diag(:)
|
||||
integer :: N_st, degree
|
||||
N_st = N_states
|
||||
allocate (pt2(N_st), norm_pert(N_st),H_pert_diag(N_st))
|
||||
character*(64) :: perturbation
|
||||
PROVIDE N_det_cas
|
||||
|
||||
pt2 = 1.d0
|
||||
diag_algorithm = "Lapack"
|
||||
if (N_det > n_det_max_cas_sd) then
|
||||
call diagonalize_CI
|
||||
call save_wavefunction
|
||||
psi_det = psi_det_sorted
|
||||
psi_coef = psi_coef_sorted
|
||||
N_det = n_det_max_cas_sd
|
||||
soft_touch N_det psi_det psi_coef
|
||||
call diagonalize_CI
|
||||
call save_wavefunction
|
||||
print *, 'N_det = ', N_det
|
||||
print *, 'N_states = ', N_states
|
||||
print *, 'PT2 = ', pt2
|
||||
print *, 'E = ', CI_energy
|
||||
print *, 'E+PT2 = ', CI_energy+pt2
|
||||
print *, '-----'
|
||||
endif
|
||||
|
||||
do while (N_det < n_det_max_cas_sd.and.maxval(abs(pt2(1:N_st))) > pt2_max)
|
||||
call H_apply_CAS_SD_selected(pt2, norm_pert, H_pert_diag, N_st)
|
||||
|
||||
PROVIDE psi_coef
|
||||
PROVIDE psi_det
|
||||
PROVIDE psi_det_sorted
|
||||
|
||||
if (N_det > n_det_max_cas_sd) then
|
||||
psi_det = psi_det_sorted
|
||||
psi_coef = psi_coef_sorted
|
||||
N_det = n_det_max_cas_sd
|
||||
soft_touch N_det psi_det psi_coef
|
||||
endif
|
||||
call diagonalize_CI
|
||||
call save_wavefunction
|
||||
print *, 'N_det = ', N_det
|
||||
print *, 'N_states = ', N_states
|
||||
print *, 'PT2 = ', pt2
|
||||
print *, 'E = ', CI_energy
|
||||
print *, 'E+PT2 = ', CI_energy+pt2
|
||||
print *, '-----'
|
||||
call ezfio_set_full_ci_energy(CI_energy)
|
||||
if (abort_all) then
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
|
||||
! Check that it is a CAS-SD
|
||||
logical :: in_cas
|
||||
integer :: exc_max, degree_min
|
||||
exc_max = 0
|
||||
print *, 'CAS determinants : ', N_det_cas
|
||||
do i=1,min(N_det_cas,10)
|
||||
do k=i,N_det_cas
|
||||
call get_excitation_degree(psi_cas(1,1,k),psi_cas(1,1,i),degree,N_int)
|
||||
exc_max = max(exc_max,degree)
|
||||
enddo
|
||||
call debug_det(psi_cas(1,1,i),N_int)
|
||||
print *, ''
|
||||
enddo
|
||||
print *, 'Max excitation degree in the CAS :', exc_max
|
||||
do i=1,N_det
|
||||
in_cas = .False.
|
||||
degree_min = 1000
|
||||
do k=1,N_det_cas
|
||||
call get_excitation_degree(psi_cas(1,1,k),psi_det(1,1,i),degree,N_int)
|
||||
degree_min = min(degree_min,degree)
|
||||
enddo
|
||||
if (degree_min > 2) then
|
||||
print *, 'Error : This is not a CAS-SD : '
|
||||
print *, 'Excited determinant:', degree_min
|
||||
call debug_det(psi_det(1,1,k),N_int)
|
||||
stop
|
||||
endif
|
||||
enddo
|
||||
end
|
@ -1,5 +0,0 @@
|
||||
======================
|
||||
CAS_SD_selected Module
|
||||
======================
|
||||
|
||||
Selected CAS + SD module
|
@ -1,32 +0,0 @@
|
||||
BEGIN_SHELL [ /usr/bin/python ]
|
||||
from ezfio_with_default import EZFIO_Provider
|
||||
T = EZFIO_Provider()
|
||||
T.set_type ( "integer" )
|
||||
T.set_name ( "N_det_max_fci" )
|
||||
T.set_doc ( "Max number of determinants in the wave function" )
|
||||
T.set_ezfio_dir ( "full_ci" )
|
||||
T.set_ezfio_name( "N_det_max_fci" )
|
||||
T.set_output ( "output_full_ci" )
|
||||
print T
|
||||
|
||||
T.set_type ( "logical" )
|
||||
T.set_name ( "do_pt2_end" )
|
||||
T.set_doc ( "If true, compute the PT2 at the end of the selection" )
|
||||
T.set_ezfio_name( "do_pt2_end" )
|
||||
print T
|
||||
|
||||
T.set_type ( "double precision" )
|
||||
T.set_name ( "pt2_max" )
|
||||
T.set_doc ( """The selection process stops when the largest PT2 (for all the states)
|
||||
is lower than pt2_max in absolute value""" )
|
||||
T.set_ezfio_name( "pt2_max" )
|
||||
print T
|
||||
|
||||
T.set_type ( "double precision" )
|
||||
T.set_name ( "var_pt2_ratio" )
|
||||
T.set_doc ( """The selection process stops when the energy ratio variational/(variational+PT2)
|
||||
is equal to var_pt2_ratio""" )
|
||||
T.set_ezfio_name( "var_pt2_ratio" )
|
||||
print T
|
||||
END_SHELL
|
||||
|
@ -16,19 +16,20 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `SingleRefMethod <http://github.com/LCPQ/quantum_package/tree/master/src/SingleRefMethod>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
@ -20,20 +20,21 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `CISD <http://github.com/LCPQ/quantum_package/tree/master/src/CISD>`_
|
||||
* `SC2 <http://github.com/LCPQ/quantum_package/tree/master/src/SC2>`_
|
||||
* `CISD_selected <http://github.com/LCPQ/quantum_package/tree/master/src/CISD_selected>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `SingleRefMethod <http://github.com/LCPQ/quantum_package/tree/master/src/SingleRefMethod>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
|
@ -23,19 +23,21 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `CISD <http://github.com/LCPQ/quantum_package/tree/master/src/CISD>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `SingleRefMethod <http://github.com/LCPQ/quantum_package/tree/master/src/SingleRefMethod>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
|
||||
|
@ -32,17 +32,18 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `SingleRefMethod <http://github.com/LCPQ/quantum_package/tree/master/src/SingleRefMethod>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
|
||||
|
@ -16,19 +16,20 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `SingleRefMethod <http://github.com/LCPQ/quantum_package/tree/master/src/SingleRefMethod>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
@ -13,6 +13,7 @@ program cisd
|
||||
print *, 'E_corr = ',CI_electronic_energy(i) - ref_bitmask_energy
|
||||
enddo
|
||||
|
||||
call save_wavefunction
|
||||
! call CISD_SC2(psi_det,psi_coef,eigvalues,size(psi_coef,1),N_det,N_states,N_int)
|
||||
! do i = 1, N_states
|
||||
! print*,'eigvalues(i) = ',eigvalues(i)
|
||||
|
@ -1,6 +1,6 @@
|
||||
[N_det_max_cisd_sc2]
|
||||
type: Det_number_max
|
||||
doc: Get n_det_max_cisd_sc2 from EZFIO file
|
||||
doc: Max number of determinants
|
||||
interface: input
|
||||
default: 10000
|
||||
|
||||
@ -8,12 +8,12 @@ default: 10000
|
||||
type: logical
|
||||
doc: If true, compute the PT2 at the end of the selection
|
||||
interface: input
|
||||
default: true
|
||||
default: True
|
||||
|
||||
[PT2_max]
|
||||
type: PT2_energy
|
||||
doc: The selection process stops when the largest PT2 (for all the state) is lower
|
||||
than pt2_max in absolute value
|
||||
doc: The selection process stops when the largest PT2 (for all the states) is lower
|
||||
than abs(pt2_max)
|
||||
interface: input
|
||||
default: 0.0001
|
||||
|
||||
|
@ -8,6 +8,9 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`cisd_sc2_selected <http://github.com/LCPQ/quantum_package/tree/master/src/CISD_SC2_selected/cisd_sc2_selection.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
|
||||
Needed Modules
|
||||
@ -17,20 +20,21 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `CISD <http://github.com/LCPQ/quantum_package/tree/master/src/CISD>`_
|
||||
* `SC2 <http://github.com/LCPQ/quantum_package/tree/master/src/SC2>`_
|
||||
* `CISD_selected <http://github.com/LCPQ/quantum_package/tree/master/src/CISD_selected>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `SingleRefMethod <http://github.com/LCPQ/quantum_package/tree/master/src/SingleRefMethod>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
|
@ -14,6 +14,12 @@ Documentation
|
||||
`cisd <http://github.com/LCPQ/quantum_package/tree/master/src/CISD_selected/cisd_selection.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`n_det_max_cisd <http://github.com/LCPQ/quantum_package/tree/master/src/CISD_selected/options.irp.f#L1>`_
|
||||
Get n_det_max_cisd from EZFIO file
|
||||
|
||||
`pt2_max <http://github.com/LCPQ/quantum_package/tree/master/src/CISD_selected/options.irp.f#L18>`_
|
||||
Get pt2_max from EZFIO file
|
||||
|
||||
|
||||
|
||||
Needed Modules
|
||||
@ -23,19 +29,21 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `CISD <http://github.com/LCPQ/quantum_package/tree/master/src/CISD>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `SingleRefMethod <http://github.com/LCPQ/quantum_package/tree/master/src/SingleRefMethod>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
|
||||
|
@ -2,3 +2,38 @@
|
||||
DDCI_selected Module
|
||||
====================
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`full_ci <http://github.com/LCPQ/quantum_package/tree/master/src/DDCI_selected/ddci.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
|
||||
Needed Modules
|
||||
==============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Generators_CAS <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_CAS>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
subroutine $subroutine_diexc(key_in, hole_1,particl_1, hole_2, particl_2, i_generator, iproc $parameters )
|
||||
subroutine $subroutine_diexc(key_in, hole_1,particl_1, hole_2, particl_2, i_generator, iproc_in $parameters )
|
||||
use omp_lib
|
||||
use bitmasks
|
||||
implicit none
|
||||
@ -14,7 +14,7 @@ subroutine $subroutine_diexc(key_in, hole_1,particl_1, hole_2, particl_2, i_gene
|
||||
integer(bit_kind),allocatable :: keys_out(:,:,:)
|
||||
integer(bit_kind), intent(in) :: hole_1(N_int,2), particl_1(N_int,2)
|
||||
integer(bit_kind), intent(in) :: hole_2(N_int,2), particl_2(N_int,2)
|
||||
integer, intent(in) :: iproc
|
||||
integer, intent(in) :: iproc_in
|
||||
integer(bit_kind), allocatable :: hole_save(:,:)
|
||||
integer(bit_kind), allocatable :: key(:,:),hole(:,:), particle(:,:)
|
||||
integer(bit_kind), allocatable :: hole_tmp(:,:), particle_tmp(:,:)
|
||||
@ -30,6 +30,7 @@ subroutine $subroutine_diexc(key_in, hole_1,particl_1, hole_2, particl_2, i_gene
|
||||
integer, allocatable :: ia_ja_pairs(:,:,:)
|
||||
integer, allocatable :: ib_jb_pairs(:,:)
|
||||
double precision :: diag_H_mat_elem
|
||||
integer :: iproc
|
||||
integer(omp_lock_kind), save :: lck, ifirst=0
|
||||
if (ifirst == 0) then
|
||||
!$ call omp_init_lock(lck)
|
||||
@ -38,12 +39,13 @@ subroutine $subroutine_diexc(key_in, hole_1,particl_1, hole_2, particl_2, i_gene
|
||||
|
||||
logical :: check_double_excitation
|
||||
check_double_excitation = .True.
|
||||
|
||||
iproc = iproc_in
|
||||
|
||||
|
||||
$initialization
|
||||
|
||||
$omp_parallel
|
||||
!$ iproc = omp_get_thread_num()
|
||||
allocate (keys_out(N_int,2,size_max), hole_save(N_int,2), &
|
||||
key(N_int,2),hole(N_int,2), particle(N_int,2), hole_tmp(N_int,2),&
|
||||
particle_tmp(N_int,2), occ_particle(N_int*bit_kind_size,2), &
|
||||
@ -248,7 +250,7 @@ subroutine $subroutine_diexc(key_in, hole_1,particl_1, hole_2, particl_2, i_gene
|
||||
$finalization
|
||||
end
|
||||
|
||||
subroutine $subroutine_monoexc(key_in, hole_1,particl_1,i_generator,iproc $parameters )
|
||||
subroutine $subroutine_monoexc(key_in, hole_1,particl_1,i_generator,iproc_in $parameters )
|
||||
use omp_lib
|
||||
use bitmasks
|
||||
implicit none
|
||||
@ -262,7 +264,7 @@ subroutine $subroutine_monoexc(key_in, hole_1,particl_1,i_generator,iproc $param
|
||||
integer ,intent(in) :: i_generator
|
||||
integer(bit_kind),intent(in) :: key_in(N_int,2)
|
||||
integer(bit_kind),intent(in) :: hole_1(N_int,2), particl_1(N_int,2)
|
||||
integer, intent(in) :: iproc
|
||||
integer, intent(in) :: iproc_in
|
||||
integer(bit_kind),allocatable :: keys_out(:,:,:)
|
||||
integer(bit_kind),allocatable :: hole_save(:,:)
|
||||
integer(bit_kind),allocatable :: key(:,:),hole(:,:), particle(:,:)
|
||||
@ -281,8 +283,11 @@ subroutine $subroutine_monoexc(key_in, hole_1,particl_1,i_generator,iproc $param
|
||||
logical, allocatable :: array_pairs(:,:)
|
||||
double precision :: diag_H_mat_elem
|
||||
integer(omp_lock_kind), save :: lck, ifirst=0
|
||||
integer :: iproc
|
||||
|
||||
logical :: check_double_excitation
|
||||
iproc = iproc_in
|
||||
|
||||
check_double_excitation = .True.
|
||||
$check_double_excitation
|
||||
|
||||
@ -295,6 +300,7 @@ subroutine $subroutine_monoexc(key_in, hole_1,particl_1,i_generator,iproc $param
|
||||
$initialization
|
||||
|
||||
$omp_parallel
|
||||
!$ iproc = omp_get_thread_num()
|
||||
allocate (keys_out(N_int,2,size_max), hole_save(N_int,2), &
|
||||
key(N_int,2),hole(N_int,2), particle(N_int,2), hole_tmp(N_int,2),&
|
||||
particle_tmp(N_int,2), occ_particle(N_int*bit_kind_size,2), &
|
||||
@ -396,7 +402,8 @@ subroutine $subroutine($params_main)
|
||||
integer :: iproc
|
||||
|
||||
$initialization
|
||||
PROVIDE H_apply_buffer_allocated mo_bielec_integrals_in_map
|
||||
PROVIDE H_apply_buffer_allocated mo_bielec_integrals_in_map psi_det_generators psi_coef_generators
|
||||
|
||||
|
||||
nmax = mod( N_det_generators,nproc )
|
||||
|
||||
@ -406,6 +413,7 @@ subroutine $subroutine($params_main)
|
||||
|
||||
call wall_time(wall_0)
|
||||
|
||||
iproc = 0
|
||||
allocate( mask(N_int,2,6) )
|
||||
do i_generator=1,nmax
|
||||
|
||||
@ -443,12 +451,12 @@ subroutine $subroutine($params_main)
|
||||
call $subroutine_diexc(psi_det_generators(1,1,i_generator), &
|
||||
mask(1,1,d_hole1), mask(1,1,d_part1), &
|
||||
mask(1,1,d_hole2), mask(1,1,d_part2), &
|
||||
i_generator, 0 $params_post)
|
||||
i_generator, iproc $params_post)
|
||||
endif
|
||||
if($do_mono_excitations)then
|
||||
call $subroutine_monoexc(psi_det_generators(1,1,i_generator), &
|
||||
mask(1,1,s_hole ), mask(1,1,s_part ), &
|
||||
i_generator, 0 $params_post)
|
||||
i_generator, iproc $params_post)
|
||||
endif
|
||||
call wall_time(wall_1)
|
||||
$printout_always
|
||||
@ -463,7 +471,6 @@ subroutine $subroutine($params_main)
|
||||
!$OMP PARALLEL DEFAULT(SHARED) &
|
||||
!$OMP PRIVATE(i_generator,wall_1,wall_0,ispin,k,mask,iproc)
|
||||
call wall_time(wall_0)
|
||||
iproc = 0
|
||||
!$ iproc = omp_get_thread_num()
|
||||
allocate( mask(N_int,2,6) )
|
||||
!$OMP DO SCHEDULE(dynamic,1)
|
||||
|
@ -33,11 +33,10 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
@ -50,18 +49,23 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`copy_h_apply_buffer_to_wf <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/H_apply.irp.f#L95>`_
|
||||
`copy_h_apply_buffer_to_wf <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/H_apply.irp.f#L100>`_
|
||||
Copies the H_apply buffer to psi_coef. You need to touch psi_det, psi_coef and N_det
|
||||
after calling this function.
|
||||
After calling this subroutine, N_det, psi_det and psi_coef need to be touched
|
||||
|
||||
`fill_h_apply_buffer_no_selection <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/H_apply.irp.f#L181>`_
|
||||
`fill_h_apply_buffer_no_selection <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/H_apply.irp.f#L187>`_
|
||||
Fill the H_apply buffer with determiants for CISD
|
||||
|
||||
`h_apply_buffer_allocated <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/H_apply.irp.f#L14>`_
|
||||
`h_apply_buffer_allocated <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/H_apply.irp.f#L15>`_
|
||||
Buffer of determinants/coefficients/perturbative energy for H_apply.
|
||||
Uninitialized. Filled by H_apply subroutines.
|
||||
|
||||
`resize_h_apply_buffer <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/H_apply.irp.f#L45>`_
|
||||
`h_apply_buffer_lock <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/H_apply.irp.f#L16>`_
|
||||
Buffer of determinants/coefficients/perturbative energy for H_apply.
|
||||
Uninitialized. Filled by H_apply subroutines.
|
||||
|
||||
`resize_h_apply_buffer <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/H_apply.irp.f#L48>`_
|
||||
Undocumented
|
||||
|
||||
`cisd_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/SC2.irp.f#L1>`_
|
||||
@ -80,26 +84,43 @@ Documentation
|
||||
.br
|
||||
Initial guess vectors are not necessarily orthonormal
|
||||
|
||||
`repeat_excitation <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/SC2.irp.f#L220>`_
|
||||
`connected_to_ref <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L155>`_
|
||||
Undocumented
|
||||
|
||||
`connected_to_ref <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L95>`_
|
||||
`connected_to_ref_by_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L253>`_
|
||||
Undocumented
|
||||
|
||||
`det_is_not_or_may_be_in_ref <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L191>`_
|
||||
`det_is_not_or_may_be_in_ref <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L359>`_
|
||||
If true, det is not in ref
|
||||
If false, det may be in ref
|
||||
|
||||
`is_in_wavefunction <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L1>`_
|
||||
Undocumented
|
||||
`det_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L1>`_
|
||||
Return an integer*8 corresponding to a determinant index for searching
|
||||
|
||||
`key_pattern_not_in_ref <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L225>`_
|
||||
`get_index_in_psi_det_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L48>`_
|
||||
Returns the index of the determinant in the ``psi_det_sorted_bit`` array
|
||||
|
||||
`is_in_wavefunction <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L34>`_
|
||||
True if the determinant ``det`` is in the wave function
|
||||
|
||||
`key_pattern_not_in_ref <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L393>`_
|
||||
Min and max values of the integers of the keys of the reference
|
||||
|
||||
`davidson_converged <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L383>`_
|
||||
`occ_pattern_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/connected_to_ref.irp.f#L17>`_
|
||||
Return an integer*8 corresponding to a determinant index for searching
|
||||
|
||||
`do_mono_excitation <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/create_excitations.irp.f#L1>`_
|
||||
Apply the mono excitation operator : a^{dager}_(i_particle) a_(i_hole) of spin = ispin
|
||||
on key_in
|
||||
ispin = 1 == alpha
|
||||
ispin = 2 == beta
|
||||
i_ok = 1 == the excitation is possible
|
||||
i_ok = -1 == the excitation is not possible
|
||||
|
||||
`davidson_converged <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L382>`_
|
||||
True if the Davidson algorithm is converged
|
||||
|
||||
`davidson_criterion <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L373>`_
|
||||
`davidson_criterion <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L372>`_
|
||||
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
|
||||
|
||||
`davidson_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L18>`_
|
||||
@ -146,10 +167,10 @@ Documentation
|
||||
`davidson_sze_max <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L9>`_
|
||||
Max number of Davidson sizes
|
||||
|
||||
`davidson_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L374>`_
|
||||
`davidson_threshold <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/davidson.irp.f#L373>`_
|
||||
Can be : [ energy | residual | both | wall_time | cpu_time | iterations ]
|
||||
|
||||
`one_body_dm_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L73>`_
|
||||
`one_body_dm_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L164>`_
|
||||
One-body density matrix
|
||||
|
||||
`one_body_dm_mo_alpha <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L1>`_
|
||||
@ -158,63 +179,162 @@ Documentation
|
||||
`one_body_dm_mo_beta <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L2>`_
|
||||
Alpha and beta one-body density matrix for each state
|
||||
|
||||
`save_natural_mos <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L97>`_
|
||||
`one_body_single_double_dm_mo_alpha <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L80>`_
|
||||
Alpha and beta one-body density matrix for each state
|
||||
|
||||
`one_body_single_double_dm_mo_beta <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L81>`_
|
||||
Alpha and beta one-body density matrix for each state
|
||||
|
||||
`one_body_spin_density_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L172>`_
|
||||
rho(alpha) - rho(beta)
|
||||
|
||||
`save_natural_mos <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L196>`_
|
||||
Save natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
|
||||
|
||||
`set_natural_mos <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L81>`_
|
||||
`set_natural_mos <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L180>`_
|
||||
Set natural orbitals, obtained by diagonalization of the one-body density matrix in the MO basis
|
||||
|
||||
`state_average_weight <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L108>`_
|
||||
`state_average_weight <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/density_matrix.irp.f#L207>`_
|
||||
Weights in the state-average calculation of the density matrix
|
||||
|
||||
`det_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L295>`_
|
||||
Return an integer*8 corresponding to a determinant index for searching
|
||||
`det_svd <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/det_svd.irp.f#L1>`_
|
||||
Computes the SVD of the Alpha x Beta determinant coefficient matrix
|
||||
|
||||
`create_wf_of_psi_svd_matrix <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L741>`_
|
||||
Matrix of wf coefficients. Outer product of alpha and beta determinants
|
||||
|
||||
`filter_3_highest_electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L552>`_
|
||||
Returns a determinant with only the 3 highest electrons
|
||||
|
||||
`generate_all_alpha_beta_det_products <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L796>`_
|
||||
Create a wave function from all possible alpha x beta determinants
|
||||
|
||||
`int_of_3_highest_electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L517>`_
|
||||
Returns an integer*8 as :
|
||||
.br
|
||||
|_<--- 21 bits ---><--- 21 bits ---><--- 21 bits --->|
|
||||
.br
|
||||
|0<--- i1 ---><--- i2 ---><--- i3 --->|
|
||||
.br
|
||||
It encodes the value of the indices of the 3 highest MOs
|
||||
in descending order
|
||||
.br
|
||||
|
||||
`max_degree_exc <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L32>`_
|
||||
Maximum degree of excitation in the wf
|
||||
|
||||
`n_det <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L3>`_
|
||||
Number of determinants in the wave function
|
||||
|
||||
`psi_average_norm_contrib <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L208>`_
|
||||
`n_det_alpha_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L348>`_
|
||||
Unique alpha determinants
|
||||
|
||||
`n_det_beta_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L385>`_
|
||||
Unique beta determinants
|
||||
|
||||
`psi_average_norm_contrib <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L276>`_
|
||||
Contribution of determinants to the state-averaged density
|
||||
|
||||
`psi_average_norm_contrib_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L229>`_
|
||||
`psi_average_norm_contrib_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L432>`_
|
||||
Wave function sorted by determinants contribution to the norm (state-averaged)
|
||||
|
||||
`psi_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L153>`_
|
||||
`psi_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L230>`_
|
||||
The wave function coefficients. Initialized with Hartree-Fock if the EZFIO file
|
||||
is empty
|
||||
|
||||
`psi_coef_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L228>`_
|
||||
`psi_coef_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L431>`_
|
||||
Wave function sorted by determinants contribution to the norm (state-averaged)
|
||||
|
||||
`psi_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L259>`_
|
||||
Determinants on which we apply <i|H|psi> for perturbation.
|
||||
o They are sorted by determinants interpreted as integers. Useful
|
||||
to accelerate the search of a determinant
|
||||
`psi_coef_sorted_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L579>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
`psi_det <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L53>`_
|
||||
`psi_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L462>`_
|
||||
Determinants on which we apply <i|H|psi> for perturbation.
|
||||
They are sorted by determinants interpreted as integers. Useful
|
||||
to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
`psi_det <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L65>`_
|
||||
The wave function determinants. Initialized with Hartree-Fock if the EZFIO file
|
||||
is empty
|
||||
|
||||
`psi_det_size <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L35>`_
|
||||
`psi_det_alpha <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L319>`_
|
||||
List of alpha determinants of psi_det
|
||||
|
||||
`psi_det_alpha_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L347>`_
|
||||
Unique alpha determinants
|
||||
|
||||
`psi_det_beta <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L333>`_
|
||||
List of beta determinants of psi_det
|
||||
|
||||
`psi_det_beta_unique <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L384>`_
|
||||
Unique beta determinants
|
||||
|
||||
`psi_det_size <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L47>`_
|
||||
Size of the psi_det/psi_coef arrays
|
||||
|
||||
`psi_det_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L227>`_
|
||||
`psi_det_sorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L430>`_
|
||||
Wave function sorted by determinants contribution to the norm (state-averaged)
|
||||
|
||||
`psi_det_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L258>`_
|
||||
Determinants on which we apply <i|H|psi> for perturbation.
|
||||
o They are sorted by determinants interpreted as integers. Useful
|
||||
to accelerate the search of a determinant
|
||||
`psi_det_sorted_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L578>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
`read_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L104>`_
|
||||
`psi_det_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L461>`_
|
||||
Determinants on which we apply <i|H|psi> for perturbation.
|
||||
They are sorted by determinants interpreted as integers. Useful
|
||||
to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
`psi_det_sorted_next_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L580>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
`psi_svd_alpha <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L826>`_
|
||||
SVD wave function
|
||||
|
||||
`psi_svd_beta <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L827>`_
|
||||
SVD wave function
|
||||
|
||||
`psi_svd_coefs <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L828>`_
|
||||
SVD wave function
|
||||
|
||||
`psi_svd_matrix <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L709>`_
|
||||
Matrix of wf coefficients. Outer product of alpha and beta determinants
|
||||
|
||||
`read_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L880>`_
|
||||
Reads the determinants from the EZFIO file
|
||||
|
||||
`save_wavefunction <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L310>`_
|
||||
`save_wavefunction <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L927>`_
|
||||
Save the wave function into the EZFIO file
|
||||
|
||||
`save_wavefunction_general <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L319>`_
|
||||
`save_wavefunction_general <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L946>`_
|
||||
Save the wave function into the EZFIO file
|
||||
|
||||
`save_wavefunction_unsorted <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L937>`_
|
||||
Save the wave function into the EZFIO file
|
||||
|
||||
`sort_dets_by_3_highest_electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L600>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
`sort_dets_by_det_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L475>`_
|
||||
Determinants are sorted are sorted according to their det_search_key.
|
||||
Useful to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
`spin_det_search_key <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants.irp.f#L303>`_
|
||||
Return an integer*8 corresponding to a determinant index for searching
|
||||
|
||||
`double_exc_bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/determinants_bitmasks.irp.f#L40>`_
|
||||
double_exc_bitmask(:,1,i) is the bitmask for holes of excitation 1
|
||||
double_exc_bitmask(:,2,i) is the bitmask for particles of excitation 1
|
||||
@ -233,10 +353,13 @@ Documentation
|
||||
single_exc_bitmask(:,2,i) is the bitmask for particles
|
||||
for a given couple of hole/particle excitations i.
|
||||
|
||||
`ci_eigenvectors <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI.irp.f#L36>`_
|
||||
`ci_eigenvectors <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI.irp.f#L37>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`ci_electronic_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI.irp.f#L35>`_
|
||||
`ci_eigenvectors_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI.irp.f#L38>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`ci_electronic_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI.irp.f#L36>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`ci_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI.irp.f#L18>`_
|
||||
@ -245,7 +368,7 @@ Documentation
|
||||
`diag_algorithm <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI.irp.f#L1>`_
|
||||
Diagonalization algorithm (Davidson or Lapack)
|
||||
|
||||
`diagonalize_ci <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI.irp.f#L73>`_
|
||||
`diagonalize_ci <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI.irp.f#L96>`_
|
||||
Replace the coefficients of the CI states by the coefficients of the
|
||||
eigenstates of the CI matrix
|
||||
|
||||
@ -256,15 +379,31 @@ Documentation
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`ci_sc2_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI_SC2.irp.f#L1>`_
|
||||
N_states lowest eigenvalues of the CI matrix
|
||||
N_states_diag lowest eigenvalues of the CI matrix
|
||||
|
||||
`diagonalize_ci_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI_SC2.irp.f#L46>`_
|
||||
Replace the coefficients of the CI states by the coefficients of the
|
||||
Replace the coefficients of the CI states_diag by the coefficients of the
|
||||
eigenstates of the CI matrix
|
||||
|
||||
`threshold_convergence_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI_SC2.irp.f#L18>`_
|
||||
convergence of the correlation energy of SC2 iterations
|
||||
|
||||
`ci_eigenvectors_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI_mono.irp.f#L2>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`ci_eigenvectors_s2_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI_mono.irp.f#L3>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`ci_electronic_energy_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI_mono.irp.f#L1>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`diagonalize_ci_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/diagonalize_CI_mono.irp.f#L59>`_
|
||||
Replace the coefficients of the CI states by the coefficients of the
|
||||
eigenstates of the CI matrix
|
||||
|
||||
`apply_mono <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/excitations_utils.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`filter_connected <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/filter_connected.irp.f#L2>`_
|
||||
Filters out the determinants that are not connected by H
|
||||
.br
|
||||
@ -276,9 +415,16 @@ Documentation
|
||||
.br
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
|
||||
`filter_connected_davidson <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/filter_connected.irp.f#L101>`_
|
||||
`filter_connected_davidson <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/filter_connected.irp.f#L163>`_
|
||||
Filters out the determinants that are not connected by H
|
||||
returns the array idx which contains the index of the
|
||||
determinants in the array key1 that interact
|
||||
via the H operator with key2.
|
||||
.br
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
key1 should come from psi_det_sorted_ab.
|
||||
|
||||
`filter_connected_i_h_psi0 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/filter_connected.irp.f#L293>`_
|
||||
returns the array idx which contains the index of the
|
||||
.br
|
||||
determinants in the array key1 that interact
|
||||
@ -287,16 +433,7 @@ Documentation
|
||||
.br
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
|
||||
`filter_connected_i_h_psi0 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/filter_connected.irp.f#L233>`_
|
||||
returns the array idx which contains the index of the
|
||||
.br
|
||||
determinants in the array key1 that interact
|
||||
.br
|
||||
via the H operator with key2.
|
||||
.br
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
|
||||
`filter_connected_i_h_psi0_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/filter_connected.irp.f#L332>`_
|
||||
`filter_connected_i_h_psi0_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/filter_connected.irp.f#L392>`_
|
||||
standard filter_connected_i_H_psi but returns in addition
|
||||
.br
|
||||
the array of the index of the non connected determinants to key1
|
||||
@ -307,31 +444,156 @@ Documentation
|
||||
.br
|
||||
to repeat the excitations
|
||||
|
||||
`filter_connected_sorted_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/filter_connected.irp.f#L101>`_
|
||||
Filters out the determinants that are not connected by H
|
||||
returns the array idx which contains the index of the
|
||||
determinants in the array key1 that interact
|
||||
via the H operator with key2.
|
||||
idx(0) is the number of determinants that interact with key1
|
||||
.br
|
||||
Determinants are taken from the psi_det_sorted_ab array
|
||||
|
||||
`put_gess <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/guess_triplet.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`det_to_occ_pattern <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/occ_pattern.irp.f#L2>`_
|
||||
Transform a determinant to an occupation pattern
|
||||
|
||||
`make_s2_eigenfunction <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/occ_pattern.irp.f#L251>`_
|
||||
Undocumented
|
||||
|
||||
`n_occ_pattern <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/occ_pattern.irp.f#L143>`_
|
||||
array of the occ_pattern present in the wf
|
||||
psi_occ_pattern(:,1,j) = jth occ_pattern of the wave function : represent all the single occupation
|
||||
psi_occ_pattern(:,2,j) = jth occ_pattern of the wave function : represent all the double occupation
|
||||
|
||||
`occ_pattern_to_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/occ_pattern.irp.f#L42>`_
|
||||
Generate all possible determinants for a give occ_pattern
|
||||
|
||||
`occ_pattern_to_dets_size <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/occ_pattern.irp.f#L20>`_
|
||||
Number of possible determinants for a given occ_pattern
|
||||
|
||||
`psi_occ_pattern <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/occ_pattern.irp.f#L142>`_
|
||||
array of the occ_pattern present in the wf
|
||||
psi_occ_pattern(:,1,j) = jth occ_pattern of the wave function : represent all the single occupation
|
||||
psi_occ_pattern(:,2,j) = jth occ_pattern of the wave function : represent all the double occupation
|
||||
|
||||
`rec_occ_pattern_to_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/occ_pattern.irp.f#L102>`_
|
||||
Undocumented
|
||||
|
||||
`n_states_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/options.irp.f#L40>`_
|
||||
Number of states to consider for the diagonalization
|
||||
|
||||
`pouet <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/program_beginer_determinants.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`routine <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/program_beginer_determinants.irp.f#L7>`_
|
||||
Undocumented
|
||||
|
||||
`idx_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L5>`_
|
||||
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.
|
||||
|
||||
`idx_non_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L62>`_
|
||||
Set of determinants which are not part of the CAS, defined from the application
|
||||
of the CAS bitmask on the determinants.
|
||||
idx_non_cas gives the indice of the determinant in psi_det.
|
||||
|
||||
`n_det_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L6>`_
|
||||
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.
|
||||
|
||||
`n_det_non_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L63>`_
|
||||
Set of determinants which are not part of the CAS, defined from the application
|
||||
of the CAS bitmask on the determinants.
|
||||
idx_non_cas gives the indice of the determinant in psi_det.
|
||||
|
||||
`psi_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L3>`_
|
||||
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.
|
||||
|
||||
`psi_cas_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L4>`_
|
||||
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.
|
||||
|
||||
`psi_cas_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L47>`_
|
||||
CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
`psi_cas_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L46>`_
|
||||
CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
`psi_non_cas <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L60>`_
|
||||
Set of determinants which are not part of the CAS, defined from the application
|
||||
of the CAS bitmask on the determinants.
|
||||
idx_non_cas gives the indice of the determinant in psi_det.
|
||||
|
||||
`psi_non_cas_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L61>`_
|
||||
Set of determinants which are not part of the CAS, defined from the application
|
||||
of the CAS bitmask on the determinants.
|
||||
idx_non_cas gives the indice of the determinant in psi_det.
|
||||
|
||||
`psi_non_cas_coef_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L100>`_
|
||||
CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
`psi_non_cas_sorted_bit <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/psi_cas.irp.f#L99>`_
|
||||
CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
function.
|
||||
|
||||
`bi_elec_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/ref_bitmask.irp.f#L5>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
`kinetic_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/ref_bitmask.irp.f#L3>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
`mono_elec_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/ref_bitmask.irp.f#L2>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
`nucl_elec_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/ref_bitmask.irp.f#L4>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
`ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/ref_bitmask.irp.f#L1>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
`expected_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/s2.irp.f#L48>`_
|
||||
Expected value of S2 : S*(S+1)
|
||||
|
||||
`get_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/s2.irp.f#L1>`_
|
||||
Returns <S^2>
|
||||
|
||||
`get_s2_u0 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/s2.irp.f#L46>`_
|
||||
`get_s2_u0 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/s2.irp.f#L82>`_
|
||||
Undocumented
|
||||
|
||||
`s2_values <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/s2.irp.f#L67>`_
|
||||
array of the averaged values of the S^2 operator on the various states
|
||||
|
||||
`s_z <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/s2.irp.f#L36>`_
|
||||
Undocumented
|
||||
z component of the Spin
|
||||
|
||||
`s_z2_sz <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/s2.irp.f#L37>`_
|
||||
z component of the Spin
|
||||
|
||||
`prog_save_casino <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/save_for_casino.irp.f#L266>`_
|
||||
Undocumented
|
||||
|
||||
`save_casino <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/save_for_casino.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`save_dets_qmcchem <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/save_for_qmcchem.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`save_for_qmc <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/save_for_qmcchem.irp.f#L37>`_
|
||||
`save_for_qmc <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/save_for_qmcchem.irp.f#L48>`_
|
||||
Undocumented
|
||||
|
||||
`save_natorb <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/save_natorb.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`a_operator <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L721>`_
|
||||
`a_operator <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L962>`_
|
||||
Needed for diag_H_mat_elem
|
||||
|
||||
`ac_operator <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L766>`_
|
||||
`ac_operator <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L1007>`_
|
||||
Needed for diag_H_mat_elem
|
||||
|
||||
`decode_exc <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L76>`_
|
||||
@ -341,10 +603,10 @@ Documentation
|
||||
s1,s2 : Spins (1:alpha, 2:beta)
|
||||
degree : Degree of excitation
|
||||
|
||||
`det_connections <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L898>`_
|
||||
.br
|
||||
`det_connections <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L1139>`_
|
||||
Build connection proxy between determinants
|
||||
|
||||
`diag_h_mat_elem <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L659>`_
|
||||
`diag_h_mat_elem <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L900>`_
|
||||
Computes <i|H|i>
|
||||
|
||||
`get_double_excitation <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L141>`_
|
||||
@ -356,16 +618,16 @@ Documentation
|
||||
`get_excitation_degree <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L1>`_
|
||||
Returns the excitation degree between two determinants
|
||||
|
||||
`get_excitation_degree_vector <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L575>`_
|
||||
`get_excitation_degree_vector <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L816>`_
|
||||
Applies get_excitation_degree to an array of determinants
|
||||
|
||||
`get_mono_excitation <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L274>`_
|
||||
Returns the excitation operator between two singly excited determinants and the phase
|
||||
|
||||
`get_occ_from_key <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L814>`_
|
||||
`get_occ_from_key <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L1055>`_
|
||||
Returns a list of occupation numbers from a bitstring
|
||||
|
||||
`h_u_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L830>`_
|
||||
`h_u_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L1071>`_
|
||||
Computes v_0 = H|u_0>
|
||||
.br
|
||||
n : number of determinants
|
||||
@ -375,10 +637,13 @@ Documentation
|
||||
`i_h_j <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L355>`_
|
||||
Returns <i|H|j> where i and j are determinants
|
||||
|
||||
`i_h_psi <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L491>`_
|
||||
`i_h_j_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L492>`_
|
||||
Returns <i|H|j> where i and j are determinants
|
||||
|
||||
`i_h_psi <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L631>`_
|
||||
<key|H|psi> for the various Nstates
|
||||
|
||||
`i_h_psi_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L527>`_
|
||||
`i_h_psi_sc2 <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L713>`_
|
||||
<key|H|psi> for the various Nstate
|
||||
.br
|
||||
returns in addition
|
||||
@ -391,11 +656,33 @@ Documentation
|
||||
.br
|
||||
to repeat the excitations
|
||||
|
||||
`n_con_int <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L890>`_
|
||||
`i_h_psi_sc2_verbose <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L760>`_
|
||||
<key|H|psi> for the various Nstate
|
||||
.br
|
||||
returns in addition
|
||||
.br
|
||||
the array of the index of the non connected determinants to key1
|
||||
.br
|
||||
in order to know what double excitation can be repeated on key1
|
||||
.br
|
||||
idx_repeat(0) is the number of determinants that can be used
|
||||
.br
|
||||
to repeat the excitations
|
||||
|
||||
`i_h_psi_sec_ord <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L666>`_
|
||||
<key|H|psi> for the various Nstates
|
||||
|
||||
`n_con_int <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/slater_rules.irp.f#L1131>`_
|
||||
Number of integers to represent the connections between determinants
|
||||
|
||||
`write_spindeterminants <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/spindeterminants.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`cisd <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/truncate_wf.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`h_matrix_all_dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets/utils.irp.f#L1>`_
|
||||
H matrix on the basis of the slater deter;inants defined by psi_det
|
||||
H matrix on the basis of the slater determinants defined by psi_det
|
||||
|
||||
|
||||
|
||||
|
@ -95,9 +95,9 @@ integer function get_index_in_psi_det_sorted_bit(key,Nint)
|
||||
enddo
|
||||
i += 1
|
||||
|
||||
! if (i > N_det) then
|
||||
! return
|
||||
! endif
|
||||
if (i > N_det) then
|
||||
return
|
||||
endif
|
||||
|
||||
!DIR$ FORCEINLINE
|
||||
do while (det_search_key(psi_det_sorted_bit(1,1,i),Nint) == det_ref)
|
||||
@ -116,39 +116,39 @@ integer function get_index_in_psi_det_sorted_bit(key,Nint)
|
||||
enddo
|
||||
if (is_in_wavefunction) then
|
||||
get_index_in_psi_det_sorted_bit = i
|
||||
exit
|
||||
! return
|
||||
! exit
|
||||
return
|
||||
endif
|
||||
endif
|
||||
i += 1
|
||||
if (i > N_det) then
|
||||
exit
|
||||
! return
|
||||
! exit
|
||||
return
|
||||
endif
|
||||
|
||||
enddo
|
||||
|
||||
! DEBUG is_in_wf
|
||||
if (is_in_wavefunction) then
|
||||
degree = 1
|
||||
do i=1,N_det
|
||||
integer :: degree
|
||||
call get_excitation_degree(key,psi_det(1,1,i),degree,N_int)
|
||||
if (degree == 0) then
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
if (degree /=0) then
|
||||
stop 'pouet 1'
|
||||
endif
|
||||
else
|
||||
do i=1,N_det
|
||||
call get_excitation_degree(key,psi_det(1,1,i),degree,N_int)
|
||||
if (degree == 0) then
|
||||
stop 'pouet 2'
|
||||
endif
|
||||
enddo
|
||||
endif
|
||||
! if (is_in_wavefunction) then
|
||||
! degree = 1
|
||||
! do i=1,N_det
|
||||
! integer :: degree
|
||||
! call get_excitation_degree(key,psi_det(1,1,i),degree,N_int)
|
||||
! if (degree == 0) then
|
||||
! exit
|
||||
! endif
|
||||
! enddo
|
||||
! if (degree /=0) then
|
||||
! stop 'pouet 1'
|
||||
! endif
|
||||
! else
|
||||
! do i=1,N_det
|
||||
! call get_excitation_degree(key,psi_det(1,1,i),degree,N_int)
|
||||
! if (degree == 0) then
|
||||
! stop 'pouet 2'
|
||||
! endif
|
||||
! enddo
|
||||
! endif
|
||||
! END DEBUG is_in_wf
|
||||
end
|
||||
|
||||
|
@ -3,7 +3,7 @@ program det_svd
|
||||
BEGIN_DOC
|
||||
! Computes the SVD of the Alpha x Beta determinant coefficient matrix
|
||||
END_DOC
|
||||
integer :: i,j
|
||||
integer :: i,j,k
|
||||
|
||||
read_wf = .True.
|
||||
TOUCH read_wf
|
||||
@ -40,17 +40,22 @@ program det_svd
|
||||
print *, 'N_det_alpha = ', N_det_alpha_unique
|
||||
print *, 'N_det_beta = ', N_det_beta_unique
|
||||
print *, ''
|
||||
|
||||
! do i=1,N_det_alpha_unique
|
||||
! do j=1,N_det_beta_unique
|
||||
! print *, i,j,psi_svd_matrix(i,j,:)
|
||||
! enddo
|
||||
! enddo
|
||||
|
||||
print *, ''
|
||||
call diagonalize_ci
|
||||
print *, 'Energy = ', ci_energy
|
||||
|
||||
do i=1,N_det_alpha_unique
|
||||
do j=1,N_det_beta_unique
|
||||
do k=1,N_states
|
||||
if (dabs(psi_svd_matrix(i,j,k)) < 1.d-15) then
|
||||
psi_svd_matrix(i,j,k) = 0.d0
|
||||
endif
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
|
||||
print *, ''
|
||||
print *, psi_svd_coefs(1:20,1)
|
||||
! call save_wavefunction
|
||||
call save_wavefunction
|
||||
|
||||
end
|
||||
|
@ -467,33 +467,52 @@ END_PROVIDER
|
||||
! to accelerate the search of a random determinant in the wave
|
||||
! function.
|
||||
END_DOC
|
||||
|
||||
call sort_dets_by_det_search_key(N_det, psi_det, psi_coef, &
|
||||
psi_det_sorted_bit, psi_coef_sorted_bit)
|
||||
END_PROVIDER
|
||||
|
||||
subroutine sort_dets_by_det_search_key(Ndet, det_in, coef_in, det_out, coef_out)
|
||||
use bitmasks
|
||||
implicit none
|
||||
integer, intent(in) :: Ndet
|
||||
integer(bit_kind), intent(in) :: det_in (N_int,2,psi_det_size)
|
||||
double precision , intent(in) :: coef_in(psi_det_size,N_states)
|
||||
integer(bit_kind), intent(out) :: det_out (N_int,2,psi_det_size)
|
||||
double precision , intent(out) :: coef_out(psi_det_size,N_states)
|
||||
BEGIN_DOC
|
||||
! Determinants are sorted are sorted according to their det_search_key.
|
||||
! Useful to accelerate the search of a random determinant in the wave
|
||||
! function.
|
||||
END_DOC
|
||||
integer :: i,j,k
|
||||
integer, allocatable :: iorder(:)
|
||||
integer*8, allocatable :: bit_tmp(:)
|
||||
integer*8, external :: det_search_key
|
||||
|
||||
allocate ( iorder(N_det), bit_tmp(N_det) )
|
||||
allocate ( iorder(Ndet), bit_tmp(Ndet) )
|
||||
|
||||
do i=1,N_det
|
||||
do i=1,Ndet
|
||||
iorder(i) = i
|
||||
!$DIR FORCEINLINE
|
||||
bit_tmp(i) = det_search_key(psi_det(1,1,i),N_int)
|
||||
bit_tmp(i) = det_search_key(det_in(1,1,i),N_int)
|
||||
enddo
|
||||
call i8sort(bit_tmp,iorder,N_det)
|
||||
call i8sort(bit_tmp,iorder,Ndet)
|
||||
!DIR$ IVDEP
|
||||
do i=1,N_det
|
||||
do i=1,Ndet
|
||||
do j=1,N_int
|
||||
psi_det_sorted_bit(j,1,i) = psi_det(j,1,iorder(i))
|
||||
psi_det_sorted_bit(j,2,i) = psi_det(j,2,iorder(i))
|
||||
det_out(j,1,i) = det_in(j,1,iorder(i))
|
||||
det_out(j,2,i) = det_in(j,2,iorder(i))
|
||||
enddo
|
||||
do k=1,N_states
|
||||
psi_coef_sorted_bit(i,k) = psi_coef(iorder(i),k)
|
||||
coef_out(i,k) = coef_in(iorder(i),k)
|
||||
enddo
|
||||
enddo
|
||||
|
||||
deallocate(iorder, bit_tmp)
|
||||
|
||||
END_PROVIDER
|
||||
end
|
||||
|
||||
|
||||
subroutine int_of_3_highest_electrons( det_in, res, Nint )
|
||||
implicit none
|
||||
|
114
src/Dets/psi_cas.irp.f
Normal file
114
src/Dets/psi_cas.irp.f
Normal file
@ -0,0 +1,114 @@
|
||||
use bitmasks
|
||||
|
||||
BEGIN_PROVIDER [ integer(bit_kind), psi_cas, (N_int,2,psi_det_size) ]
|
||||
&BEGIN_PROVIDER [ double precision, psi_cas_coef, (psi_det_size,n_states) ]
|
||||
&BEGIN_PROVIDER [ integer, idx_cas, (psi_det_size) ]
|
||||
&BEGIN_PROVIDER [ integer, N_det_cas ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! 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.
|
||||
END_DOC
|
||||
integer :: i, k, l
|
||||
logical :: good
|
||||
N_det_cas = 0
|
||||
do i=1,N_det
|
||||
do l=1,n_cas_bitmask
|
||||
good = .True.
|
||||
do k=1,N_int
|
||||
good = good .and. ( &
|
||||
iand(not(cas_bitmask(k,1,l)), psi_det(k,1,i)) == &
|
||||
iand(not(cas_bitmask(k,1,l)), psi_det(k,1,1)) ) .and. ( &
|
||||
iand(not(cas_bitmask(k,2,l)), psi_det(k,2,i)) == &
|
||||
iand(not(cas_bitmask(k,2,l)), psi_det(k,2,1)) )
|
||||
enddo
|
||||
if (good) then
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
if (good) then
|
||||
N_det_cas = N_det_cas+1
|
||||
do k=1,N_int
|
||||
psi_cas(k,1,N_det_cas) = psi_det(k,1,i)
|
||||
psi_cas(k,2,N_det_cas) = psi_det(k,2,i)
|
||||
enddo
|
||||
idx_cas(N_det_cas) = i
|
||||
do k=1,N_states
|
||||
psi_cas_coef(N_det_cas,k) = psi_coef(i,k)
|
||||
enddo
|
||||
endif
|
||||
enddo
|
||||
call write_int(output_dets,N_det_cas, 'Number of determinants in the CAS')
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ integer(bit_kind), psi_cas_sorted_bit, (N_int,2,psi_det_size) ]
|
||||
&BEGIN_PROVIDER [ double precision, psi_cas_coef_sorted_bit, (psi_det_size,N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
! function.
|
||||
END_DOC
|
||||
call sort_dets_by_det_search_key(N_det_cas, psi_cas, psi_cas_coef, &
|
||||
psi_cas_sorted_bit, psi_cas_coef_sorted_bit)
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ integer(bit_kind), psi_non_cas, (N_int,2,psi_det_size) ]
|
||||
&BEGIN_PROVIDER [ double precision, psi_non_cas_coef, (psi_det_size,n_states) ]
|
||||
&BEGIN_PROVIDER [ integer, idx_non_cas, (psi_det_size) ]
|
||||
&BEGIN_PROVIDER [ integer, N_det_non_cas ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Set of determinants which are not part of the CAS, defined from the application
|
||||
! of the CAS bitmask on the determinants.
|
||||
! idx_non_cas gives the indice of the determinant in psi_det.
|
||||
END_DOC
|
||||
integer :: i_non_cas,j,k
|
||||
integer :: degree
|
||||
logical :: in_cas
|
||||
i_non_cas =0
|
||||
do k=1,N_det
|
||||
in_cas = .False.
|
||||
do j=1,N_det_cas
|
||||
call get_excitation_degree(psi_cas(1,1,j), psi_det(1,1,k), degree, N_int)
|
||||
if (degree == 0) then
|
||||
in_cas = .True.
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
if (.not.in_cas) then
|
||||
double precision :: hij
|
||||
i_non_cas += 1
|
||||
do j=1,N_int
|
||||
psi_non_cas(j,1,i_non_cas) = psi_det(j,1,k)
|
||||
psi_non_cas(j,2,i_non_cas) = psi_det(j,2,k)
|
||||
enddo
|
||||
do j=1,N_states
|
||||
psi_non_cas_coef(i_non_cas,j) = psi_coef(k,j)
|
||||
enddo
|
||||
idx_non_cas(i_non_cas) = k
|
||||
endif
|
||||
enddo
|
||||
N_det_non_cas = i_non_cas
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ integer(bit_kind), psi_non_cas_sorted_bit, (N_int,2,psi_det_size) ]
|
||||
&BEGIN_PROVIDER [ double precision, psi_non_cas_coef_sorted_bit, (psi_det_size,N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! CAS determinants sorted to accelerate the search of a random determinant in the wave
|
||||
! function.
|
||||
END_DOC
|
||||
call sort_dets_by_det_search_key(N_det_cas, psi_non_cas, psi_non_cas_coef, &
|
||||
psi_non_cas_sorted_bit, psi_non_cas_coef_sorted_bit)
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
|
||||
|
||||
|
@ -42,8 +42,10 @@ subroutine save_dets_qmcchem
|
||||
enddo
|
||||
close(31)
|
||||
call system('gzip -f '//trim(ezfio_filename)//'/mo_basis/mo_classif')
|
||||
|
||||
end
|
||||
|
||||
program save_for_qmc
|
||||
call save_dets_qmcchem
|
||||
call write_spindeterminants
|
||||
end
|
||||
|
@ -7,4 +7,8 @@ spindeterminants
|
||||
psi_det_alpha integer*8 (spindeterminants_n_int*spindeterminants_bit_kind/8,spindeterminants_n_det_alpha)
|
||||
psi_det_beta integer*8 (spindeterminants_n_int*spindeterminants_bit_kind/8,spindeterminants_n_det_beta)
|
||||
psi_coef_matrix double precision (spindeterminants_n_det_alpha,spindeterminants_n_det_beta,spindeterminants_n_states)
|
||||
n_svd_coefs integer
|
||||
psi_svd_alpha double precision (spindeterminants_n_det_alpha,spindeterminants_n_svd_coefs,spindeterminants_n_states)
|
||||
psi_svd_beta double precision (spindeterminants_n_det_beta,spindeterminants_n_svd_coefs,spindeterminants_n_states)
|
||||
psi_svd_coefs double precision (spindeterminants_n_svd_coefs,spindeterminants_n_states)
|
||||
|
||||
|
@ -41,4 +41,51 @@ subroutine write_spindeterminants
|
||||
|
||||
call ezfio_set_spindeterminants_psi_coef_matrix(psi_svd_matrix)
|
||||
|
||||
integer :: n_svd_coefs
|
||||
double precision :: norm, f
|
||||
f = 1.d0/dble(N_states)
|
||||
norm = 1.d0
|
||||
do n_svd_coefs=1,N_det_alpha_unique
|
||||
do k=1,N_states
|
||||
norm -= psi_svd_coefs(n_svd_coefs,k)*psi_svd_coefs(n_svd_coefs,k)
|
||||
enddo
|
||||
if (norm < 1.d-6) then
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
n_svd_coefs -= 1
|
||||
call ezfio_set_spindeterminants_n_svd_coefs(n_svd_coefs)
|
||||
|
||||
double precision, allocatable :: dtmp(:,:,:)
|
||||
allocate(dtmp(N_det_alpha_unique,n_svd_coefs,N_states))
|
||||
do k=1,N_states
|
||||
do j=1,n_svd_coefs
|
||||
do i=1,N_det_alpha_unique
|
||||
dtmp(i,j,k) = psi_svd_alpha(i,j,k)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
call ezfio_set_spindeterminants_psi_svd_alpha(dtmp)
|
||||
deallocate(dtmp)
|
||||
|
||||
allocate(dtmp(N_det_beta_unique,n_svd_coefs,N_states))
|
||||
do k=1,N_states
|
||||
do j=1,n_svd_coefs
|
||||
do i=1,N_det_beta_unique
|
||||
dtmp(i,j,k) = psi_svd_beta(i,j,k)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
call ezfio_set_spindeterminants_psi_svd_beta(dtmp)
|
||||
deallocate(dtmp)
|
||||
|
||||
allocate(dtmp(n_svd_coefs,N_states,1))
|
||||
do k=1,N_states
|
||||
do j=1,n_svd_coefs
|
||||
dtmp(j,k,1) = psi_svd_coefs(j,k)
|
||||
enddo
|
||||
enddo
|
||||
call ezfio_set_spindeterminants_psi_svd_coefs(dtmp)
|
||||
deallocate(dtmp)
|
||||
|
||||
end
|
||||
|
@ -4,3 +4,32 @@ FCIdump Module
|
||||
|
||||
Interface for the `NECI <https://github.com/ghb24/NECI_STABLE>`_ Full-CI QMC program.
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`fcidump <http://github.com/LCPQ/quantum_package/tree/master/src/FCIdump/fcidump.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
|
||||
Needed Modules
|
||||
==============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
|
||||
|
@ -14,7 +14,7 @@ default: 10000
|
||||
type: logical
|
||||
doc: If true, compute the PT2 at the end of the selection
|
||||
interface: input
|
||||
default: true
|
||||
default: True
|
||||
|
||||
[PT2_max]
|
||||
type: PT2_energy
|
||||
@ -32,11 +32,11 @@ default: 0.75
|
||||
|
||||
[energy]
|
||||
type: double precision
|
||||
doc: "Calculated Full CI energy"
|
||||
doc: Calculated Selected FCI energy
|
||||
interface: output
|
||||
|
||||
[energy_pt2]
|
||||
type: double precision
|
||||
doc: "Calculated Full CI energy"
|
||||
doc: Calculated FCI energy + PT2
|
||||
interface: output
|
||||
|
||||
|
@ -10,7 +10,10 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`full_ci <http://github.com/LCPQ/quantum_package/tree/master/src/Full_CI/full_ci.irp.f#L1>`_
|
||||
`full_ci <http://github.com/LCPQ/quantum_package/tree/master/src/Full_CI/full_ci_no_skip.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`var_pt2_ratio_run <http://github.com/LCPQ/quantum_package/tree/master/src/Full_CI/var_pt2_ratio.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
@ -22,18 +25,20 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Generators_full <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
|
||||
|
@ -3,3 +3,55 @@ Generators_CAS Module
|
||||
=====================
|
||||
|
||||
The generator determinants are those filtered by the ``cas_bitmask`` mask.
|
||||
Assumptions
|
||||
===========
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
The active space is defined by the ``reference_bitmask``.
|
||||
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`n_det_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_CAS/generators.irp.f#L3>`_
|
||||
Number of generator detetrminants
|
||||
|
||||
`psi_coef_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_CAS/generators.irp.f#L35>`_
|
||||
For Single reference wave functions, the generator is the
|
||||
Hartree-Fock determinant
|
||||
|
||||
`psi_det_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_CAS/generators.irp.f#L34>`_
|
||||
For Single reference wave functions, the generator is the
|
||||
Hartree-Fock determinant
|
||||
|
||||
`select_max <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_CAS/generators.irp.f#L78>`_
|
||||
Memo to skip useless selectors
|
||||
|
||||
`size_select_max <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_CAS/generators.irp.f#L70>`_
|
||||
Size of the select_max array
|
||||
|
||||
|
||||
|
||||
Needed Modules
|
||||
==============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
|
||||
|
@ -62,7 +62,6 @@ END_PROVIDER
|
||||
psi_det_generators(k,2,m) = psi_det(k,2,i)
|
||||
enddo
|
||||
psi_coef_generators(m,:) = psi_coef(m,:)
|
||||
! call debug_det(psi_det_generators(1,1,m),N_int)
|
||||
endif
|
||||
enddo
|
||||
|
||||
|
@ -11,20 +11,26 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`n_det_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L22>`_
|
||||
`degree_max_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L55>`_
|
||||
Max degree of excitation (respect to HF) of the generators
|
||||
|
||||
`n_det_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L15>`_
|
||||
For Single reference wave functions, the number of generators is 1 : the
|
||||
Hartree-Fock determinant
|
||||
|
||||
`psi_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L44>`_
|
||||
`psi_coef_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L38>`_
|
||||
For Single reference wave functions, the generator is the
|
||||
Hartree-Fock determinant
|
||||
|
||||
`select_max <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L60>`_
|
||||
`psi_det_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L37>`_
|
||||
For Single reference wave functions, the generator is the
|
||||
Hartree-Fock determinant
|
||||
|
||||
`select_max <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L78>`_
|
||||
Memo to skip useless selectors
|
||||
|
||||
`threshold_generators <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L3>`_
|
||||
Percentage of the norm of the state-averaged wave function to
|
||||
consider for the generators
|
||||
`size_select_max <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full/generators.irp.f#L70>`_
|
||||
Size of the select_max array
|
||||
|
||||
|
||||
|
||||
@ -35,12 +41,13 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
|
@ -11,11 +11,12 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
@ -36,16 +37,16 @@ Documentation
|
||||
`fock_matrix_alpha_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L83>`_
|
||||
Alpha Fock matrix in AO basis set
|
||||
|
||||
`fock_matrix_alpha_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L194>`_
|
||||
`fock_matrix_alpha_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L231>`_
|
||||
Fock matrix on the MO basis
|
||||
|
||||
`fock_matrix_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L242>`_
|
||||
`fock_matrix_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L289>`_
|
||||
Fock matrix in AO basis set
|
||||
|
||||
`fock_matrix_beta_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L84>`_
|
||||
Alpha Fock matrix in AO basis set
|
||||
|
||||
`fock_matrix_beta_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L214>`_
|
||||
`fock_matrix_beta_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L251>`_
|
||||
Fock matrix on the MO basis
|
||||
|
||||
`fock_matrix_diag_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L2>`_
|
||||
@ -78,24 +79,30 @@ Documentation
|
||||
K = Fb - Fa
|
||||
.br
|
||||
|
||||
`fock_mo_to_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L285>`_
|
||||
`fock_mo_to_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L332>`_
|
||||
Undocumented
|
||||
|
||||
`hf_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L233>`_
|
||||
`hf_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Fock_matrix.irp.f#L270>`_
|
||||
Hartree-Fock energy
|
||||
|
||||
`hf_density_matrix_ao <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/HF_density_matrix_ao.irp.f#L27>`_
|
||||
Density matrix in the AO basis
|
||||
S^-1 Density matrix in the AO basis S^-1
|
||||
|
||||
`hf_density_matrix_ao_alpha <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/HF_density_matrix_ao.irp.f#L1>`_
|
||||
Alpha density matrix in the AO basis
|
||||
S^-1 x Alpha density matrix in the AO basis x S^-1
|
||||
|
||||
`hf_density_matrix_ao_beta <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/HF_density_matrix_ao.irp.f#L14>`_
|
||||
Beta density matrix in the AO basis
|
||||
S^-1 Beta density matrix in the AO basis x S^-1
|
||||
|
||||
`run <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/SCF.irp.f#L7>`_
|
||||
`guess <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/Huckel_guess.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`create_guess <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/SCF.irp.f#L8>`_
|
||||
Create an MO guess if no MOs are present in the EZFIO directory
|
||||
|
||||
`run <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/SCF.irp.f#L33>`_
|
||||
Run SCF calculation
|
||||
|
||||
`scf <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/SCF.irp.f#L2>`_
|
||||
Undocumented
|
||||
|
||||
@ -105,7 +112,7 @@ Documentation
|
||||
`diagonal_fock_matrix_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/diagonalize_fock.irp.f#L1>`_
|
||||
Diagonal Fock matrix in the MO basis
|
||||
|
||||
`diagonal_fock_matrix_mo_sum <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/diagonalize_fock.irp.f#L57>`_
|
||||
`diagonal_fock_matrix_mo_sum <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/diagonalize_fock.irp.f#L67>`_
|
||||
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
|
||||
@ -113,20 +120,8 @@ Documentation
|
||||
`eigenvectors_fock_matrix_mo <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/diagonalize_fock.irp.f#L2>`_
|
||||
Diagonal Fock matrix in the MO basis
|
||||
|
||||
`bi_elec_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/ref_bitmask.irp.f#L5>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
`kinetic_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/ref_bitmask.irp.f#L3>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
`mono_elec_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/ref_bitmask.irp.f#L2>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
`nucl_elec_ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/ref_bitmask.irp.f#L4>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
|
||||
`ref_bitmask_energy <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/ref_bitmask.irp.f#L1>`_
|
||||
Energy of the reference bitmask used in Slater rules
|
||||
`huckel_guess <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock/huckel.irp.f#L1>`_
|
||||
Build the MOs using the extended Huckel model
|
||||
|
||||
|
||||
|
||||
|
@ -23,11 +23,11 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
|
||||
Documentation
|
||||
=============
|
||||
@ -45,29 +45,58 @@ Documentation
|
||||
`mo_density_matrix_virtual <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/cholesky_mo.irp.f#L64>`_
|
||||
Density matrix in MO basis (virtual MOs)
|
||||
|
||||
`mo_coef <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L22>`_
|
||||
`mo_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mo_overlap.irp.f#L2>`_
|
||||
Undocumented
|
||||
|
||||
`ao_to_mo <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L126>`_
|
||||
Transform A from the AO basis to the MO basis
|
||||
|
||||
`mix_mo_jk <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L210>`_
|
||||
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))
|
||||
|
||||
`mo_coef <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L28>`_
|
||||
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)
|
||||
|
||||
`mo_coef_transp <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L60>`_
|
||||
`mo_coef_transp <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L71>`_
|
||||
Molecular orbital coefficients on AO basis set
|
||||
|
||||
`mo_label <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L23>`_
|
||||
`mo_label <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L29>`_
|
||||
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)
|
||||
|
||||
`mo_occ <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L78>`_
|
||||
`mo_occ <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L102>`_
|
||||
MO occupation numbers
|
||||
|
||||
`mo_to_ao <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L152>`_
|
||||
Transform A from the MO basis to the AO basis
|
||||
|
||||
`mo_to_ao_no_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L184>`_
|
||||
Transform A from the MO basis to the S^-1 AO basis
|
||||
|
||||
`mo_tot_num <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L1>`_
|
||||
Total number of molecular orbitals and the size of the keys corresponding
|
||||
|
||||
`mo_tot_num_align <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L12>`_
|
||||
`mo_tot_num_align <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L18>`_
|
||||
Aligned variable for dimensioning of arrays
|
||||
|
||||
`mo_as_eigvectors_of_mo_matrix <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/utils.irp.f#L22>`_
|
||||
`s_mo_coef <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/mos.irp.f#L89>`_
|
||||
Product S.C where S is the overlap matrix in the AO basis and C the mo_coef matrix.
|
||||
|
||||
`mo_as_eigvectors_of_mo_matrix <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/utils.irp.f#L24>`_
|
||||
Undocumented
|
||||
|
||||
`mo_as_eigvectors_of_mo_matrix_sort_by_observable <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/utils.irp.f#L62>`_
|
||||
Undocumented
|
||||
|
||||
`mo_sort_by_observable <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/utils.irp.f#L144>`_
|
||||
Undocumented
|
||||
|
||||
`save_mos <http://github.com/LCPQ/quantum_package/tree/master/src/MOs/utils.irp.f#L1>`_
|
||||
|
@ -8,7 +8,7 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`cisd <http://github.com/LCPQ/quantum_package/tree/master/src/MP2/mp2.irp.f#L1>`_
|
||||
`mp2 <http://github.com/LCPQ/quantum_package/tree/master/src/MP2/mp2.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
@ -20,18 +20,20 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `SingleRefMethod <http://github.com/LCPQ/quantum_package/tree/master/src/SingleRefMethod>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
|
||||
|
4
src/MRCC/EZFIO.cfg
Normal file
4
src/MRCC/EZFIO.cfg
Normal file
@ -0,0 +1,4 @@
|
||||
[energy]
|
||||
type: double precision
|
||||
doc: Calculated MRCC energy
|
||||
interface: output
|
@ -2,13 +2,13 @@ use bitmasks
|
||||
BEGIN_SHELL [ /usr/bin/env python ]
|
||||
from generate_h_apply import *
|
||||
|
||||
s = H_apply("mrcc")
|
||||
s = H_apply("mrcc_simple")
|
||||
s.data["parameters"] = ", delta_ij_sd_, Ndet_sd"
|
||||
s.data["declarations"] += """
|
||||
integer, intent(in) :: Ndet_sd
|
||||
double precision, intent(in) :: delta_ij_sd_(Ndet_sd,Ndet_sd,*)
|
||||
"""
|
||||
s.data["keys_work"] = "call mrcc_dress(delta_ij_sd_,Ndet_sd,i_generator,key_idx,keys_out,N_int,iproc)"
|
||||
s.data["keys_work"] = "call mrcc_dress_simple(delta_ij_sd_,Ndet_sd,i_generator,key_idx,keys_out,N_int,iproc)"
|
||||
s.data["params_post"] += ", delta_ij_sd_, Ndet_sd"
|
||||
s.data["params_main"] += "delta_ij_sd_, Ndet_sd"
|
||||
s.data["decls_main"] += """
|
||||
@ -18,8 +18,14 @@ s.data["decls_main"] += """
|
||||
s.data["finalization"] = ""
|
||||
s.data["copy_buffer"] = ""
|
||||
s.data["generate_psi_guess"] = ""
|
||||
s.data["size_max"] = "256"
|
||||
s.data["size_max"] = "3072"
|
||||
print s
|
||||
|
||||
|
||||
|
||||
|
||||
s.data["subroutine"] = "H_apply_mrcc"
|
||||
s.data["keys_work"] = "call mrcc_dress(delta_ij_sd_,Ndet_sd,i_generator,key_idx,keys_out,N_int,iproc)"
|
||||
print s
|
||||
|
||||
END_SHELL
|
||||
|
@ -1,2 +1,2 @@
|
||||
AOs Bielec_integrals Bitmask CAS_SD_selected Dets Electrons Ezfio_files Generators_CAS Generators_full Hartree_Fock MOGuess MonoInts MOs Nuclei Output Perturbation Properties Selectors_full Utils
|
||||
AOs Bielec_integrals Bitmask Dets Electrons Ezfio_files Generators_full Hartree_Fock MOGuess MonoInts MOs Nuclei Output Perturbation Properties Selectors_full Utils
|
||||
|
||||
|
@ -1,14 +1,91 @@
|
||||
-4.142795384334731
|
||||
===========
|
||||
MRCC Module
|
||||
===========
|
||||
|
||||
4.695183071437694E-002
|
||||
Determinant 64
|
||||
---------------------------------------------
|
||||
000000000000002E|000000000000002E
|
||||
|-+++-+----------------------------------------------------------|
|
||||
|-+++-+----------------------------------------------------------|
|
||||
Needed Modules
|
||||
==============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Generators_full <http://github.com/LCPQ/quantum_package/tree/master/src/Generators_full>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Perturbation <http://github.com/LCPQ/quantum_package/tree/master/src/Perturbation>`_
|
||||
* `Properties <http://github.com/LCPQ/quantum_package/tree/master/src/Properties>`_
|
||||
* `Selectors_full <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`mrcc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`run <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc.irp.f#L10>`_
|
||||
Undocumented
|
||||
|
||||
`run_mrcc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc.irp.f#L42>`_
|
||||
Undocumented
|
||||
|
||||
`run_mrcc_test <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc.irp.f#L29>`_
|
||||
Undocumented
|
||||
|
||||
`find_triples_and_quadruples <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_dress.irp.f#L202>`_
|
||||
Undocumented
|
||||
|
||||
`mrcc_dress <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_dress.irp.f#L15>`_
|
||||
Undocumented
|
||||
|
||||
`mrcc_dress_simple <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_dress.irp.f#L156>`_
|
||||
Undocumented
|
||||
|
||||
`psi_cas_lock <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_dress.irp.f#L3>`_
|
||||
Locks on CAS determinants to fill delta_ij
|
||||
|
||||
`ci_eigenvectors_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L79>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`ci_eigenvectors_s2_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L80>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`ci_electronic_energy_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L78>`_
|
||||
Eigenvectors/values of the CI matrix
|
||||
|
||||
`ci_energy_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L132>`_
|
||||
N_states lowest eigenvalues of the dressed CI matrix
|
||||
|
||||
`delta_ij <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L43>`_
|
||||
Dressing matrix in N_det basis
|
||||
|
||||
`delta_ij_non_cas <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L34>`_
|
||||
Dressing matrix in SD basis
|
||||
|
||||
`diagonalize_ci_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L147>`_
|
||||
Replace the coefficients of the CI states by the coefficients of the
|
||||
eigenstates of the CI matrix
|
||||
|
||||
`dressing_type <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L26>`_
|
||||
[ Simple | MRCC ]
|
||||
|
||||
`h_matrix_dressed <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L63>`_
|
||||
Dressed H with Delta_ij
|
||||
|
||||
`lambda_mrcc <http://github.com/LCPQ/quantum_package/tree/master/src/MRCC/mrcc_utils.irp.f#L2>`_
|
||||
cm/<Psi_0|H|D_m>
|
||||
|
||||
CAS-SD: -4.14214374069306
|
||||
: -4.14230904320551
|
||||
|
||||
E0 = -11.5634986758976
|
||||
|
||||
|
@ -3,41 +3,65 @@ program mrcc
|
||||
read_wf = .True.
|
||||
TOUCH read_wf
|
||||
call run
|
||||
call run_mrcc
|
||||
! call run_mrcc_test
|
||||
end
|
||||
|
||||
subroutine run
|
||||
implicit none
|
||||
|
||||
print *, N_det
|
||||
print *, N_det_cas
|
||||
print *, N_det_sd
|
||||
|
||||
! call update_generators
|
||||
integer :: i
|
||||
integer :: i,j
|
||||
print *, 'CAS'
|
||||
print *, '==='
|
||||
do i=1,N_det_cas
|
||||
print *, psi_cas_coefs(i,:)
|
||||
print *, psi_cas_coef(i,:)
|
||||
call debug_det(psi_cas(1,1,i),N_int)
|
||||
enddo
|
||||
|
||||
! print *, 'SD'
|
||||
! print *, '=='
|
||||
! do i=1,N_det_sd
|
||||
! print *, psi_sd_coefs(i,:)
|
||||
! call debug_det(psi_sd(1,1,i),N_int)
|
||||
! enddo
|
||||
!
|
||||
print *, 'MRCC'
|
||||
print *, '===='
|
||||
print *, ci_energy(:)
|
||||
print *, h_matrix_all_dets(3,3), delta_ij(3,3,1)
|
||||
print *, h_matrix_all_dets(3,3), delta_ij(3,3,1)
|
||||
print *, ci_energy_dressed(:)
|
||||
! print *, 'max', maxval(delta_ij_sd)
|
||||
! print *, 'min', minval(delta_ij_sd)
|
||||
!
|
||||
! do i=1,N_det
|
||||
! print '(10(F10.6,X))', delta_ij(i,1:N_det,1)
|
||||
! do i=1,N_det_non_cas
|
||||
! print *, psi_non_cas_coef(i,:)
|
||||
! call debug_det(psi_non_cas(1,1,i),N_int)
|
||||
! enddo
|
||||
call write_double(6,ci_energy(1),"Initial CI energy")
|
||||
end
|
||||
subroutine run_mrcc_test
|
||||
implicit none
|
||||
integer :: i,j
|
||||
double precision :: pt2
|
||||
pt2 = 0.d0
|
||||
do j=1,N_det
|
||||
do i=1,N_det
|
||||
pt2 += psi_coef(i,1)*psi_coef(j,1) * delta_ij(i,j,1)
|
||||
enddo
|
||||
enddo
|
||||
print *, ci_energy(1)
|
||||
print *, ci_energy(1)+pt2
|
||||
end
|
||||
subroutine run_mrcc
|
||||
implicit none
|
||||
integer :: i,j
|
||||
|
||||
double precision :: E_new, E_old, delta_e
|
||||
integer :: iteration
|
||||
E_new = 0.d0
|
||||
delta_E = 1.d0
|
||||
iteration = 0
|
||||
do while (delta_E > 1.d-8)
|
||||
iteration += 1
|
||||
print *, '==========================='
|
||||
print *, 'MRCC Iteration', iteration
|
||||
print *, '==========================='
|
||||
print *, ''
|
||||
E_old = sum(ci_energy_dressed)
|
||||
call write_double(6,ci_energy_dressed(1),"MRCC energy")
|
||||
call diagonalize_ci_dressed
|
||||
E_new = sum(ci_energy_dressed)
|
||||
delta_E = dabs(E_new - E_old)
|
||||
enddo
|
||||
call write_double(6,ci_energy_dressed(1),"Final MRCC energy")
|
||||
call ezfio_set_mrcc_energy(ci_energy_dressed(1))
|
||||
! call save_wavefunction
|
||||
|
||||
end
|
||||
|
@ -1,15 +1,169 @@
|
||||
subroutine mrcc_dress(delta_ij_sd_,Ndet_sd,i_generator,n_selected,det_buffer,Nint,iproc)
|
||||
use omp_lib
|
||||
|
||||
BEGIN_PROVIDER [ integer(omp_lock_kind), psi_cas_lock, (psi_det_size) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Locks on CAS determinants to fill delta_ij
|
||||
END_DOC
|
||||
integer :: i
|
||||
do i=1,psi_det_size
|
||||
call omp_init_lock( psi_cas_lock(i) )
|
||||
enddo
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
subroutine mrcc_dress(delta_ij_,Ndet,i_generator,n_selected,det_buffer,Nint,iproc)
|
||||
use bitmasks
|
||||
implicit none
|
||||
|
||||
integer, intent(in) :: i_generator,n_selected, Nint, iproc
|
||||
integer, intent(in) :: Ndet_sd
|
||||
double precision, intent(inout) :: delta_ij_sd_(Ndet_sd,Ndet_sd,*)
|
||||
integer, intent(in) :: Ndet
|
||||
double precision, intent(inout) :: delta_ij_(Ndet,Ndet,*)
|
||||
|
||||
integer(bit_kind), intent(in) :: det_buffer(Nint,2,n_selected)
|
||||
integer :: i,j,k,l
|
||||
integer :: degree_alpha(psi_det_size)
|
||||
integer :: idx_alpha(0:psi_det_size)
|
||||
logical :: good
|
||||
|
||||
integer(bit_kind) :: tq(Nint,2,n_selected)
|
||||
integer :: N_tq, c_ref ,degree
|
||||
integer :: connected_to_ref
|
||||
|
||||
double precision :: hIk, hla, hIl, dIk(N_states), dka(N_states), dIa(N_states)
|
||||
double precision, allocatable :: dIa_hla(:,:)
|
||||
double precision :: haj, phase, phase2
|
||||
double precision :: f(N_states), ci_inv(N_states)
|
||||
integer :: exc(0:2,2,2)
|
||||
integer :: h1,h2,p1,p2,s1,s2
|
||||
integer(bit_kind) :: tmp_det(Nint,2)
|
||||
integer :: iint, ipos
|
||||
integer :: i_state, k_sd, l_sd, i_I, i_alpha
|
||||
|
||||
call find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq,N_tq)
|
||||
|
||||
allocate (dIa_hla(N_states,Ndet))
|
||||
|
||||
! |I>
|
||||
|
||||
! |alpha>
|
||||
do i_alpha=1,N_tq
|
||||
call get_excitation_degree_vector(psi_non_cas,tq(1,1,i_alpha),degree_alpha,Nint,N_det_non_cas,idx_alpha)
|
||||
|
||||
! |I>
|
||||
do i_I=1,N_det_cas
|
||||
! Find triples and quadruple grand parents
|
||||
call get_excitation_degree(tq(1,1,i_alpha),psi_cas(1,1,i_I),degree,Nint)
|
||||
if (degree > 4) then
|
||||
cycle
|
||||
endif
|
||||
|
||||
do i_state=1,N_states
|
||||
dIa(i_state) = 0.d0
|
||||
enddo
|
||||
|
||||
! <I| <> |alpha>
|
||||
do k_sd=1,idx_alpha(0)
|
||||
call get_excitation_degree(psi_cas(1,1,i_I),psi_non_cas(1,1,idx_alpha(k_sd)),degree,Nint)
|
||||
if (degree > 2) then
|
||||
cycle
|
||||
endif
|
||||
! <I| /k\ |alpha>
|
||||
! <I|H|k>
|
||||
call i_h_j(psi_cas(1,1,i_I),psi_non_cas(1,1,idx_alpha(k_sd)),Nint,hIk)
|
||||
do i_state=1,N_states
|
||||
dIk(i_state) = hIk * lambda_mrcc(i_state,idx_alpha(k_sd))
|
||||
enddo
|
||||
! |l> = Exc(k -> alpha) |I>
|
||||
call get_excitation(psi_non_cas(1,1,idx_alpha(k_sd)),tq(1,1,i_alpha),exc,degree,phase,Nint)
|
||||
call decode_exc(exc,degree,h1,p1,h2,p2,s1,s2)
|
||||
do k=1,N_int
|
||||
tmp_det(k,1) = psi_cas(k,1,i_I)
|
||||
tmp_det(k,2) = psi_cas(k,2,i_I)
|
||||
enddo
|
||||
! Hole (see list_to_bitstring)
|
||||
iint = ishft(h1-1,-bit_kind_shift) + 1
|
||||
ipos = h1-ishft((iint-1),bit_kind_shift)-1
|
||||
tmp_det(iint,s1) = ibclr(tmp_det(iint,s1),ipos)
|
||||
|
||||
! Particle
|
||||
iint = ishft(p1-1,-bit_kind_shift) + 1
|
||||
ipos = p1-ishft((iint-1),bit_kind_shift)-1
|
||||
tmp_det(iint,s1) = ibset(tmp_det(iint,s1),ipos)
|
||||
if (degree_alpha(k_sd) == 2) then
|
||||
! Hole (see list_to_bitstring)
|
||||
iint = ishft(h2-1,-bit_kind_shift) + 1
|
||||
ipos = h2-ishft((iint-1),bit_kind_shift)-1
|
||||
tmp_det(iint,s2) = ibclr(tmp_det(iint,s2),ipos)
|
||||
|
||||
! Particle
|
||||
iint = ishft(p2-1,-bit_kind_shift) + 1
|
||||
ipos = p2-ishft((iint-1),bit_kind_shift)-1
|
||||
tmp_det(iint,s2) = ibset(tmp_det(iint,s2),ipos)
|
||||
endif
|
||||
|
||||
! <I| \l/ |alpha>
|
||||
do i_state=1,N_states
|
||||
dka(i_state) = 0.d0
|
||||
enddo
|
||||
do l_sd=k_sd+1,idx_alpha(0)
|
||||
call get_excitation_degree(tmp_det,psi_non_cas(1,1,idx_alpha(l_sd)),degree,Nint)
|
||||
if (degree == 0) then
|
||||
call get_excitation(psi_cas(1,1,i_I),psi_non_cas(1,1,idx_alpha(l_sd)),exc,degree,phase2,Nint)
|
||||
call i_h_j(psi_cas(1,1,i_I),psi_non_cas(1,1,idx_alpha(l_sd)),Nint,hIl)
|
||||
do i_state=1,N_states
|
||||
dka(i_state) = hIl * lambda_mrcc(i_state,idx_alpha(l_sd)) * phase * phase2
|
||||
enddo
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
do i_state=1,N_states
|
||||
dIa(i_state) = dIa(i_state) + dIk(i_state) * dka(i_state)
|
||||
enddo
|
||||
enddo
|
||||
|
||||
do i_state=1,N_states
|
||||
ci_inv(i_state) = 1.d0/psi_cas_coef(i_I,i_state)
|
||||
enddo
|
||||
do l_sd=1,idx_alpha(0)
|
||||
k_sd = idx_alpha(l_sd)
|
||||
call i_h_j(tq(1,1,i_alpha),psi_non_cas(1,1,idx_alpha(l_sd)),Nint,hla)
|
||||
do i_state=1,N_states
|
||||
dIa_hla(i_state,k_sd) = dIa(i_state) * hla
|
||||
enddo
|
||||
enddo
|
||||
call omp_set_lock( psi_cas_lock(i_I) )
|
||||
do l_sd=1,idx_alpha(0)
|
||||
k_sd = idx_alpha(l_sd)
|
||||
do i_state=1,N_states
|
||||
delta_ij_(idx_non_cas(k_sd),idx_cas(i_I),i_state) += dIa_hla(i_state,k_sd)
|
||||
delta_ij_(idx_cas(i_I),idx_non_cas(k_sd),i_state) += dIa_hla(i_state,k_sd)
|
||||
delta_ij_(idx_cas(i_I),idx_cas(i_I),i_state) -= dIa_hla(i_state,k_sd) * ci_inv(i_state) * psi_non_cas_coef(k_sd,i_state)
|
||||
enddo
|
||||
enddo
|
||||
call omp_unset_lock( psi_cas_lock(i_I) )
|
||||
enddo
|
||||
enddo
|
||||
deallocate (dIa_hla)
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
subroutine mrcc_dress_simple(delta_ij_non_cas_,Ndet_non_cas,i_generator,n_selected,det_buffer,Nint,iproc)
|
||||
use bitmasks
|
||||
implicit none
|
||||
|
||||
integer, intent(in) :: i_generator,n_selected, Nint, iproc
|
||||
integer, intent(in) :: Ndet_non_cas
|
||||
double precision, intent(inout) :: delta_ij_non_cas_(Ndet_non_cas,Ndet_non_cas,*)
|
||||
|
||||
integer(bit_kind), intent(in) :: det_buffer(Nint,2,n_selected)
|
||||
integer :: i,j,k,m
|
||||
integer :: new_size
|
||||
logical :: is_in_wavefunction
|
||||
integer :: degree(psi_det_size)
|
||||
integer :: idx(0:psi_det_size)
|
||||
logical :: good
|
||||
@ -18,6 +172,51 @@ subroutine mrcc_dress(delta_ij_sd_,Ndet_sd,i_generator,n_selected,det_buffer,Nin
|
||||
integer :: N_tq, c_ref
|
||||
integer :: connected_to_ref
|
||||
|
||||
call find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq,N_tq)
|
||||
|
||||
! Compute <k|H|a><a|H|j> / (E0 - Haa)
|
||||
double precision :: hka, haa
|
||||
double precision :: haj
|
||||
double precision :: f(N_states)
|
||||
|
||||
do i=1,N_tq
|
||||
call get_excitation_degree_vector(psi_non_cas,tq(1,1,i),degree,Nint,Ndet_non_cas,idx)
|
||||
call i_h_j(tq(1,1,i),tq(1,1,i),Nint,haa)
|
||||
do m=1,N_states
|
||||
f(m) = 1.d0/(ci_electronic_energy(m)-haa)
|
||||
enddo
|
||||
do k=1,idx(0)
|
||||
call i_h_j(tq(1,1,i),psi_non_cas(1,1,idx(k)),Nint,hka)
|
||||
do j=k,idx(0)
|
||||
call i_h_j(tq(1,1,i),psi_non_cas(1,1,idx(j)),Nint,haj)
|
||||
do m=1,N_states
|
||||
delta_ij_non_cas_(idx(k), idx(j),m) += haj*hka* f(m)
|
||||
delta_ij_non_cas_(idx(j), idx(k),m) += haj*hka* f(m)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
end
|
||||
|
||||
|
||||
subroutine find_triples_and_quadruples(i_generator,n_selected,det_buffer,Nint,tq,N_tq)
|
||||
use bitmasks
|
||||
implicit none
|
||||
|
||||
integer, intent(in) :: i_generator,n_selected, Nint
|
||||
|
||||
integer(bit_kind), intent(in) :: det_buffer(Nint,2,n_selected)
|
||||
integer :: i,j,k,m
|
||||
logical :: is_in_wavefunction
|
||||
integer :: degree(psi_det_size)
|
||||
integer :: idx(0:psi_det_size)
|
||||
logical :: good
|
||||
|
||||
integer(bit_kind), intent(out) :: tq(Nint,2,n_selected)
|
||||
integer, intent(out) :: N_tq
|
||||
integer :: c_ref
|
||||
integer :: connected_to_ref
|
||||
|
||||
N_tq = 0
|
||||
do i=1,N_selected
|
||||
c_ref = connected_to_ref(det_buffer(1,1,i),psi_det_generators,Nint, &
|
||||
@ -48,143 +247,11 @@ subroutine mrcc_dress(delta_ij_sd_,Ndet_sd,i_generator,n_selected,det_buffer,Nin
|
||||
endif
|
||||
enddo
|
||||
|
||||
! Compute <k|H|a><a|H|j> / (E0 - Haa)
|
||||
double precision :: hka, haa
|
||||
double precision :: haj
|
||||
double precision :: f(N_states)
|
||||
|
||||
do i=1,N_tq
|
||||
call get_excitation_degree_vector(psi_sd,tq(1,1,i),degree,Nint,Ndet_sd,idx)
|
||||
call i_h_j(tq(1,1,i),tq(1,1,i),Nint,haa)
|
||||
do m=1,N_states
|
||||
f(m) = 1.d0/(ci_electronic_energy(m)-haa)
|
||||
enddo
|
||||
do k=1,idx(0)
|
||||
call i_h_j(tq(1,1,i),psi_sd(1,1,idx(k)),Nint,hka)
|
||||
do j=k,idx(0)
|
||||
call i_h_j(tq(1,1,i),psi_sd(1,1,idx(j)),Nint,haj)
|
||||
do m=1,N_states
|
||||
delta_ij_sd_(idx(k), idx(j),m) += haj*hka* f(m)
|
||||
delta_ij_sd_(idx(j), idx(k),m) += haj*hka* f(m)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
end
|
||||
|
||||
BEGIN_PROVIDER [ double precision, delta_ij_sd, (N_det_sd, N_det_sd,N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Dressing matrix in SD basis
|
||||
END_DOC
|
||||
delta_ij_sd = 0.d0
|
||||
call H_apply_mrcc(delta_ij_sd,N_det_sd)
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, delta_ij, (N_det,N_det,N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Dressing matrix in N_det basis
|
||||
END_DOC
|
||||
integer :: i,j,m
|
||||
delta_ij = 0.d0
|
||||
do m=1,N_states
|
||||
do j=1,N_det_sd
|
||||
do i=1,N_det_sd
|
||||
delta_ij(idx_sd(i),idx_sd(j),m) = delta_ij_sd(i,j,m)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, h_matrix_dressed, (N_det,N_det) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Dressed H with Delta_ij
|
||||
END_DOC
|
||||
integer :: i, j
|
||||
do j=1,N_det
|
||||
do i=1,N_det
|
||||
h_matrix_dressed(i,j) = h_matrix_all_dets(i,j) + delta_ij(i,j,1)
|
||||
if (i==j) then
|
||||
print *, i, delta_ij(i,j,1), h_matrix_all_dets(i,j)
|
||||
endif
|
||||
enddo
|
||||
enddo
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ double precision, CI_electronic_energy_dressed, (N_states_diag) ]
|
||||
&BEGIN_PROVIDER [ double precision, CI_eigenvectors_dressed, (N_det,N_states_diag) ]
|
||||
&BEGIN_PROVIDER [ double precision, CI_eigenvectors_s2_dressed, (N_states_diag) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Eigenvectors/values of the CI matrix
|
||||
END_DOC
|
||||
integer :: i,j
|
||||
|
||||
do j=1,N_states_diag
|
||||
do i=1,N_det
|
||||
CI_eigenvectors_dressed(i,j) = psi_coef(i,j)
|
||||
enddo
|
||||
enddo
|
||||
|
||||
if (diag_algorithm == "Davidson") then
|
||||
|
||||
stop 'use Lapack'
|
||||
! call davidson_diag(psi_det,CI_eigenvectors_dressed,CI_electronic_energy_dressed, &
|
||||
! size(CI_eigenvectors_dressed,1),N_det,N_states_diag,N_int,output_Dets)
|
||||
|
||||
else if (diag_algorithm == "Lapack") then
|
||||
|
||||
double precision, allocatable :: eigenvectors(:,:), eigenvalues(:)
|
||||
allocate (eigenvectors(size(H_matrix_dressed,1),N_det))
|
||||
allocate (eigenvalues(N_det))
|
||||
call lapack_diag(eigenvalues,eigenvectors, &
|
||||
H_matrix_dressed,size(H_matrix_dressed,1),N_det)
|
||||
CI_electronic_energy_dressed(:) = 0.d0
|
||||
do i=1,N_det
|
||||
CI_eigenvectors_dressed(i,1) = eigenvectors(i,1)
|
||||
enddo
|
||||
integer :: i_state
|
||||
double precision :: s2
|
||||
i_state = 0
|
||||
do j=1,N_det
|
||||
call get_s2_u0(psi_det,eigenvectors(1,j),N_det,N_det,s2)
|
||||
if(dabs(s2-expected_s2).le.0.3d0)then
|
||||
i_state += 1
|
||||
do i=1,N_det
|
||||
CI_eigenvectors_dressed(i,i_state) = eigenvectors(i,j)
|
||||
enddo
|
||||
CI_electronic_energy_dressed(i_state) = eigenvalues(j)
|
||||
CI_eigenvectors_s2_dressed(i_state) = s2
|
||||
endif
|
||||
if (i_state.ge.N_states_diag) then
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
deallocate(eigenvectors,eigenvalues)
|
||||
endif
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, CI_energy_dressed, (N_states_diag) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! N_states lowest eigenvalues of the dressed CI matrix
|
||||
END_DOC
|
||||
|
||||
integer :: j
|
||||
character*(8) :: st
|
||||
call write_time(output_Dets)
|
||||
do j=1,N_states_diag
|
||||
CI_energy_dressed(j) = CI_electronic_energy_dressed(j) + nuclear_repulsion
|
||||
write(st,'(I4)') j
|
||||
call write_double(output_Dets,CI_energy(j),'Energy of state '//trim(st))
|
||||
call write_double(output_Dets,CI_eigenvectors_s2(j),'S^2 of state '//trim(st))
|
||||
enddo
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
@ -1,150 +1,161 @@
|
||||
use bitmasks
|
||||
|
||||
BEGIN_PROVIDER [ integer(bit_kind), cas_bitmask, (N_int,2,N_cas_bitmask) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Bitmasks for CAS reference determinants. (N_int, alpha/beta, CAS reference)
|
||||
END_DOC
|
||||
logical :: exists
|
||||
integer :: i
|
||||
PROVIDE ezfio_filename
|
||||
|
||||
call ezfio_has_bitmasks_cas(exists)
|
||||
if (exists) then
|
||||
call ezfio_get_bitmasks_cas(cas_bitmask)
|
||||
else
|
||||
do i=1,N_cas_bitmask
|
||||
cas_bitmask(:,:,i) = iand(not(HF_bitmask(:,:)),full_ijkl_bitmask(:,:))
|
||||
enddo
|
||||
endif
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ integer, N_det_cas ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Number of generator detetrminants
|
||||
END_DOC
|
||||
integer :: i,k,l
|
||||
logical :: good
|
||||
call write_time(output_dets)
|
||||
N_det_cas = 0
|
||||
do i=1,N_det
|
||||
do l=1,n_cas_bitmask
|
||||
good = .True.
|
||||
do k=1,N_int
|
||||
good = good .and. ( &
|
||||
iand(not(cas_bitmask(k,1,l)), psi_det(k,1,i)) == &
|
||||
iand(not(cas_bitmask(k,1,l)), psi_det(k,1,1)) ) .and. ( &
|
||||
iand(not(cas_bitmask(k,2,l)), psi_det(k,2,i)) == &
|
||||
iand(not(cas_bitmask(k,2,l)), psi_det(k,2,1)) )
|
||||
enddo
|
||||
if (good) then
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
if (good) then
|
||||
N_det_cas += 1
|
||||
endif
|
||||
enddo
|
||||
N_det_cas = max(N_det_cas, 1)
|
||||
call write_int(output_dets,N_det_cas, 'Number of determinants in the CAS')
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ integer(bit_kind), psi_cas, (N_int,2,N_det_cas) ]
|
||||
&BEGIN_PROVIDER [ double precision, psi_cas_coefs, (N_det_cas,n_states) ]
|
||||
&BEGIN_PROVIDER [ integer, idx_cas, (N_det_cas) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! For Single reference wave functions, the generator is the
|
||||
! Hartree-Fock determinant
|
||||
END_DOC
|
||||
integer :: i, k, l, m
|
||||
logical :: good
|
||||
m=0
|
||||
do i=1,N_det
|
||||
do l=1,n_cas_bitmask
|
||||
good = .True.
|
||||
do k=1,N_int
|
||||
good = good .and. ( &
|
||||
iand(not(cas_bitmask(k,1,l)), psi_det(k,1,i)) == &
|
||||
iand(not(cas_bitmask(k,1,l)), psi_det(k,1,1)) ) .and. ( &
|
||||
iand(not(cas_bitmask(k,2,l)), psi_det(k,2,i)) == &
|
||||
iand(not(cas_bitmask(k,2,l)), psi_det(k,2,1)) )
|
||||
enddo
|
||||
if (good) then
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
if (good) then
|
||||
m = m+1
|
||||
do k=1,N_int
|
||||
psi_cas(k,1,m) = psi_det(k,1,i)
|
||||
psi_cas(k,2,m) = psi_det(k,2,i)
|
||||
enddo
|
||||
idx_cas(m) = i
|
||||
do k=1,N_states
|
||||
psi_cas_coefs(m,k) = psi_coef(i,k)
|
||||
enddo
|
||||
endif
|
||||
enddo
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ integer(bit_kind), psi_sd, (N_int,2,N_det) ]
|
||||
&BEGIN_PROVIDER [ double precision, psi_sd_coefs, (N_det,n_states) ]
|
||||
&BEGIN_PROVIDER [ integer, idx_sd, (N_det) ]
|
||||
&BEGIN_PROVIDER [ integer, N_det_sd]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! SD
|
||||
END_DOC
|
||||
integer :: i_sd,j,k
|
||||
integer :: degree
|
||||
logical :: in_cas
|
||||
i_sd =0
|
||||
do k=1,N_det
|
||||
in_cas = .False.
|
||||
do j=1,N_det_cas
|
||||
call get_excitation_degree(psi_cas(1,1,j), psi_det(1,1,k), degree, N_int)
|
||||
if (degree == 0) then
|
||||
in_cas = .True.
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
if (.not.in_cas) then
|
||||
double precision :: hij
|
||||
i_sd += 1
|
||||
psi_sd(1:N_int,1:2,i_sd) = psi_det(1:N_int,1:2,k)
|
||||
psi_sd_coefs(i_sd,1:N_states) = psi_coef(k,1:N_states)
|
||||
idx_sd(i_sd) = k
|
||||
endif
|
||||
enddo
|
||||
N_det_sd = i_sd
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, lambda_mrcc, (psi_det_size,n_states) ]
|
||||
BEGIN_PROVIDER [ double precision, lambda_mrcc, (N_states,psi_det_size) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! cm/<Psi_0|H|D_m>
|
||||
END_DOC
|
||||
integer :: i,k
|
||||
double precision :: ihpsi(N_states)
|
||||
do i=1,N_det_sd
|
||||
call i_h_psi(psi_sd(1,1,i), psi_cas, psi_cas_coefs, N_int, N_det_cas, &
|
||||
size(psi_cas_coefs,1), n_states, ihpsi)
|
||||
do i=1,N_det_non_cas
|
||||
call i_h_psi(psi_non_cas(1,1,i), psi_cas, psi_cas_coef, N_int, N_det_cas, &
|
||||
size(psi_cas_coef,1), n_states, ihpsi)
|
||||
double precision :: hij
|
||||
do k=1,N_states
|
||||
if (dabs(ihpsi(k)) < 1.d-6) then
|
||||
lambda_mrcc(i,k) = 0.d0
|
||||
if (dabs(ihpsi(k)) > 1.d-5) then
|
||||
lambda_mrcc(k,i) = psi_non_cas_coef(i,k)/ihpsi(k)
|
||||
lambda_mrcc(k,i) = min( lambda_mrcc (k,i),0.d0 )
|
||||
else
|
||||
lambda_mrcc(i,k) = psi_sd_coefs(i,k)/ihpsi(k)
|
||||
lambda_mrcc(i,k) = min( lambda_mrcc (i,k),0.d0 )
|
||||
lambda_mrcc(k,i) = 0.d0
|
||||
endif
|
||||
enddo
|
||||
enddo
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ character*(32), dressing_type ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! [ Simple | MRCC ]
|
||||
END_DOC
|
||||
dressing_type = "MRCC"
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, delta_ij_non_cas, (N_det_non_cas, N_det_non_cas,N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Dressing matrix in SD basis
|
||||
END_DOC
|
||||
delta_ij_non_cas = 0.d0
|
||||
call H_apply_mrcc_simple(delta_ij_non_cas,N_det_non_cas)
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, delta_ij, (N_det,N_det,N_states) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Dressing matrix in N_det basis
|
||||
END_DOC
|
||||
integer :: i,j,m
|
||||
delta_ij = 0.d0
|
||||
if (dressing_type == "MRCC") then
|
||||
call H_apply_mrcc(delta_ij,N_det)
|
||||
else if (dressing_type == "Simple") then
|
||||
do m=1,N_states
|
||||
do j=1,N_det_non_cas
|
||||
do i=1,N_det_non_cas
|
||||
delta_ij(idx_non_cas(i),idx_non_cas(j),m) = delta_ij_non_cas(i,j,m)
|
||||
enddo
|
||||
enddo
|
||||
enddo
|
||||
endif
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, h_matrix_dressed, (N_det,N_det) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Dressed H with Delta_ij
|
||||
END_DOC
|
||||
integer :: i, j
|
||||
do j=1,N_det
|
||||
do i=1,N_det
|
||||
h_matrix_dressed(i,j) = h_matrix_all_dets(i,j) + delta_ij(i,j,1)
|
||||
enddo
|
||||
enddo
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
|
||||
BEGIN_PROVIDER [ double precision, CI_electronic_energy_dressed, (N_states_diag) ]
|
||||
&BEGIN_PROVIDER [ double precision, CI_eigenvectors_dressed, (N_det,N_states_diag) ]
|
||||
&BEGIN_PROVIDER [ double precision, CI_eigenvectors_s2_dressed, (N_states_diag) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Eigenvectors/values of the CI matrix
|
||||
END_DOC
|
||||
integer :: i,j
|
||||
|
||||
do j=1,N_states_diag
|
||||
do i=1,N_det
|
||||
CI_eigenvectors_dressed(i,j) = psi_coef(i,j)
|
||||
enddo
|
||||
enddo
|
||||
|
||||
if (diag_algorithm == "Davidson") then
|
||||
|
||||
stop 'use Lapack'
|
||||
! call davidson_diag(psi_det,CI_eigenvectors_dressed,CI_electronic_energy_dressed, &
|
||||
! size(CI_eigenvectors_dressed,1),N_det,N_states_diag,N_int,output_Dets)
|
||||
|
||||
else if (diag_algorithm == "Lapack") then
|
||||
|
||||
double precision, allocatable :: eigenvectors(:,:), eigenvalues(:)
|
||||
allocate (eigenvectors(size(H_matrix_dressed,1),N_det))
|
||||
allocate (eigenvalues(N_det))
|
||||
call lapack_diag(eigenvalues,eigenvectors, &
|
||||
H_matrix_dressed,size(H_matrix_dressed,1),N_det)
|
||||
CI_electronic_energy_dressed(:) = 0.d0
|
||||
do i=1,N_det
|
||||
CI_eigenvectors_dressed(i,1) = eigenvectors(i,1)
|
||||
enddo
|
||||
integer :: i_state
|
||||
double precision :: s2
|
||||
i_state = 0
|
||||
do j=1,N_det
|
||||
call get_s2_u0(psi_det,eigenvectors(1,j),N_det,N_det,s2)
|
||||
if(dabs(s2-expected_s2).le.0.3d0)then
|
||||
i_state += 1
|
||||
do i=1,N_det
|
||||
CI_eigenvectors_dressed(i,i_state) = eigenvectors(i,j)
|
||||
enddo
|
||||
CI_electronic_energy_dressed(i_state) = eigenvalues(j)
|
||||
CI_eigenvectors_s2_dressed(i_state) = s2
|
||||
endif
|
||||
if (i_state.ge.N_states_diag) then
|
||||
exit
|
||||
endif
|
||||
enddo
|
||||
deallocate(eigenvectors,eigenvalues)
|
||||
endif
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
BEGIN_PROVIDER [ double precision, CI_energy_dressed, (N_states_diag) ]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! N_states lowest eigenvalues of the dressed CI matrix
|
||||
END_DOC
|
||||
|
||||
integer :: j
|
||||
character*(8) :: st
|
||||
call write_time(output_Dets)
|
||||
do j=1,N_states_diag
|
||||
CI_energy_dressed(j) = CI_electronic_energy_dressed(j) + nuclear_repulsion
|
||||
enddo
|
||||
|
||||
END_PROVIDER
|
||||
|
||||
subroutine diagonalize_CI_dressed
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Replace the coefficients of the CI states by the coefficients of the
|
||||
! eigenstates of the CI matrix
|
||||
END_DOC
|
||||
integer :: i,j
|
||||
do j=1,N_states_diag
|
||||
do i=1,N_det
|
||||
psi_coef(i,j) = CI_eigenvectors_dressed(i,j)
|
||||
enddo
|
||||
enddo
|
||||
SOFT_TOUCH psi_coef
|
||||
|
||||
end
|
||||
|
@ -16,6 +16,10 @@ default: ezfio
|
||||
|
||||
veryclean:
|
||||
$(QPACKAGE_ROOT)/scripts/clean_modules.sh $(ALL_MODULES)
|
||||
# Define the dict [type in EZFIO.cfg] = ocaml type , f90 type
|
||||
# If you change the qptypes_generator.ml, you need to rm this
|
||||
# For simplicity add this to the veryclean rule
|
||||
rm $(QPACKAGE_ROOT)/scripts/ezfio_interface/fancy_type.p
|
||||
|
||||
$(ALL_MODULES): ezfio
|
||||
$(QPACKAGE_ROOT)/scripts/build_modules.sh $@
|
||||
|
@ -2,3 +2,40 @@
|
||||
Molden Module
|
||||
=============
|
||||
|
||||
Documentation
|
||||
=============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`print_mos <http://github.com/LCPQ/quantum_package/tree/master/src/Molden/print_mo.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`write_ao_basis <http://github.com/LCPQ/quantum_package/tree/master/src/Molden/print_mo.irp.f#L63>`_
|
||||
Undocumented
|
||||
|
||||
`write_geometry <http://github.com/LCPQ/quantum_package/tree/master/src/Molden/print_mo.irp.f#L45>`_
|
||||
Undocumented
|
||||
|
||||
`write_intro_gamess <http://github.com/LCPQ/quantum_package/tree/master/src/Molden/print_mo.irp.f#L26>`_
|
||||
Undocumented
|
||||
|
||||
`write_mo_basis <http://github.com/LCPQ/quantum_package/tree/master/src/Molden/print_mo.irp.f#L112>`_
|
||||
Undocumented
|
||||
|
||||
|
||||
|
||||
Needed Modules
|
||||
==============
|
||||
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
* `Output <http://github.com/LCPQ/quantum_package/tree/master/src/Output>`_
|
||||
* `Utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils>`_
|
||||
|
||||
|
@ -18,30 +18,10 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`ao_mono_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/ao_mono_ints.irp.f#L122>`_
|
||||
`ao_mono_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/ao_mono_ints.irp.f#L1>`_
|
||||
array of the mono electronic hamiltonian on the AOs basis
|
||||
: sum of the kinetic and nuclear electronic potential
|
||||
|
||||
`ao_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/ao_mono_ints.irp.f#L1>`_
|
||||
Overlap between atomic basis functions:
|
||||
:math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||
|
||||
`ao_overlap_abs <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/ao_mono_ints.irp.f#L65>`_
|
||||
Overlap between absolute value of atomic basis functions:
|
||||
:math:`\int |\chi_i(r)| |\chi_j(r)| dr)`
|
||||
|
||||
`ao_overlap_x <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/ao_mono_ints.irp.f#L2>`_
|
||||
Overlap between atomic basis functions:
|
||||
:math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||
|
||||
`ao_overlap_y <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/ao_mono_ints.irp.f#L3>`_
|
||||
Overlap between atomic basis functions:
|
||||
:math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||
|
||||
`ao_overlap_z <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/ao_mono_ints.irp.f#L4>`_
|
||||
Overlap between atomic basis functions:
|
||||
:math:`\int \chi_i(r) \chi_j(r) dr)`
|
||||
|
||||
`check_ortho <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/check_orthonormality.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
@ -72,58 +52,63 @@ Documentation
|
||||
.br
|
||||
{\tt ao_deriv2_x} = \langle \chi_i(x,y,z) \frac{\partial^2}{\partial x^2} |\chi_j (x,y,z) \rangle
|
||||
|
||||
`ao_kinetic_integral <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/kin_ao_ints.irp.f#L126>`_
|
||||
`ao_kinetic_integral <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/kin_ao_ints.irp.f#L125>`_
|
||||
array of the priminitve basis kinetic integrals
|
||||
\langle \chi_i |\hat{T}| \chi_j \rangle
|
||||
|
||||
`mo_kinetic_integral <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/kin_mo_ints.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`mo_mono_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/mo_mono_ints.irp.f#L35>`_
|
||||
`mo_mono_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/mo_mono_ints.irp.f#L1>`_
|
||||
array of the mono electronic hamiltonian on the MOs basis
|
||||
: sum of the kinetic and nuclear electronic potential
|
||||
|
||||
`mo_overlap <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/mo_mono_ints.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`orthonormalize_mos <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/orthonormalize.irp.f#L1>`_
|
||||
Undocumented
|
||||
|
||||
`ao_nucl_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L1>`_
|
||||
interaction nuclear electron
|
||||
|
||||
`give_polynom_mult_center_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L161>`_
|
||||
`ao_nucl_elec_integral_per_atom <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L67>`_
|
||||
ao_nucl_elec_integral_per_atom(i,j,k) = -<AO(i)|1/|r-Rk|AO(j)>
|
||||
where Rk is the geometry of the kth atom
|
||||
|
||||
`give_polynom_mult_center_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L214>`_
|
||||
Undocumented
|
||||
|
||||
`i_x1_pol_mult_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L289>`_
|
||||
`i_x1_pol_mult_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L342>`_
|
||||
Undocumented
|
||||
|
||||
`i_x2_pol_mult_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L361>`_
|
||||
`i_x2_pol_mult_mono_elec <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L413>`_
|
||||
Undocumented
|
||||
|
||||
`int_gaus_pol <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L432>`_
|
||||
`int_gaus_pol <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L484>`_
|
||||
Undocumented
|
||||
|
||||
`nai_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L82>`_
|
||||
`nai_pol_mult <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L135>`_
|
||||
Undocumented
|
||||
|
||||
`v_e_n <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L413>`_
|
||||
`v_e_n <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L465>`_
|
||||
Undocumented
|
||||
|
||||
`v_phi <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L477>`_
|
||||
`v_phi <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L529>`_
|
||||
Undocumented
|
||||
|
||||
`v_r <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L461>`_
|
||||
`v_r <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L513>`_
|
||||
Undocumented
|
||||
|
||||
`v_theta <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L490>`_
|
||||
`v_theta <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L542>`_
|
||||
Undocumented
|
||||
|
||||
`wallis <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L506>`_
|
||||
`wallis <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_ao_ints.irp.f#L558>`_
|
||||
Undocumented
|
||||
|
||||
`mo_nucl_elec_integral <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_mo_ints.irp.f#L1>`_
|
||||
Undocumented
|
||||
interaction nuclear electron on the MO basis
|
||||
|
||||
`mo_nucl_elec_integral_per_atom <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/pot_mo_ints.irp.f#L30>`_
|
||||
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
|
||||
|
||||
`save_ortho_mos <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/save_ortho_mos.irp.f#L1>`_
|
||||
Undocumented
|
||||
@ -173,7 +158,7 @@ Documentation
|
||||
array of the integrals of AO_i * y^2 AO_j
|
||||
array of the integrals of AO_i * z^2 AO_j
|
||||
|
||||
`overlap_bourrin_deriv_x <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/spread_dipole_ao.irp.f#L359>`_
|
||||
`overlap_bourrin_deriv_x <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/spread_dipole_ao.irp.f#L365>`_
|
||||
Undocumented
|
||||
|
||||
`overlap_bourrin_dipole <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/spread_dipole_ao.irp.f#L318>`_
|
||||
@ -182,7 +167,7 @@ Documentation
|
||||
`overlap_bourrin_spread <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/spread_dipole_ao.irp.f#L265>`_
|
||||
Undocumented
|
||||
|
||||
`overlap_bourrin_x <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/spread_dipole_ao.irp.f#L374>`_
|
||||
`overlap_bourrin_x <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/spread_dipole_ao.irp.f#L380>`_
|
||||
Undocumented
|
||||
|
||||
`overlap_bourrin_x_abs <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts/spread_dipole_ao.irp.f#L226>`_
|
||||
|
@ -1 +1 @@
|
||||
AOs Bielec_integrals Bitmask CID CID_SC2_selected CID_selected CIS CISD CISD_selected CISD_SC2_selected Dets Electrons Ezfio_files Full_CI Generators_full Hartree_Fock MOGuess MonoInts MOs MP2 Nuclei Output Selectors_full Utils Molden FCIdump Generators_CAS CAS_SD_selected DDCI_selected MRCC
|
||||
AOs Bielec_integrals Bitmask CID CID_SC2_selected CID_selected CIS CISD CISD_selected CISD_SC2_selected Dets Electrons Ezfio_files Full_CI Generators_full Hartree_Fock MOGuess MonoInts MOs MP2 Nuclei Output Selectors_full Utils Molden FCIdump Generators_CAS CAS_SD DDCI_selected MRCC
|
||||
|
@ -22,6 +22,9 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`element_name <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L215>`_
|
||||
Array of the name of element, sorted by nuclear charge (integer)
|
||||
|
||||
`nucl_charge <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L23>`_
|
||||
Nuclear charges
|
||||
|
||||
@ -65,8 +68,11 @@ Documentation
|
||||
`nucl_num_aligned <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L2>`_
|
||||
Number of nuclei
|
||||
|
||||
`nuclear_repulsion <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L171>`_
|
||||
`nuclear_repulsion <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L187>`_
|
||||
Nuclear repulsion energy
|
||||
|
||||
`positive_charge_barycentre <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei/nuclei.irp.f#L171>`_
|
||||
Centroid of the positive charges
|
||||
|
||||
|
||||
|
||||
|
@ -39,5 +39,23 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`output_cpu_time_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Output/output.irp.f#L2>`_
|
||||
Initial CPU and wall times when printing in the output files
|
||||
|
||||
`output_wall_time_0 <http://github.com/LCPQ/quantum_package/tree/master/src/Output/output.irp.f#L1>`_
|
||||
Initial CPU and wall times when printing in the output files
|
||||
|
||||
`write_bool <http://github.com/LCPQ/quantum_package/tree/master/src/Output/output.irp.f#L88>`_
|
||||
Write an logical value in output
|
||||
|
||||
`write_double <http://github.com/LCPQ/quantum_package/tree/master/src/Output/output.irp.f#L58>`_
|
||||
Write a double precision value in output
|
||||
|
||||
`write_int <http://github.com/LCPQ/quantum_package/tree/master/src/Output/output.irp.f#L73>`_
|
||||
Write an integer value in output
|
||||
|
||||
`write_time <http://github.com/LCPQ/quantum_package/tree/master/src/Output/output.irp.f#L42>`_
|
||||
Write a time stamp in the output for chronological reconstruction
|
||||
|
||||
|
||||
|
||||
|
@ -8,7 +8,18 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`coef_hf_selector <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L27>`_
|
||||
`coef_hf_selector <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L28>`_
|
||||
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||
.br
|
||||
for the all the double excitations in the selectors determinants
|
||||
.br
|
||||
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||
.br
|
||||
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||
.br
|
||||
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||
|
||||
`delta_e_per_selector <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L33>`_
|
||||
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||
.br
|
||||
for the all the double excitations in the selectors determinants
|
||||
@ -28,7 +39,29 @@ Documentation
|
||||
.br
|
||||
n_double_selectors = number of double excitations in the selectors determinants
|
||||
|
||||
`e_corr_per_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L28>`_
|
||||
`e_corr_double_only <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L34>`_
|
||||
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||
.br
|
||||
for the all the double excitations in the selectors determinants
|
||||
.br
|
||||
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||
.br
|
||||
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||
.br
|
||||
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||
|
||||
`e_corr_per_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L31>`_
|
||||
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||
.br
|
||||
for the all the double excitations in the selectors determinants
|
||||
.br
|
||||
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||
.br
|
||||
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||
.br
|
||||
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||
|
||||
`e_corr_second_order <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L35>`_
|
||||
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||
.br
|
||||
for the all the double excitations in the selectors determinants
|
||||
@ -48,6 +81,39 @@ Documentation
|
||||
.br
|
||||
n_double_selectors = number of double excitations in the selectors determinants
|
||||
|
||||
`i_h_hf_per_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L32>`_
|
||||
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||
.br
|
||||
for the all the double excitations in the selectors determinants
|
||||
.br
|
||||
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||
.br
|
||||
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||
.br
|
||||
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||
|
||||
`inv_selectors_coef_hf <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L29>`_
|
||||
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||
.br
|
||||
for the all the double excitations in the selectors determinants
|
||||
.br
|
||||
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||
.br
|
||||
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||
.br
|
||||
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||
|
||||
`inv_selectors_coef_hf_squared <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L30>`_
|
||||
energy of correlation per determinant respect to the Hartree Fock determinant
|
||||
.br
|
||||
for the all the double excitations in the selectors determinants
|
||||
.br
|
||||
E_corr_per_selectors(i) = <D_i|H|HF> * c(D_i)/c(HF) if |D_i> is a double excitation
|
||||
.br
|
||||
E_corr_per_selectors(i) = -1000.d0 if it is not a double excitation
|
||||
.br
|
||||
coef_hf_selector = coefficient of the Hartree Fock determinant in the selectors determinants
|
||||
|
||||
`n_double_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/e_corr_selectors.irp.f#L5>`_
|
||||
degree of excitation respect to Hartree Fock for the wave function
|
||||
.br
|
||||
@ -57,23 +123,40 @@ Documentation
|
||||
.br
|
||||
n_double_selectors = number of double excitations in the selectors determinants
|
||||
|
||||
`n_det_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L26>`_
|
||||
`n_det_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L20>`_
|
||||
For Single reference wave functions, the number of selectors is 1 : the
|
||||
Hartree-Fock determinant
|
||||
|
||||
`psi_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L48>`_
|
||||
`psi_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L42>`_
|
||||
Determinants on which we apply <i|H|psi> for perturbation.
|
||||
|
||||
`psi_selectors_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L49>`_
|
||||
`psi_selectors_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L76>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
`psi_selectors_coef <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L43>`_
|
||||
Determinants on which we apply <i|H|psi> for perturbation.
|
||||
|
||||
`psi_selectors_size <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L21>`_
|
||||
`psi_selectors_coef_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L77>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
`psi_selectors_diag_h_mat <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L63>`_
|
||||
Diagonal elements of the H matrix for each selectors
|
||||
|
||||
`psi_selectors_next_ab <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L78>`_
|
||||
Determinants on which we apply <i|H|j>.
|
||||
They are sorted by the 3 highest electrons in the alpha part,
|
||||
then by the 3 highest electrons in the beta part to accelerate
|
||||
the research of connected determinants.
|
||||
|
||||
`psi_selectors_size <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L15>`_
|
||||
Undocumented
|
||||
|
||||
`threshold_selectors <http://github.com/LCPQ/quantum_package/tree/master/src/Selectors_full/selectors.irp.f#L3>`_
|
||||
Percentage of the norm of the state-averaged wave function to
|
||||
consider for the selectors
|
||||
|
||||
|
||||
|
||||
Needed Modules
|
||||
@ -83,12 +166,13 @@ Needed Modules
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
* `AOs <http://github.com/LCPQ/quantum_package/tree/master/src/AOs>`_
|
||||
* `BiInts <http://github.com/LCPQ/quantum_package/tree/master/src/BiInts>`_
|
||||
* `Bielec_integrals <http://github.com/LCPQ/quantum_package/tree/master/src/Bielec_integrals>`_
|
||||
* `Bitmask <http://github.com/LCPQ/quantum_package/tree/master/src/Bitmask>`_
|
||||
* `Dets <http://github.com/LCPQ/quantum_package/tree/master/src/Dets>`_
|
||||
* `Electrons <http://github.com/LCPQ/quantum_package/tree/master/src/Electrons>`_
|
||||
* `Ezfio_files <http://github.com/LCPQ/quantum_package/tree/master/src/Ezfio_files>`_
|
||||
* `Hartree_Fock <http://github.com/LCPQ/quantum_package/tree/master/src/Hartree_Fock>`_
|
||||
* `MOGuess <http://github.com/LCPQ/quantum_package/tree/master/src/MOGuess>`_
|
||||
* `MonoInts <http://github.com/LCPQ/quantum_package/tree/master/src/MonoInts>`_
|
||||
* `MOs <http://github.com/LCPQ/quantum_package/tree/master/src/MOs>`_
|
||||
* `Nuclei <http://github.com/LCPQ/quantum_package/tree/master/src/Nuclei>`_
|
||||
|
@ -451,3 +451,6 @@ subroutine set_zero_extra_diag(i1,i2,matrix,lda,m)
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
@ -10,35 +10,104 @@ Documentation
|
||||
.. Do not edit this section. It was auto-generated from the
|
||||
.. NEEDED_MODULES file.
|
||||
|
||||
`apply_rotation <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L168>`_
|
||||
Apply the rotation found by find_rotation
|
||||
|
||||
`find_rotation <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L149>`_
|
||||
Find A.C = B
|
||||
|
||||
`get_pseudo_inverse <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L95>`_
|
||||
Find C = A^-1
|
||||
|
||||
`lapack_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L247>`_
|
||||
Diagonalize matrix H
|
||||
.br
|
||||
H is untouched between input and ouptut
|
||||
.br
|
||||
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||
.br
|
||||
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||
.br
|
||||
|
||||
`lapack_diag_s2 <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L310>`_
|
||||
Diagonalize matrix H
|
||||
.br
|
||||
H is untouched between input and ouptut
|
||||
.br
|
||||
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||
.br
|
||||
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||
.br
|
||||
|
||||
`lapack_diagd <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L180>`_
|
||||
Diagonalize matrix H
|
||||
.br
|
||||
H is untouched between input and ouptut
|
||||
.br
|
||||
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||
.br
|
||||
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||
.br
|
||||
|
||||
`lapack_partial_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L376>`_
|
||||
Diagonalize matrix H
|
||||
.br
|
||||
H is untouched between input and ouptut
|
||||
.br
|
||||
eigevalues(i) = ith lowest eigenvalue of the H matrix
|
||||
.br
|
||||
eigvectors(i,j) = <i|psi_j> where i is the basis function and psi_j is the j th eigenvector
|
||||
.br
|
||||
|
||||
`ortho_lowdin <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L1>`_
|
||||
Compute C_new=C_old.S^-1/2 canonical orthogonalization.
|
||||
.br
|
||||
overlap : overlap matrix
|
||||
.br
|
||||
LDA : leftmost dimension of overlap array
|
||||
.br
|
||||
N : Overlap matrix is NxN (array is (LDA,N) )
|
||||
.br
|
||||
C : Coefficients of the vectors to orthogonalize. On exit,
|
||||
orthogonal vectors
|
||||
.br
|
||||
LDC : leftmost dimension of C
|
||||
.br
|
||||
m : Coefficients matrix is MxN, ( array is (LDC,N) )
|
||||
.br
|
||||
|
||||
`set_zero_extra_diag <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/LinearAlgebra.irp.f#L433>`_
|
||||
Undocumented
|
||||
|
||||
`abort_all <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/abort.irp.f#L1>`_
|
||||
If True, all the calculation is aborted
|
||||
|
||||
`abort_here <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/abort.irp.f#L10>`_
|
||||
`abort_here <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/abort.irp.f#L11>`_
|
||||
If True, all the calculation is aborted
|
||||
|
||||
`catch_signal <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/abort.irp.f#L33>`_
|
||||
`catch_signal <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/abort.irp.f#L30>`_
|
||||
What to do on Ctrl-C. If two Ctrl-C are pressed within 1 sec, the calculation if aborted.
|
||||
|
||||
`trap_signals <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/abort.irp.f#L18>`_
|
||||
`trap_signals <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/abort.irp.f#L19>`_
|
||||
What to do when a signal is caught. Here, trap Ctrl-C and call the control_C subroutine.
|
||||
|
||||
`add_poly <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L243>`_
|
||||
`add_poly <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L306>`_
|
||||
Add two polynomials
|
||||
D(t) =! D(t) +( B(t)+C(t))
|
||||
|
||||
`add_poly_multiply <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L271>`_
|
||||
`add_poly_multiply <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L334>`_
|
||||
Add a polynomial multiplied by a constant
|
||||
D(t) =! D(t) +( cst * B(t))
|
||||
|
||||
`f_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L345>`_
|
||||
`f_integral <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L408>`_
|
||||
function that calculates the following integral
|
||||
\int_{\-infty}^{+\infty} x^n \exp(-p x^2) dx
|
||||
|
||||
`gaussian_product <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L121>`_
|
||||
`gaussian_product <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L184>`_
|
||||
Gaussian product in 1D.
|
||||
e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2}
|
||||
|
||||
`gaussian_product_x <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L163>`_
|
||||
`gaussian_product_x <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L226>`_
|
||||
Gaussian product in 1D.
|
||||
e^{-a (x-x_A)^2} e^{-b (x-x_B)^2} = K_{ab}^x e^{-p (x-x_P)^2}
|
||||
|
||||
@ -50,106 +119,146 @@ Documentation
|
||||
* [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 )
|
||||
* [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 )
|
||||
|
||||
`give_explicit_poly_and_gaussian_double <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L122>`_
|
||||
Transforms the product of
|
||||
(x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3)
|
||||
exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta) exp(-(r-Nucl_center)^2 gama
|
||||
.br
|
||||
into
|
||||
fact_k * [ sum (l_x = 0,i_order(1)) P_new(l_x,1) * (x-P_center(1))^l_x ] exp (- p (x-P_center(1))^2 )
|
||||
* [ sum (l_y = 0,i_order(2)) P_new(l_y,2) * (y-P_center(2))^l_y ] exp (- p (y-P_center(2))^2 )
|
||||
* [ sum (l_z = 0,i_order(3)) P_new(l_z,3) * (z-P_center(3))^l_z ] exp (- p (z-P_center(3))^2 )
|
||||
|
||||
`give_explicit_poly_and_gaussian_x <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L1>`_
|
||||
Transform the product of
|
||||
(x-x_A)^a(1) (x-x_B)^b(1) (x-x_A)^a(2) (y-y_B)^b(2) (z-z_A)^a(3) (z-z_B)^b(3) exp(-(r-A)^2 alpha) exp(-(r-B)^2 beta)
|
||||
into
|
||||
fact_k (x-x_P)^iorder(1) (y-y_P)^iorder(2) (z-z_P)^iorder(3) exp(-p(r-P)^2)
|
||||
|
||||
`hermite <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L477>`_
|
||||
`hermite <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L540>`_
|
||||
Hermite polynomial
|
||||
|
||||
`multiply_poly <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L201>`_
|
||||
`multiply_poly <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L264>`_
|
||||
Multiply two polynomials
|
||||
D(t) =! D(t) +( B(t)*C(t))
|
||||
|
||||
`recentered_poly2 <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L300>`_
|
||||
`recentered_poly2 <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L363>`_
|
||||
Recenter two polynomials
|
||||
|
||||
`rint <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L373>`_
|
||||
`rint <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L436>`_
|
||||
.. math::
|
||||
.br
|
||||
\int_0^1 dx \exp(-p x^2) x^n
|
||||
.br
|
||||
|
||||
`rint1 <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L533>`_
|
||||
`rint1 <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L596>`_
|
||||
Standard version of rint
|
||||
|
||||
`rint_large_n <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L502>`_
|
||||
`rint_large_n <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L565>`_
|
||||
Version of rint for large values of n
|
||||
|
||||
`rint_sum <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L421>`_
|
||||
`rint_sum <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/integration.irp.f#L484>`_
|
||||
Needed for the calculation of two-electron integrals.
|
||||
|
||||
`overlap_a_b_c <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/one_e_integration.irp.f#L35>`_
|
||||
Undocumented
|
||||
|
||||
`overlap_gaussian_x <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/one_e_integration.irp.f#L1>`_
|
||||
.. math::
|
||||
.br
|
||||
\sum_{-infty}^{+infty} (x-A_x)^ax (x-B_x)^bx exp(-alpha(x-A_x)^2) exp(-beta(x-B_X)^2) dx
|
||||
.br
|
||||
|
||||
`overlap_gaussian_xyz <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/one_e_integration.irp.f#L37>`_
|
||||
`overlap_gaussian_xyz <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/one_e_integration.irp.f#L113>`_
|
||||
.. math::
|
||||
.br
|
||||
S_x = \int (x-A_x)^{a_x} exp(-\alpha(x-A_x)^2) (x-B_x)^{b_x} exp(-beta(x-B_x)^2) dx \\
|
||||
S = S_x S_y S_z
|
||||
.br
|
||||
|
||||
`overlap_x_abs <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/one_e_integration.irp.f#L99>`_
|
||||
`overlap_x_abs <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/one_e_integration.irp.f#L175>`_
|
||||
.. math ::
|
||||
.br
|
||||
\int_{-infty}^{+infty} (x-A_center)^(power_A) * (x-B_center)^power_B * exp(-alpha(x-A_center)^2) * exp(-beta(x-B_center)^2) dx
|
||||
.br
|
||||
|
||||
`align_double <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L70>`_
|
||||
`progress_active <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L29>`_
|
||||
Current status for displaying progress bars. Global variable.
|
||||
|
||||
`progress_bar <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L27>`_
|
||||
Current status for displaying progress bars. Global variable.
|
||||
|
||||
`progress_timeout <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L28>`_
|
||||
Current status for displaying progress bars. Global variable.
|
||||
|
||||
`progress_title <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L31>`_
|
||||
Current status for displaying progress bars. Global variable.
|
||||
|
||||
`progress_value <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L30>`_
|
||||
Current status for displaying progress bars. Global variable.
|
||||
|
||||
`run_progress <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L45>`_
|
||||
Display a progress bar with documentation of what is happening
|
||||
|
||||
`start_progress <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L1>`_
|
||||
Starts the progress bar
|
||||
|
||||
`stop_progress <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/progress.irp.f#L19>`_
|
||||
Stop the progress bar
|
||||
|
||||
`align_double <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L48>`_
|
||||
Compute 1st dimension such that it is aligned for vectorization.
|
||||
|
||||
`all_utils <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L1>`_
|
||||
Dummy provider to provide all utils
|
||||
|
||||
`approx_dble <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L299>`_
|
||||
`approx_dble <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L341>`_
|
||||
Undocumented
|
||||
|
||||
`binom <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L52>`_
|
||||
`binom <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L31>`_
|
||||
Binomial coefficients
|
||||
|
||||
`binom_func <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L21>`_
|
||||
`binom_func <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L1>`_
|
||||
.. math ::
|
||||
.br
|
||||
\frac{i!}{j!(i-j)!}
|
||||
.br
|
||||
|
||||
`binom_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L53>`_
|
||||
`binom_transp <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L32>`_
|
||||
Binomial coefficients
|
||||
|
||||
`dble_fact <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L129>`_
|
||||
`dble_fact <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L137>`_
|
||||
n!!
|
||||
|
||||
`fact <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L85>`_
|
||||
`dble_logfact <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L171>`_
|
||||
n!!
|
||||
|
||||
`fact <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L63>`_
|
||||
n!
|
||||
|
||||
`fact_inv <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L117>`_
|
||||
`fact_inv <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L125>`_
|
||||
1/n!
|
||||
|
||||
`inv_int <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L176>`_
|
||||
`inv_int <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L218>`_
|
||||
1/i
|
||||
|
||||
`normalize <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L275>`_
|
||||
`logfact <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L93>`_
|
||||
n!
|
||||
|
||||
`normalize <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L317>`_
|
||||
Normalizes vector u
|
||||
u is expected to be aligned in memory.
|
||||
|
||||
`nproc <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L202>`_
|
||||
`nproc <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L244>`_
|
||||
Number of current OpenMP threads
|
||||
|
||||
`u_dot_u <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L244>`_
|
||||
`u_dot_u <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L286>`_
|
||||
Compute <u|u>
|
||||
|
||||
`u_dot_v <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L218>`_
|
||||
`u_dot_v <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L260>`_
|
||||
Compute <u|v>
|
||||
|
||||
`wall_time <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L187>`_
|
||||
`wall_time <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L229>`_
|
||||
The equivalent of cpu_time, but for the wall time.
|
||||
|
||||
`write_git_log <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L162>`_
|
||||
`write_git_log <http://github.com/LCPQ/quantum_package/tree/master/src/Utils/util.irp.f#L204>`_
|
||||
Write the last git commit in file iunit.
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user