mirror of
https://github.com/LCPQ/quantum_package
synced 2024-12-22 12:23:48 +01:00
Fixed QMCPACK bugs (Issue #154)
This commit is contained in:
parent
92094534e2
commit
6b3ba6a99e
@ -11,7 +11,8 @@ module Determinants_by_hand : sig
|
||||
psi_coef : Det_coef.t array;
|
||||
psi_det : Determinant.t array;
|
||||
} with sexp
|
||||
val read : unit -> t option
|
||||
val read : unit -> t
|
||||
val read_maybe : unit -> t option
|
||||
val write : t -> unit
|
||||
val to_string : t -> string
|
||||
val to_rst : t -> Rst_string.t
|
||||
@ -210,13 +211,6 @@ end = struct
|
||||
|
||||
let read () =
|
||||
if (Ezfio.has_mo_basis_mo_tot_num ()) then
|
||||
let n_det =
|
||||
read_n_det ()
|
||||
in
|
||||
if ( (Det_number.to_int n_det) > n_det_read_max ) then
|
||||
None
|
||||
else
|
||||
Some
|
||||
{ n_int = read_n_int () ;
|
||||
bit_kind = read_bit_kind () ;
|
||||
n_det = read_n_det () ;
|
||||
@ -224,6 +218,17 @@ end = struct
|
||||
psi_coef = read_psi_coef () ;
|
||||
psi_det = read_psi_det () ;
|
||||
}
|
||||
else
|
||||
failwith "No molecular orbitals, so no determinants"
|
||||
;;
|
||||
|
||||
let read_maybe () =
|
||||
let n_det =
|
||||
read_n_det ()
|
||||
in
|
||||
if ( (Det_number.to_int n_det) < n_det_read_max ) then
|
||||
try Some (read ()) with
|
||||
| Failure _ -> None
|
||||
else
|
||||
None
|
||||
;;
|
||||
|
@ -36,7 +36,7 @@ let bind_socket ~socket_type ~socket ~address =
|
||||
| 0 -> failwith @@ Printf.sprintf
|
||||
"Unable to bind the %s socket : %s "
|
||||
socket_type address
|
||||
| -1 -> ();
|
||||
| -1 -> ()
|
||||
| i ->
|
||||
try
|
||||
ZMQ.Socket.bind socket address;
|
||||
|
@ -43,9 +43,7 @@ let psi_det () =
|
||||
failwith "Error reading EZFIO file";
|
||||
Ezfio.set_file ezfio_filename;
|
||||
let psi_det =
|
||||
match Input.Determinants_by_hand.read () with
|
||||
| Some psi_det -> psi_det
|
||||
| _ -> failwith "Error reading the mo set"
|
||||
Input.Determinants_by_hand.read ()
|
||||
in
|
||||
Input.Determinants_by_hand.to_rst psi_det
|
||||
|> Rst_string.to_string
|
||||
@ -56,5 +54,5 @@ let psi_det () =
|
||||
let () =
|
||||
basis ();
|
||||
mo ();
|
||||
psi_det ();
|
||||
psi_det ()
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
open Core.Std
|
||||
|
||||
let () =
|
||||
Message.of_string "new_job tcp://127.0.0.1 inproc://ao_ints:12345 ao_integrals"
|
||||
Message.of_string "new_job ao_integrals tcp://127.0.0.1 inproc://ao_ints:12345"
|
||||
|> Message.to_string
|
||||
|> print_endline
|
||||
;
|
||||
@ -37,7 +37,7 @@ let () =
|
||||
;
|
||||
|
||||
try
|
||||
Message.of_string "new_job inproc://ao_ints tcp://127.0.0.1:12345 ao_integrals"
|
||||
Message.of_string "new_job ao_integrals inproc://ao_ints tcp://127.0.0.1:12345"
|
||||
|> Message.to_string
|
||||
|> print_endline
|
||||
;
|
||||
|
@ -14,6 +14,12 @@ program qmcpack
|
||||
enddo
|
||||
enddo
|
||||
call ezfio_set_ao_basis_ao_coef(ao_coef)
|
||||
do j=1,mo_tot_num
|
||||
do i=1,ao_num
|
||||
mo_coef(i,j) *= 1.d0/ao_coef_normalization_factor(i)
|
||||
enddo
|
||||
enddo
|
||||
call save_mos
|
||||
call system('rm '//trim(ezfio_filename)//'/mo_basis/ao_md5')
|
||||
call system('$QP_ROOT/src/qmcpack/qp_convert_qmcpack_to_ezfio.py '//trim(ezfio_filename))
|
||||
|
||||
|
@ -75,7 +75,7 @@ let get s =
|
||||
| Ao_basis ->
|
||||
f Ao_basis.(read, to_rst)
|
||||
| Determinants_by_hand ->
|
||||
f Determinants_by_hand.(read, to_rst)
|
||||
f Determinants_by_hand.(read_maybe, to_rst)
|
||||
{section_to_rst}
|
||||
end
|
||||
with
|
||||
|
@ -50,9 +50,6 @@ END_PROVIDER
|
||||
enddo
|
||||
enddo
|
||||
ao_coef_normalization_factor(i) = 1.d0/sqrt(norm)
|
||||
do j=1,ao_prim_num(i)
|
||||
ao_coef_normalized(i,j) = ao_coef_normalized(i,j) * ao_coef_normalization_factor(i)
|
||||
enddo
|
||||
enddo
|
||||
END_PROVIDER
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user