Skip to content

Commit

Permalink
Merge branch 'dev-stable' of https://github.com/QuantumPackage/qp2 in…
Browse files Browse the repository at this point in the history
…to dev-stable
  • Loading branch information
eginer committed May 3, 2024
2 parents 13785b2 + 944c41b commit 96f2312
Show file tree
Hide file tree
Showing 6 changed files with 35 additions and 18 deletions.
13 changes: 9 additions & 4 deletions ocaml/Atom.ml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,15 @@ let of_string ~units s =
}
| [ name; x; y; z ] ->
let e = Element.of_string name in
{ element = e ;
charge = Element.to_charge e;
coord = Point3d.of_string ~units (String.concat " " [x; y; z])
}
begin
try
{ element = e ;
charge = Element.to_charge e;
coord = Point3d.of_string ~units (String.concat " " [x; y; z])
}
with
| err -> (Printf.eprintf "name = \"%s\"\nxyz = (%s,%s,%s)\n%!" name x y z ; raise err)
end
| _ -> raise (AtomError s)


Expand Down
12 changes: 11 additions & 1 deletion ocaml/Molecule.ml
Original file line number Diff line number Diff line change
Expand Up @@ -142,13 +142,21 @@ let of_xyz_string
result


let regexp_r = Str.regexp {||}
let regexp_t = Str.regexp {| |}


let of_xyz_file
?(charge=(Charge.of_int 0)) ?(multiplicity=(Multiplicity.of_int 1))
?(units=Units.Angstrom)
filename =
let lines =
match Io_ext.input_lines filename with
Io_ext.input_lines filename
|> List.map (fun s -> Str.global_replace regexp_r "" s)
|> List.map (fun s -> Str.global_replace regexp_t " " s)
in
let lines =
match lines with
| natoms :: title :: rest ->
let natoms =
try
Expand All @@ -173,6 +181,8 @@ let of_zmt_file
?(units=Units.Angstrom)
filename =
Io_ext.read_all filename
|> Str.global_replace regexp_r ""
|> Str.global_replace regexp_t " "
|> Zmatrix.of_string
|> Zmatrix.to_xyz_string
|> of_xyz_string ~charge ~multiplicity ~units
Expand Down
4 changes: 3 additions & 1 deletion ocaml/Point3d.ml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ let of_string ~units s =
let l = s
|> String_ext.split ~on:' '
|> List.filter (fun x -> x <> "")
|> list_map float_of_string
|> list_map (fun x ->
try float_of_string x with
| Failure msg -> (Printf.eprintf "Bad string: \"%s\"\n%!" x ; failwith msg) )
|> Array.of_list
in
{ x = l.(0) *. f ;
Expand Down
2 changes: 1 addition & 1 deletion plugins/local/tc_keywords/EZFIO.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ doc: If |true|, the MO basis is assumed to be bi-orthonormal
interface: ezfio,provider,ocaml
default: True

[symetric_fock_tc]
[symmetric_fock_tc]
type: logical
doc: If |true|, using F+F^t as Fock TC
interface: ezfio,provider,ocaml
Expand Down
20 changes: 10 additions & 10 deletions plugins/local/tc_scf/fock_hermit.irp.f
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
BEGIN_PROVIDER [ double precision, good_hermit_tc_fock_mat, (mo_num, mo_num)]

BEGIN_DOC
! good_hermit_tc_fock_mat = Hermitian Upper triangular Fock matrix
! good_hermit_tc_fock_mat = Hermitian Upper triangular Fock matrix
!
! The converged eigenvectors of such matrix yield to orthonormal vectors satisfying the left Brillouin theorem
END_DOC
Expand All @@ -14,11 +14,11 @@
good_hermit_tc_fock_mat = Fock_matrix_tc_mo_tot
do j = 1, mo_num
do i = 1, j-1
good_hermit_tc_fock_mat(i,j) = Fock_matrix_tc_mo_tot(j,i)
good_hermit_tc_fock_mat(i,j) = Fock_matrix_tc_mo_tot(j,i)
enddo
enddo

END_PROVIDER
END_PROVIDER

BEGIN_PROVIDER [ double precision, hermit_average_tc_fock_mat, (mo_num, mo_num)]

Expand All @@ -35,7 +35,7 @@
enddo
enddo

END_PROVIDER
END_PROVIDER


! ---
Expand All @@ -44,13 +44,13 @@
BEGIN_DOC
! square of gradient of the energy
END_DOC
if(symetric_fock_tc)then
if(symmetric_fock_tc)then
grad_hermit = grad_hermit_average_tc_fock_mat
else
grad_hermit = grad_good_hermit_tc_fock_mat
endif

END_PROVIDER
END_PROVIDER

BEGIN_PROVIDER [ double precision, grad_good_hermit_tc_fock_mat]
implicit none
Expand All @@ -64,7 +64,7 @@
grad_good_hermit_tc_fock_mat += dabs(good_hermit_tc_fock_mat(i,j))
enddo
enddo
END_PROVIDER
END_PROVIDER

! ---

Expand All @@ -80,7 +80,7 @@
grad_hermit_average_tc_fock_mat += dabs(hermit_average_tc_fock_mat(i,j))
enddo
enddo
END_PROVIDER
END_PROVIDER


! ---
Expand All @@ -95,8 +95,8 @@ subroutine save_good_hermit_tc_eigvectors()
sign = 1
label = "Canonical"
output = .False.
if(symetric_fock_tc)then

if(symmetric_fock_tc)then
call mo_as_eigvectors_of_mo_matrix(hermit_average_tc_fock_mat, mo_num, mo_num, label, sign, output)
else
call mo_as_eigvectors_of_mo_matrix(good_hermit_tc_fock_mat, mo_num, mo_num, label, sign, output)
Expand Down
2 changes: 1 addition & 1 deletion src/utils/util.irp.f
Original file line number Diff line number Diff line change
Expand Up @@ -327,12 +327,12 @@ subroutine wall_time(t)
end

BEGIN_PROVIDER [ integer, nproc ]
use omp_lib
implicit none
BEGIN_DOC
! Number of current OpenMP threads
END_DOC

integer, external :: omp_get_num_threads
nproc = 1
!$OMP PARALLEL
!$OMP MASTER
Expand Down

0 comments on commit 96f2312

Please sign in to comment.