From cf394ce17109cbb22a778b5cffe89d0d4c71afa4 Mon Sep 17 00:00:00 2001 From: v1j4y Date: Wed, 6 Oct 2021 17:29:53 +0200 Subject: [PATCH] Fixed bug in get_det_vgl, now compiles. #41 --- org/qmckl_determinant.org | 38 ++++++++++++++------------------------ 1 file changed, 14 insertions(+), 24 deletions(-) diff --git a/org/qmckl_determinant.org b/org/qmckl_determinant.org index 7415561..78411de 100644 --- a/org/qmckl_determinant.org +++ b/org/qmckl_determinant.org @@ -113,7 +113,7 @@ int main() { | ~det_adj_matrix_list~ | ~[walk_num][det_num][fermi_num][fermi_num]~ | Adjoint of the slater matrix for each determinant of each walker. | | ~det_adj_matrix_list_date~ | ~int64_t~ | Adjoint of the slater matrix for each determinant of each walker. | |----------------------------+------------------------------------------------+----------------------------------------------------------------------------------------| - | ~det_vgl~ | ~[5][walk_num][det_num][fermi_num][fermi_num]~ | Value, gradients, Laplacian of Dᵢⱼ(x) at electron positions | + | ~det_vgl~ | ~[5][walk_num][det_num][fermi_num][fermi_num]~ | Value, gradients, Laplacian of Dᵢⱼ(x) at electron positions | | ~det_vgl_date~ | ~int64_t~ | Late modification date of Value, gradients, Laplacian of the MOs at electron positions | | ~det_inv_matrix_list~ | ~[walk_num][det_num][fermi_num][fermi_num]~ | Inverse of the slater matrix for each determinant of each walker. | | ~det_inv_matrix_list_date~ | ~int64_t~ | Inverse of the slater matrix for each determinant of each walker. | @@ -418,22 +418,22 @@ qmckl_exit_code qmckl_finalize_determinant(qmckl_context context) { * Computation ** Determinant matrix :PROPERTIES: - :Name: qmckl_compute_determinant_det_inv_list + :Name: qmckl_compute_det_vgl :CRetType: qmckl_exit_code :FRetType: qmckl_exit_code :END: *** Get - #+NAME: qmckl_get_determinant_det_inv_list - | ~qmckl_context~ | ~context~ | in | Global state | - | ~double~ | ~det_inv_list[5][walk_num][det_num]~ | out | Value, gradients and Laplacian of the MOs | + #+NAME: qmckl_get_det_vgl_args + | ~qmckl_context~ | ~context~ | in | Global state | + | ~double~ | ~det_vgl[5][walk_num][det_num][fermi_num][fermi_num]~ | out | Value, gradients and Laplacian of the MOs | #+begin_src c :comments org :tangle (eval h_func) :noweb yes -qmckl_exit_code qmckl_get_determinant_det_inv_list(qmckl_context context, double* const det_inv_list); +qmckl_exit_code qmckl_get_det_vgl(qmckl_context context, double* const det_vgl); #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none -qmckl_exit_code qmckl_get_determinant_det_inv_list(qmckl_context context, double * const det_inv_list) { +qmckl_exit_code qmckl_get_det_vgl(qmckl_context context, double * const det_vgl) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return QMCKL_NULL_CONTEXT; @@ -450,27 +450,16 @@ qmckl_exit_code qmckl_get_determinant_det_inv_list(qmckl_context context, double rc = qmckl_provide_det_vgl(context); if (rc != QMCKL_SUCCESS) return rc; - rc = qmckl_provide_det_inv_matrix(context); - if (rc != QMCKL_SUCCESS) return rc; - qmckl_context_struct* const ctx = (qmckl_context_struct* const) context; assert (ctx != NULL); size_t sze = ctx->det.det_num * ctx->det.walk_num * ctx->det.fermi_num * ctx->det.fermi_num; - memcpy(det_inv_list, ctx->det.det_vgl, sze * sizeof(double)); + memcpy(det_vgl, ctx->det.det_vgl, sze * sizeof(double)); return QMCKL_SUCCESS; } #+end_src - #+CALL: generate_c_header(table=qmckl_get_determinant_det_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_get_determinant_det_vgl")) - - #+RESULTS: - #+begin_src c :tangle (eval h_func) :comments org - qmckl_exit_code qmckl_compute_get_determinant_vgl ( - const qmckl_context context, - double* const det_vgl ); - #+end_src *** Provide @@ -574,7 +563,7 @@ qmckl_exit_code qmckl_provide_det_vgl(qmckl_context context) { :FRetType: qmckl_exit_code :END: - #+NAME: qmckl_det_vgl_args + #+NAME: qmckl_compute_det_vgl_args | ~qmckl_context~ | ~context~ | in | Global state | | ~int64_t~ | ~walk_num~ | in | Number of walkers | | ~int64_t~ | ~fermi_num~ | in | Number of electrons | @@ -640,7 +629,7 @@ integer function qmckl_compute_det_vgl_f(context, & end function qmckl_compute_det_vgl_f #+end_src - #+CALL: generate_c_header(table=qmckl_det_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_vgl")) + #+CALL: generate_c_header(table=qmckl_compute_det_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_vgl")) #+RESULTS: #+begin_src c :tangle (eval h_func) :comments org @@ -654,7 +643,7 @@ end function qmckl_compute_det_vgl_f double* const det_vgl ); #+end_src - #+CALL: generate_c_interface(table=qmckl_det_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_vgl")) + #+CALL: generate_c_interface(table=qmckl_compute_det_vgl_args,rettyp=get_value("CRetType"),fname="qmckl_compute_det_vgl")) #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none @@ -679,9 +668,10 @@ end function qmckl_compute_det_vgl_f end function qmckl_compute_det_vgl #+end_src - + + *** Test - + ** Inverse of Determinant matrix :PROPERTIES: :Name: qmckl_compute_det_inv_matrix