diff --git a/EZFIO b/EZFIO index ed1df9f..d580549 160000 --- a/EZFIO +++ b/EZFIO @@ -1 +1 @@ -Subproject commit ed1df9f3c1f51752656ca98da5693a4119add05c +Subproject commit d5805497fa0ef30e70e055cde1ecec2963303e93 diff --git a/bin/jast_opt.py b/bin/jast_opt.py index c16913e..3816be3 100755 --- a/bin/jast_opt.py +++ b/bin/jast_opt.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python3 -u +#!/usr/bin/env python3 import scipy as sp import scipy.optimize @@ -9,6 +9,8 @@ import time import subprocess from math import sqrt + + QMCCHEM_PATH=os.environ["QMCCHEM_PATH"] sys.path.insert(0,QMCCHEM_PATH+"/EZFIO/Python/") @@ -54,6 +56,7 @@ def main(): for m in atom_map: print(m[0]) print (d[m[0]]) + sys.stdout.flush() return np.array([d[m[0]] for m in atom_map]) @@ -118,6 +121,7 @@ def main(): memo_energy = {'fmin': 100000000.} def f(x): print ("x = %s"%str(x)) + sys.stdout.flush() h = str(x) if h in memo_energy: return memo_energy[h] @@ -144,6 +148,7 @@ def main(): energy = e #+ variance err = e_err #sqrt(e_err*e_err+v_err*v_err) print(" %f %f %f %f %f %f"%(e, e_err, variance, v_err, energy, err)) + sys.stdout.flush() if (energy-2.*err) > memo_energy['fmin']+thresh: local_thresh = 10.*thresh elif (energy+2.*err) < memo_energy['fmin']-thresh: @@ -154,6 +159,7 @@ def main(): os.kill(pid,0) except OSError: print("---") + sys.stdout.flush() break stop_qmc() os.wait() @@ -170,6 +176,7 @@ def main(): opt = sp.optimize.minimize(f,x,method="Powell", options= {'disp':True, 'ftol':thresh,'xtol':0.02}) print("x = "+str(opt)) + sys.stdout.flush() set_params_b(opt['x'][0]) set_params_pen(opt['x'][1:]) diff --git a/install/Makefile b/install/Makefile index afbf831..7266760 100644 --- a/install/Makefile +++ b/install/Makefile @@ -2,7 +2,7 @@ default_target: all Downloads/irpf90.tar.gz: wget --no-check-certificate \ - "https://gitlab.com/scemama/irpf90/-/archive/v2.0.0/irpf90-v2.0.0.tar.gz" \ + "https://gitlab.com/scemama/irpf90/-/archive/v2.0.5/irpf90-v2.0.5.tar.gz" \ -O $@.tmp -o /dev/null && mv $@.tmp $@ Downloads/ezfio.tar.gz: @@ -31,7 +31,7 @@ _build/irpf90.ok ../bin/irpman ../bin/irpf90: Downloads/irpf90.tar.gz touch _build/$${target}.ok || cat _build/$${target}.log -_build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.5 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h: Downloads/zmq.tar.gz +_build/zmq.ok: Downloads/zmq.tar.gz export target=zmq ; \ ./scripts/install_$${target}.sh > _build/$${target}.log 2>&1 &&\ touch _build/$${target}.ok || cat _build/$${target}.log @@ -41,31 +41,31 @@ _build/ezfio.ok: Downloads/ezfio.tar.gz ./scripts/install_$${target}.sh > _build/$${target}.log 2>&1 &&\ touch _build/$${target}.ok || cat _build/$${target}.log -_build/f77_zmq.ok ../src/ZMQ/f77_zmq.h ../lib/libf77zmq.a ../lib/libf77zmq.so: Downloads/f77_zmq.tar.gz _build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.5 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h +_build/f77_zmq.ok: Downloads/f77_zmq.tar.gz _build/zmq.ok export target=f77_zmq ; \ ./scripts/install_$${target}.sh > _build/$${target}.log 2>&1 &&\ touch _build/$${target}.ok || cat _build/$${target}.log -_build/qmcchemrc.ok ../qmcchemrc: _build/irpf90.ok ../bin/irpman ../bin/irpf90 _build/ezfio.ok +_build/qmcchemrc.ok: _build/irpf90.ok _build/ezfio.ok export target=qmcchemrc; \ ./scripts/install_$${target}.sh > _build/$${target}.log 2>&1 &&\ touch _build/$${target}.ok || cat _build/$${target}.log -_build/ocaml.ok ../bin/opam: Downloads/opam_installer.sh _build/qmcchemrc.ok ../qmcchemrc - which opam && touch _build/$${target}.ok ../bin/opam || \ +_build/ocaml.ok: Downloads/opam_installer.sh _build/qmcchemrc.ok ../qmcchemrc + which opam && touch _build/$${target}.ok || \ ( export target=ocaml; \ ./scripts/install_$${target}.sh > _build/$${target}.log 2>&1 &&\ touch _build/$${target}.ok || cat _build/$${target}.log ;\ ) -_build/ocaml_zmq.ok: ../bin/opam ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h _build/ocaml.ok _build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.5 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h +_build/ocaml_zmq.ok: _build/ocaml.ok export target=ocaml_zmq; \ ./scripts/install_$${target}.sh > _build/$${target}.log 2>&1 &&\ touch _build/$${target}.ok || cat _build/$${target}.log -all: _build/ocaml_zmq.ok _build/ocaml.ok ../bin/opam _build/qmcchemrc.ok ../qmcchemrc _build/f77_zmq.ok ../src/ZMQ/f77_zmq.h ../lib/libf77zmq.a ../lib/libf77zmq.so _build/ezfio.ok _build/zmq.ok ../lib/libzmq.a ../lib/libzmq.so.5 ../lib/libzmq.so ../lib/zmq.h ../lib/zmq_utils.h _build/irpf90.ok ../bin/irpman ../bin/irpf90 +all: _build/ocaml_zmq.ok _build/ocaml.ok _build/qmcchemrc.ok _build/f77_zmq.ok _build/ezfio.ok _build/zmq.ok _build/irpf90.ok @echo "Now, source again the qmcchemrc file" @echo "source $$QMCCHEM_PATH/qmcchemrc" diff --git a/ocaml/Qmcchem_result.ml b/ocaml/Qmcchem_result.ml index 06307aa..68106d8 100644 --- a/ocaml/Qmcchem_result.ml +++ b/ocaml/Qmcchem_result.ml @@ -139,9 +139,8 @@ let display_summary ~range = and print_property property = let p = Random_variable.of_raw_data ~range property in - Printf.printf "%20s : %s\n%!" - (Property.to_string property) - (Random_variable.to_string p) + Printf.printf "%20s : %!" (Property.to_string property); + Printf.printf "%s\n%!" (Random_variable.to_string p) in List.iter print_property properties ; diff --git a/ocaml/Random_variable.ml b/ocaml/Random_variable.ml index 13482ab..f408564 100644 --- a/ocaml/Random_variable.ml +++ b/ocaml/Random_variable.ml @@ -209,7 +209,7 @@ let ave_error { property ; data } = else ( Average.of_float (sum /. ansum), None) end - | (x,w) :: tail -> + | (x, w) :: tail -> begin let avcu0 = avsum /. ansum in let xw = x *. w in @@ -633,6 +633,7 @@ let to_string p = in Printf.sprintf "%16.10f" ave else +begin match ave_error p with | (ave, Some error) -> let idxmax = @@ -645,16 +646,18 @@ let to_string p = Error.to_float ~idx error in let s = - Printf.sprintf "%8d : %16.10f +/- %16.10f ;\n" (idx+1) ave error + Printf.sprintf "%8d : %16.10f +/- %16.10f ;" (idx+1) ave error in - f (accu ^ s) (idx+1) + (f [@tailcall]) (s :: accu) (idx+1) else - accu + List.rev (" ]" :: accu) in - (f "[ \n" 0) ^ " ]" + f ["[ \n"] 0 + |> String.concat "\n" | (ave, None) -> Average.to_float ave - |> Printf.sprintf "%16.10f" + |> Printf.sprintf "%16.10f%!" +end end diff --git a/ocaml/Sample.ml b/ocaml/Sample.ml index 60f3ced..b1b7e22 100644 --- a/ocaml/Sample.ml +++ b/ocaml/Sample.ml @@ -58,7 +58,10 @@ let of_bytes b = | 8 -> let x = Qptypes.float_of_bytes b in One_dimensional x | l -> let len = l/8 in +let result = Multidimensional ( Array.init len (fun i -> Bytes.get_int64_ne b (i*8) |> Int64.float_of_bits ), len ) +in +result diff --git a/scripts/compile_ezfio.sh b/scripts/compile_ezfio.sh index 19a550e..00abc4c 100755 --- a/scripts/compile_ezfio.sh +++ b/scripts/compile_ezfio.sh @@ -10,7 +10,10 @@ source make.config source qmcchemrc FCFLAGS="${FCFLAGS} -fPIC" export IRPF90 FC FCFLAGS AR RANLIB -cd EZFIO +cd EZFIO/config +[[ -f properties.config ]] || ln -s ../../ezfio_config/properties.config . +[[ -f qmc.config ]] || ln -s ../../ezfio_config/qmc.config . +cd .. source ../make.config make || exit -1 cp lib/libezfio{,_irp}.a ${QMCCHEM_PATH}/lib/ || exit 1