mirror of
https://github.com/LCPQ/quantum_package
synced 2024-12-22 12:23:48 +01:00
Selection criterion fixed in var_pt2_ratio
This commit is contained in:
parent
025911df0b
commit
8e02fe0497
32
data/pseudo/tm
Normal file
32
data/pseudo/tm
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
Ag GEN 36 2
|
||||||
|
4
|
||||||
|
11.074 1 1.712
|
||||||
|
-166.201 2 1.391
|
||||||
|
255.676 2 1.194
|
||||||
|
-91.757 2 1.033
|
||||||
|
3
|
||||||
|
11.074 1 0.897
|
||||||
|
-22.6472 2 1.226
|
||||||
|
16.8557 2 0.9789
|
||||||
|
4
|
||||||
|
9.524 1 12.668
|
||||||
|
227.659 2 1.662
|
||||||
|
-363.576 2 1.4
|
||||||
|
150.286 2 1.205
|
||||||
|
|
||||||
|
Au GEN 68 2
|
||||||
|
4
|
||||||
|
10.881 1 2.286
|
||||||
|
-97.386 2 1.088
|
||||||
|
270.134 2 1.267
|
||||||
|
-171.733 2 1.499
|
||||||
|
3
|
||||||
|
10.721 1 1.38
|
||||||
|
-63.222 2 1.111
|
||||||
|
60.634 2 0.987
|
||||||
|
4
|
||||||
|
9.383 1 11.
|
||||||
|
225.822 2 1.66
|
||||||
|
286.233 2 1.342
|
||||||
|
-497.561 2 1.437
|
||||||
|
|
@ -780,6 +780,27 @@ Ar GEN 10 2
|
|||||||
-1386.79918148 2 4.23753203
|
-1386.79918148 2 4.23753203
|
||||||
1350.57102634 2 6.12344921
|
1350.57102634 2 6.12344921
|
||||||
|
|
||||||
|
Ag GEN 36 2
|
||||||
|
6
|
||||||
|
11.00000000 1 7.02317516
|
||||||
|
178.71479273 2 1.36779344
|
||||||
|
-206.54166000 2 1.85990342
|
||||||
|
92.80009949 2 2.70385827
|
||||||
|
-91.80009949 2 1.21149868
|
||||||
|
77.25492677 3 2.46247055
|
||||||
|
6
|
||||||
|
-19159.46923372 2 2.56205947
|
||||||
|
19178.09022506 2 3.28075183
|
||||||
|
-19956.12207989 2 3.86486918
|
||||||
|
12405.48540805 2 2.42437953
|
||||||
|
-8569.95659418 2 5.14643113
|
||||||
|
16121.59197935 2 4.79642660
|
||||||
|
6
|
||||||
|
-1054.66284551 2 1.92427691
|
||||||
|
1072.38275494 2 1.94184452
|
||||||
|
-1.15533162 2 27.95704514
|
||||||
|
88.48945385 2 1.25545336
|
||||||
|
-0.36033231 2 10.04954095
|
||||||
|
-85.97371403 2 1.49011553
|
||||||
|
|
||||||
|
|
||||||
|
219
ocaml/Element.ml
219
ocaml/Element.ml
@ -9,6 +9,7 @@ type t =
|
|||||||
|Li|Be |B |C |N |O |F |Ne
|
|Li|Be |B |C |N |O |F |Ne
|
||||||
|Na|Mg |Al|Si|P |S |Cl|Ar
|
|Na|Mg |Al|Si|P |S |Cl|Ar
|
||||||
|K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr
|
|K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr
|
||||||
|
|Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe
|
||||||
with sexp
|
with sexp
|
||||||
|
|
||||||
let of_string x =
|
let of_string x =
|
||||||
@ -50,6 +51,24 @@ let of_string x =
|
|||||||
| "Se" | "Selenium" -> Se
|
| "Se" | "Selenium" -> Se
|
||||||
| "Br" | "Bromine" -> Br
|
| "Br" | "Bromine" -> Br
|
||||||
| "Kr" | "Krypton" -> Kr
|
| "Kr" | "Krypton" -> Kr
|
||||||
|
| "Rb" | "Rubidium" -> Rb
|
||||||
|
| "Sr" | "Strontium" -> Sr
|
||||||
|
| "Y" | "Yttrium" -> Y
|
||||||
|
| "Zr" | "Zirconium" -> Zr
|
||||||
|
| "Nb" | "Niobium" -> Nb
|
||||||
|
| "Mo" | "Molybdenum" -> Mo
|
||||||
|
| "Tc" | "Technetium" -> Tc
|
||||||
|
| "Ru" | "Ruthenium" -> Ru
|
||||||
|
| "Rh" | "Rhodium" -> Rh
|
||||||
|
| "Pd" | "Palladium" -> Pd
|
||||||
|
| "Ag" | "Silver" -> Ag
|
||||||
|
| "Cd" | "Cadmium" -> Cd
|
||||||
|
| "In" | "Indium" -> In
|
||||||
|
| "Sn" | "Tin" -> Sn
|
||||||
|
| "Sb" | "Antimony" -> Sb
|
||||||
|
| "Te" | "Tellurium" -> Te
|
||||||
|
| "I" | "Iodine" -> I
|
||||||
|
| "Xe" | "Xenon" -> Xe
|
||||||
| x -> raise (ElementError ("Element "^x^" unknown"))
|
| x -> raise (ElementError ("Element "^x^" unknown"))
|
||||||
|
|
||||||
|
|
||||||
@ -91,6 +110,24 @@ let to_string = function
|
|||||||
| Se -> "Se"
|
| Se -> "Se"
|
||||||
| Br -> "Br"
|
| Br -> "Br"
|
||||||
| Kr -> "Kr"
|
| Kr -> "Kr"
|
||||||
|
| Rb -> "Rb"
|
||||||
|
| Sr -> "Sr"
|
||||||
|
| Y -> "Y"
|
||||||
|
| Zr -> "Zr"
|
||||||
|
| Nb -> "Nb"
|
||||||
|
| Mo -> "Mo"
|
||||||
|
| Tc -> "Tc"
|
||||||
|
| Ru -> "Ru"
|
||||||
|
| Rh -> "Rh"
|
||||||
|
| Pd -> "Pd"
|
||||||
|
| Ag -> "Ag"
|
||||||
|
| Cd -> "Cd"
|
||||||
|
| In -> "In"
|
||||||
|
| Sn -> "Sn"
|
||||||
|
| Sb -> "Sb"
|
||||||
|
| Te -> "Te"
|
||||||
|
| I -> "I"
|
||||||
|
| Xe -> "Xe"
|
||||||
|
|
||||||
|
|
||||||
let to_long_string = function
|
let to_long_string = function
|
||||||
@ -131,6 +168,24 @@ let to_long_string = function
|
|||||||
| Se -> "Selenium"
|
| Se -> "Selenium"
|
||||||
| Br -> "Bromine"
|
| Br -> "Bromine"
|
||||||
| Kr -> "Krypton"
|
| Kr -> "Krypton"
|
||||||
|
| Rb -> "Rubidium"
|
||||||
|
| Sr -> "Strontium"
|
||||||
|
| Y -> "Yttrium"
|
||||||
|
| Zr -> "Zirconium"
|
||||||
|
| Nb -> "Niobium"
|
||||||
|
| Mo -> "Molybdenum"
|
||||||
|
| Tc -> "Technetium"
|
||||||
|
| Ru -> "Ruthenium"
|
||||||
|
| Rh -> "Rhodium"
|
||||||
|
| Pd -> "Palladium"
|
||||||
|
| Ag -> "Silver"
|
||||||
|
| Cd -> "Cadmium"
|
||||||
|
| In -> "Indium"
|
||||||
|
| Sn -> "Tin"
|
||||||
|
| Sb -> "Antimony"
|
||||||
|
| Te -> "Tellurium"
|
||||||
|
| I -> "Iodine"
|
||||||
|
| Xe -> "Xenon"
|
||||||
|
|
||||||
|
|
||||||
let to_charge c =
|
let to_charge c =
|
||||||
@ -172,47 +227,83 @@ let to_charge c =
|
|||||||
| Se -> 34
|
| Se -> 34
|
||||||
| Br -> 35
|
| Br -> 35
|
||||||
| Kr -> 36
|
| Kr -> 36
|
||||||
|
| Rb -> 37
|
||||||
|
| Sr -> 38
|
||||||
|
| Y -> 39
|
||||||
|
| Zr -> 40
|
||||||
|
| Nb -> 41
|
||||||
|
| Mo -> 42
|
||||||
|
| Tc -> 43
|
||||||
|
| Ru -> 44
|
||||||
|
| Rh -> 45
|
||||||
|
| Pd -> 46
|
||||||
|
| Ag -> 47
|
||||||
|
| Cd -> 48
|
||||||
|
| In -> 49
|
||||||
|
| Sn -> 50
|
||||||
|
| Sb -> 51
|
||||||
|
| Te -> 52
|
||||||
|
| I -> 53
|
||||||
|
| Xe -> 54
|
||||||
in Charge.of_int result
|
in Charge.of_int result
|
||||||
|
|
||||||
|
|
||||||
let of_charge c = match (Charge.to_int c) with
|
let of_charge c = match (Charge.to_int c) with
|
||||||
| 0 -> X
|
| 0 -> X
|
||||||
| 1 -> H
|
| 1 -> H
|
||||||
| 2 -> He
|
| 2 -> He
|
||||||
| 3 -> Li
|
| 3 -> Li
|
||||||
| 4 -> Be
|
| 4 -> Be
|
||||||
| 5 -> B
|
| 5 -> B
|
||||||
| 6 -> C
|
| 6 -> C
|
||||||
| 7 -> N
|
| 7 -> N
|
||||||
| 8 -> O
|
| 8 -> O
|
||||||
| 9 -> F
|
| 9 -> F
|
||||||
| 10 -> Ne
|
| 10 -> Ne
|
||||||
| 11 -> Na
|
| 11 -> Na
|
||||||
| 12 -> Mg
|
| 12 -> Mg
|
||||||
| 13 -> Al
|
| 13 -> Al
|
||||||
| 14 -> Si
|
| 14 -> Si
|
||||||
| 15 -> P
|
| 15 -> P
|
||||||
| 16 -> S
|
| 16 -> S
|
||||||
| 17 -> Cl
|
| 17 -> Cl
|
||||||
| 18 -> Ar
|
| 18 -> Ar
|
||||||
| 19 -> K
|
| 19 -> K
|
||||||
| 20 -> Ca
|
| 20 -> Ca
|
||||||
| 21 -> Sc
|
| 21 -> Sc
|
||||||
| 22 -> Ti
|
| 22 -> Ti
|
||||||
| 23 -> V
|
| 23 -> V
|
||||||
| 24 -> Cr
|
| 24 -> Cr
|
||||||
| 25 -> Mn
|
| 25 -> Mn
|
||||||
| 26 -> Fe
|
| 26 -> Fe
|
||||||
| 27 -> Co
|
| 27 -> Co
|
||||||
| 28 -> Ni
|
| 28 -> Ni
|
||||||
| 29 -> Cu
|
| 29 -> Cu
|
||||||
| 30 -> Zn
|
| 30 -> Zn
|
||||||
| 31 -> Ga
|
| 31 -> Ga
|
||||||
| 32 -> Ge
|
| 32 -> Ge
|
||||||
| 33 -> As
|
| 33 -> As
|
||||||
| 34 -> Se
|
| 34 -> Se
|
||||||
| 35 -> Br
|
| 35 -> Br
|
||||||
| 36 -> Kr
|
| 36 -> Kr
|
||||||
|
| 37 -> Rb
|
||||||
|
| 38 -> Sr
|
||||||
|
| 39 -> Y
|
||||||
|
| 40 -> Zr
|
||||||
|
| 41 -> Nb
|
||||||
|
| 42 -> Mo
|
||||||
|
| 43 -> Tc
|
||||||
|
| 44 -> Ru
|
||||||
|
| 45 -> Rh
|
||||||
|
| 46 -> Pd
|
||||||
|
| 47 -> Ag
|
||||||
|
| 48 -> Cd
|
||||||
|
| 49 -> In
|
||||||
|
| 50 -> Sn
|
||||||
|
| 51 -> Sb
|
||||||
|
| 52 -> Te
|
||||||
|
| 53 -> I
|
||||||
|
| 54 -> Xe
|
||||||
| x -> raise (ElementError ("Element of charge "^(string_of_int x)^" unknown"))
|
| x -> raise (ElementError ("Element of charge "^(string_of_int x)^" unknown"))
|
||||||
|
|
||||||
|
|
||||||
@ -255,6 +346,24 @@ let covalent_radius x =
|
|||||||
| Se -> 0.70
|
| Se -> 0.70
|
||||||
| Br -> 1.24
|
| Br -> 1.24
|
||||||
| Kr -> 1.91
|
| Kr -> 1.91
|
||||||
|
| Rb -> 2.20
|
||||||
|
| Sr -> 1.95
|
||||||
|
| Y -> 1.90
|
||||||
|
| Zr -> 1.75
|
||||||
|
| Nb -> 1.64
|
||||||
|
| Mo -> 1.54
|
||||||
|
| Tc -> 1.47
|
||||||
|
| Ru -> 1.46
|
||||||
|
| Rh -> 1.42
|
||||||
|
| Pd -> 1.39
|
||||||
|
| Ag -> 1.45
|
||||||
|
| Cd -> 1.44
|
||||||
|
| In -> 1.42
|
||||||
|
| Sn -> 1.39
|
||||||
|
| Sb -> 1.39
|
||||||
|
| Te -> 1.38
|
||||||
|
| I -> 1.39
|
||||||
|
| Xe -> 1.40
|
||||||
in
|
in
|
||||||
Units.angstrom_to_bohr *. (result x)
|
Units.angstrom_to_bohr *. (result x)
|
||||||
|> Positive_float.of_float
|
|> Positive_float.of_float
|
||||||
@ -298,6 +407,24 @@ let vdw_radius x =
|
|||||||
| Se -> 1.70
|
| Se -> 1.70
|
||||||
| Br -> 2.10
|
| Br -> 2.10
|
||||||
| Kr -> 1.70
|
| Kr -> 1.70
|
||||||
|
| Rb -> 3.03
|
||||||
|
| Sr -> 2.49
|
||||||
|
| Y -> 0.
|
||||||
|
| Zr -> 0.
|
||||||
|
| Nb -> 0.
|
||||||
|
| Mo -> 0.
|
||||||
|
| Tc -> 0.
|
||||||
|
| Ru -> 0.
|
||||||
|
| Rh -> 0.
|
||||||
|
| Pd -> 1.63
|
||||||
|
| Ag -> 1.72
|
||||||
|
| Cd -> 1.58
|
||||||
|
| In -> 1.93
|
||||||
|
| Sn -> 2.17
|
||||||
|
| Sb -> 2.06
|
||||||
|
| Te -> 2.06
|
||||||
|
| I -> 1.98
|
||||||
|
| Xe -> 2.16
|
||||||
in
|
in
|
||||||
Units.angstrom_to_bohr *. (result x)
|
Units.angstrom_to_bohr *. (result x)
|
||||||
|> Positive_float.of_float
|
|> Positive_float.of_float
|
||||||
@ -341,6 +468,24 @@ let mass x =
|
|||||||
| Se -> 78.96
|
| Se -> 78.96
|
||||||
| Br -> 79.904
|
| Br -> 79.904
|
||||||
| Kr -> 83.80
|
| Kr -> 83.80
|
||||||
|
| Rb -> 85.4678
|
||||||
|
| Sr -> 87.62
|
||||||
|
| Y -> 88.90584
|
||||||
|
| Zr -> 91.224
|
||||||
|
| Nb -> 92.90637
|
||||||
|
| Mo -> 95.95
|
||||||
|
| Tc -> 98.
|
||||||
|
| Ru -> 101.07
|
||||||
|
| Rh -> 102.90550
|
||||||
|
| Pd -> 106.42
|
||||||
|
| Ag -> 107.8682
|
||||||
|
| Cd -> 112.414
|
||||||
|
| In -> 114.818
|
||||||
|
| Sn -> 118.710
|
||||||
|
| Sb -> 121.760
|
||||||
|
| Te -> 127.60
|
||||||
|
| I -> 126.90447
|
||||||
|
| Xe -> 131.293
|
||||||
in
|
in
|
||||||
result x
|
result x
|
||||||
|> Positive_float.of_float
|
|> Positive_float.of_float
|
||||||
|
@ -6,6 +6,7 @@ type t =
|
|||||||
|Li|Be |B |C |N |O |F |Ne
|
|Li|Be |B |C |N |O |F |Ne
|
||||||
|Na|Mg |Al|Si|P |S |Cl|Ar
|
|Na|Mg |Al|Si|P |S |Cl|Ar
|
||||||
|K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr
|
|K |Ca|Sc|Ti|V |Cr|Mn|Fe|Co|Ni|Cu|Zn|Ga|Ge|As|Se|Br|Kr
|
||||||
|
|Rb|Sr|Y |Zr|Nb|Mo|Tc|Ru|Rh|Pd|Ag|Cd|In|Sn|Sb|Te|I |Xe
|
||||||
with sexp
|
with sexp
|
||||||
|
|
||||||
(** String conversion functions *)
|
(** String conversion functions *)
|
||||||
|
@ -11,7 +11,7 @@ program var_pt2_ratio_run
|
|||||||
|
|
||||||
double precision, allocatable :: psi_det_save(:,:,:), psi_coef_save(:,:)
|
double precision, allocatable :: psi_det_save(:,:,:), psi_coef_save(:,:)
|
||||||
|
|
||||||
double precision :: E_fci, E_var, ratio, E_ref
|
double precision :: E_fci, E_var, ratio, E_ref, selection_criterion_save
|
||||||
integer :: Nmin, Nmax
|
integer :: Nmin, Nmax
|
||||||
|
|
||||||
pt2 = 1.d0
|
pt2 = 1.d0
|
||||||
@ -30,6 +30,7 @@ program var_pt2_ratio_run
|
|||||||
|
|
||||||
threshold_selectors = 1.d0
|
threshold_selectors = 1.d0
|
||||||
threshold_generators = 0.999d0
|
threshold_generators = 0.999d0
|
||||||
|
selection_criterion_save = selection_criterion
|
||||||
call diagonalize_CI
|
call diagonalize_CI
|
||||||
call H_apply_FCI_PT2(pt2, norm_pert, H_pert_diag, N_st)
|
call H_apply_FCI_PT2(pt2, norm_pert, H_pert_diag, N_st)
|
||||||
E_ref = CI_energy(1) + pt2(1)
|
E_ref = CI_energy(1) + pt2(1)
|
||||||
@ -46,6 +47,8 @@ program var_pt2_ratio_run
|
|||||||
Nmax = max(Nmax,Nmin+10)
|
Nmax = max(Nmax,Nmin+10)
|
||||||
! Select new determinants
|
! Select new determinants
|
||||||
call H_apply_FCI(pt2, norm_pert, H_pert_diag, N_st)
|
call H_apply_FCI(pt2, norm_pert, H_pert_diag, N_st)
|
||||||
|
selection_criterion = selection_criterion_save
|
||||||
|
SOFT_TOUCH selection_criterion selection_criterion_min selection_criterion_factor
|
||||||
else
|
else
|
||||||
Nmax = N_det
|
Nmax = N_det
|
||||||
N_det = Nmin + (Nmax-Nmin)/2
|
N_det = Nmin + (Nmax-Nmin)/2
|
||||||
|
@ -22,7 +22,7 @@ void* mmap_fortran(char* filename, size_t bytes, int* file_descr, int read_only)
|
|||||||
perror("Error opening mmap file for reading");
|
perror("Error opening mmap file for reading");
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
map = mmap(0, bytes, PROT_READ, MAP_SHARED, fd, 0);
|
map = mmap(NULL, bytes, PROT_READ, MAP_SHARED, fd, 0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -49,7 +49,7 @@ void* mmap_fortran(char* filename, size_t bytes, int* file_descr, int read_only)
|
|||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
map = mmap(0, bytes, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
map = mmap(NULL, bytes, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (map == MAP_FAILED) {
|
if (map == MAP_FAILED) {
|
||||||
|
Loading…
Reference in New Issue
Block a user