diff --git a/org/qmckl_jastrow.org b/org/qmckl_jastrow.org index f5bc3d5..44323cf 100644 --- a/org/qmckl_jastrow.org +++ b/org/qmckl_jastrow.org @@ -144,9 +144,9 @@ int main() { | ~cord_num~ | ~int64_t~ | in | The number of c coeffecients | | ~type_nucl_num~ | ~int64_t~ | in | Number of Nucleii types | | ~type_nucl_vector~ | ~int64_t[nucl_num]~ | in | IDs of types of Nuclei | - | ~aord_vector~ | ~double[aord_num + 1][type_nucl_num]~ | in | Order of a polynomial coefficients | - | ~bord_vector~ | ~double[bord_num + 1]~ | in | Order of b polynomial coefficients | - | ~cord_vector~ | ~double[cord_num][type_nucl_num]~ | in | Order of c polynomial coefficients | + | ~a_vector~ | ~double[aord_num + 1][type_nucl_num]~ | in | a polynomial coefficients | + | ~b_vector~ | ~double[bord_num + 1]~ | in | b polynomial coefficients | + | ~c_vector~ | ~double[cord_num][type_nucl_num]~ | in | c polynomial coefficients | | ~factor_ee~ | ~double[walker.num]~ | out | Jastrow factor: electron-electron part | | ~factor_ee_date~ | ~uint64_t~ | out | Jastrow factor: electron-electron part | | ~factor_en~ | ~double[walker.num]~ | out | Jastrow factor: electron-nucleus part | @@ -164,13 +164,13 @@ int main() { | Variable | Type | In/Out | |-------------------------------------+-------------------------------------------------------------------+---------------------------------------------------------------------------------------------------------| - | ~dim_cord_vect~ | ~int64_t~ | Number of unique C coefficients | - | ~dim_cord_vect_date~ | ~uint64_t~ | Number of unique C coefficients | - | ~asymp_jasb~ | ~double[2]~ | Asymptotic component | - | ~asymp_jasb_date~ | ~uint64_t~ | Asymptotic component | - | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | vector of non-zero coefficients | - | ~cord_vect_full_date~ | ~uint64_t~ | Keep track of changes here | - | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | Transform l,k,p, and m into consecutive indices | + | ~dim_c_vector~ | ~int64_t~ | Number of unique C coefficients | + | ~dim_c_vector_date~ | ~uint64_t~ | Number of unique C coefficients | + | ~asymp_jasb~ | ~double[2]~ | Asymptotic component (up- or down-spin) | + | ~asymp_jasb_date~ | ~uint64_t~ | Ladt modification of the asymptotic component | + | ~c_vector_full~ | ~double[dim_c_vector][nucl_num]~ | vector of non-zero coefficients | + | ~c_vector_full_date~ | ~uint64_t~ | Keep track of changes here | + | ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | Transform l,k,p, and m into consecutive indices | | ~lkpm_combined_index_date~ | ~uint64_t~ | Transform l,k,p, and m into consecutive indices | | ~tmp_c~ | ~double[walker.num][cord_num][cord_num+1][nucl_num][elec_num]~ | vector of non-zero coefficients | | ~dtmp_c~ | ~double[walker.num][elec_num][4][nucl_num][cord_num+1][cord_num]~ | vector of non-zero coefficients | @@ -274,9 +274,9 @@ type_nucl_num = 1 aord_num = 5 bord_num = 5 cord_num = 5 -dim_cord_vect= 23 +dim_c_vector= 23 type_nucl_vector = [ 1, 1] -aord_vector = [ +a_vector = [ [0.000000000000000E+000], [0.000000000000000E+000], [-0.380512000000000E+000], @@ -284,9 +284,9 @@ aord_vector = [ [-3.155800000000000E-002], [2.151200000000000E-002]] -bord_vector = [ 0.500000000000000E-000, 0.153660000000000E-000, 6.722620000000000E-002, +b_vector = [ 0.500000000000000E-000, 0.153660000000000E-000, 6.722620000000000E-002, 2.157000000000000E-002, 7.309600000000000E-003, 2.866000000000000E-003] -cord_vector = [ 0.571702000000000E-000, -0.514253000000000E-000, -0.513043000000000E-000, +c_vector = [ 0.571702000000000E-000, -0.514253000000000E-000, -0.513043000000000E-000, 9.486000000000000E-003, -4.205000000000000E-003, 0.426325800000000E-000, 8.288150000000000E-002, 5.118600000000000E-003, -2.997800000000000E-003, -5.270400000000000E-003, -7.499999999999999E-005, -8.301649999999999E-002, @@ -294,7 +294,7 @@ cord_vector = [ 0.571702000000000E-000, -0.514253000000000E-000, -0.513043000000 -4.099100000000000E-003, 4.327600000000000E-003, -1.654470000000000E-003, 2.614000000000000E-003, -1.477000000000000E-003, -1.137000000000000E-003, -4.010475000000000E-002, 6.106710000000000E-003 ] -cord_vector_full = [ +c_vector_full = [ [ 0.571702000000000E-000, -0.514253000000000E-000, -0.513043000000000E-000, 9.486000000000000E-003, -4.205000000000000E-003, 0.426325800000000E-000, 8.288150000000000E-002, 5.118600000000000E-003, -2.997800000000000E-003, @@ -361,9 +361,9 @@ typedef struct qmckl_jastrow_struct{ double rescale_factor_ee; double* rescale_factor_en; int64_t* type_nucl_vector; - double * aord_vector; - double * bord_vector; - double * cord_vector; + double * a_vector; + double * b_vector; + double * c_vector; double * asymp_jasb; double * factor_ee; double * factor_en; @@ -371,10 +371,10 @@ typedef struct qmckl_jastrow_struct{ double * factor_ee_deriv_e; double * factor_en_deriv_e; double * factor_een_deriv_e; - int64_t dim_cord_vect; - uint64_t dim_cord_vect_date; - double * cord_vect_full; - uint64_t cord_vect_full_date; + int64_t dim_c_vector; + uint64_t dim_c_vector_date; + double * c_vector_full; + uint64_t c_vector_full_date; int64_t* lkpm_combined_index; uint64_t lkpm_combined_index_date; double * tmp_c; @@ -447,9 +447,9 @@ qmckl_exit_code qmckl_set_jastrow_bord_num (qmckl_context context, con qmckl_exit_code qmckl_set_jastrow_cord_num (qmckl_context context, const int64_t cord_num); qmckl_exit_code qmckl_set_jastrow_type_nucl_num (qmckl_context context, const int64_t type_nucl_num); qmckl_exit_code qmckl_set_jastrow_type_nucl_vector (qmckl_context context, const int64_t* type_nucl_vector, const int64_t nucl_num); -qmckl_exit_code qmckl_set_jastrow_aord_vector (qmckl_context context, const double * aord_vector, const int64_t size_max); -qmckl_exit_code qmckl_set_jastrow_bord_vector (qmckl_context context, const double * bord_vector, const int64_t size_max); -qmckl_exit_code qmckl_set_jastrow_cord_vector (qmckl_context context, const double * cord_vector, const int64_t size_max); +qmckl_exit_code qmckl_set_jastrow_a_vector (qmckl_context context, const double * a_vector, const int64_t size_max); +qmckl_exit_code qmckl_set_jastrow_b_vector (qmckl_context context, const double * b_vector, const int64_t size_max); +qmckl_exit_code qmckl_set_jastrow_c_vector (qmckl_context context, const double * c_vector, const int64_t size_max); #+end_src #+NAME:pre2 @@ -621,8 +621,8 @@ qmckl_set_jastrow_type_nucl_vector(qmckl_context context, qmckl_exit_code -qmckl_set_jastrow_aord_vector(qmckl_context context, - double const * aord_vector, +qmckl_set_jastrow_a_vector(qmckl_context context, + double const * a_vector, const int64_t size_max) { int32_t mask = 1 << 5; @@ -644,19 +644,19 @@ qmckl_set_jastrow_aord_vector(qmckl_context context, "aord_num is not set"); } - if (aord_vector == NULL) { + if (a_vector == NULL) { return qmckl_failwith( context, QMCKL_INVALID_ARG_2, - "qmckl_set_jastrow_aord_vector", - "aord_vector = NULL"); + "qmckl_set_jastrow_a_vector", + "a_vector = NULL"); } - if (ctx->jastrow.aord_vector != NULL) { - rc = qmckl_free(context, ctx->jastrow.aord_vector); + if (ctx->jastrow.a_vector != NULL) { + rc = qmckl_free(context, ctx->jastrow.a_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, - "qmckl_set_jastrow_aord_vector", - "Unable to free ctx->jastrow.aord_vector"); + "qmckl_set_jastrow_a_vector", + "Unable to free ctx->jastrow.a_vector"); } } @@ -666,7 +666,7 @@ qmckl_set_jastrow_aord_vector(qmckl_context context, if ((size_t) size_max < mem_info.size/sizeof(double)) { return qmckl_failwith( context, QMCKL_INVALID_ARG_3, - "qmckl_set_jastrow_aord_vector", + "qmckl_set_jastrow_a_vector", "Array too small. Expected (aord_num+1)*type_nucl_num"); } @@ -679,17 +679,17 @@ qmckl_set_jastrow_aord_vector(qmckl_context context, NULL); } - memcpy(new_array, aord_vector, mem_info.size); + memcpy(new_array, a_vector, mem_info.size); - ctx->jastrow.aord_vector = new_array; + ctx->jastrow.a_vector = new_array; <> } qmckl_exit_code -qmckl_set_jastrow_bord_vector(qmckl_context context, - double const * bord_vector, +qmckl_set_jastrow_b_vector(qmckl_context context, + double const * b_vector, const int64_t size_max) { int32_t mask = 1 << 6; @@ -707,19 +707,19 @@ qmckl_set_jastrow_bord_vector(qmckl_context context, "bord_num is not set"); } - if (bord_vector == NULL) { + if (b_vector == NULL) { return qmckl_failwith( context, QMCKL_INVALID_ARG_2, - "qmckl_set_jastrow_bord_vector", - "bord_vector = NULL"); + "qmckl_set_jastrow_b_vector", + "b_vector = NULL"); } - if (ctx->jastrow.bord_vector != NULL) { - rc = qmckl_free(context, ctx->jastrow.bord_vector); + if (ctx->jastrow.b_vector != NULL) { + rc = qmckl_free(context, ctx->jastrow.b_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, - "qmckl_set_jastrow_bord_vector", - "Unable to free ctx->jastrow.bord_vector"); + "qmckl_set_jastrow_b_vector", + "Unable to free ctx->jastrow.b_vector"); } } @@ -729,7 +729,7 @@ qmckl_set_jastrow_bord_vector(qmckl_context context, if ((size_t) size_max < mem_info.size/sizeof(double)) { return qmckl_failwith( context, QMCKL_INVALID_ARG_3, - "qmckl_set_jastrow_bord_vector", + "qmckl_set_jastrow_b_vector", "Array too small. Expected (bord_num+1)"); } @@ -742,65 +742,65 @@ qmckl_set_jastrow_bord_vector(qmckl_context context, NULL); } - memcpy(new_array, bord_vector, mem_info.size); + memcpy(new_array, b_vector, mem_info.size); - ctx->jastrow.bord_vector = new_array; + ctx->jastrow.b_vector = new_array; <> } qmckl_exit_code -qmckl_set_jastrow_cord_vector(qmckl_context context, - double const * cord_vector, +qmckl_set_jastrow_c_vector(qmckl_context context, + double const * c_vector, const int64_t size_max) { int32_t mask = 1 << 7; <> - qmckl_exit_code rc = qmckl_provide_dim_cord_vect(context); + qmckl_exit_code rc = qmckl_provide_dim_c_vector(context); if (rc != QMCKL_SUCCESS) return rc; - int64_t dim_cord_vect; - rc = qmckl_get_jastrow_dim_cord_vect(context, &dim_cord_vect); + int64_t dim_c_vector; + rc = qmckl_get_jastrow_dim_c_vector(context, &dim_c_vector); if (rc != QMCKL_SUCCESS) return rc; int64_t type_nucl_num; rc = qmckl_get_jastrow_type_nucl_num(context, &type_nucl_num); if (rc != QMCKL_SUCCESS) return rc; - if (dim_cord_vect == 0) { + if (dim_c_vector == 0) { return qmckl_failwith( context, QMCKL_FAILURE, "qmckl_set_jastrow_coefficient", - "dim_cord_vect is not set"); + "dim_c_vector is not set"); } - if (cord_vector == NULL) { + if (c_vector == NULL) { return qmckl_failwith( context, QMCKL_INVALID_ARG_2, - "qmckl_set_jastrow_cord_vector", - "cord_vector = NULL"); + "qmckl_set_jastrow_c_vector", + "c_vector = NULL"); } - if (ctx->jastrow.cord_vector != NULL) { - rc = qmckl_free(context, ctx->jastrow.cord_vector); + if (ctx->jastrow.c_vector != NULL) { + rc = qmckl_free(context, ctx->jastrow.c_vector); if (rc != QMCKL_SUCCESS) { return qmckl_failwith( context, rc, - "qmckl_set_jastrow_cord_vector", - "Unable to free ctx->jastrow.cord_vector"); + "qmckl_set_jastrow_c_vector", + "Unable to free ctx->jastrow.c_vector"); } } qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; - mem_info.size = dim_cord_vect * type_nucl_num * sizeof(double); + mem_info.size = dim_c_vector * type_nucl_num * sizeof(double); if ((size_t) size_max < mem_info.size/sizeof(double)) { return qmckl_failwith( context, QMCKL_INVALID_ARG_3, - "qmckl_set_jastrow_cord_vector", - "Array too small. Expected dim_cord_vect * type_nucl_num"); + "qmckl_set_jastrow_c_vector", + "Array too small. Expected dim_c_vector * type_nucl_num"); } double* new_array = (double*) qmckl_malloc(context, mem_info); @@ -812,9 +812,9 @@ qmckl_set_jastrow_cord_vector(qmckl_context context, NULL); } - memcpy(new_array, cord_vector, mem_info.size); + memcpy(new_array, c_vector, mem_info.size); - ctx->jastrow.cord_vector = new_array; + ctx->jastrow.c_vector = new_array; <> } @@ -1014,35 +1014,35 @@ interface integer(c_int64_t), intent(in) :: type_nucl_vector(size_max) end function qmckl_set_jastrow_type_nucl_vector - integer(qmckl_exit_code) function qmckl_set_jastrow_aord_vector(context, & - aord_vector, size_max) bind(C) + integer(qmckl_exit_code) function qmckl_set_jastrow_a_vector(context, & + a_vector, size_max) bind(C) use, intrinsic :: iso_c_binding import implicit none integer (qmckl_context) , intent(in) , value :: context integer(c_int64_t), intent(in), value :: size_max - double precision, intent(in) :: aord_vector(size_max) - end function qmckl_set_jastrow_aord_vector + double precision, intent(in) :: a_vector(size_max) + end function qmckl_set_jastrow_a_vector - integer(qmckl_exit_code) function qmckl_set_jastrow_bord_vector(context, & - bord_vector, size_max) bind(C) + integer(qmckl_exit_code) function qmckl_set_jastrow_b_vector(context, & + b_vector, size_max) bind(C) use, intrinsic :: iso_c_binding import implicit none integer (qmckl_context) , intent(in) , value :: context integer(c_int64_t), intent(in), value :: size_max - double precision, intent(in) :: bord_vector(size_max) - end function qmckl_set_jastrow_bord_vector + double precision, intent(in) :: b_vector(size_max) + end function qmckl_set_jastrow_b_vector - integer(qmckl_exit_code) function qmckl_set_jastrow_cord_vector(context, & - cord_vector, size_max) bind(C) + integer(qmckl_exit_code) function qmckl_set_jastrow_c_vector(context, & + c_vector, size_max) bind(C) use, intrinsic :: iso_c_binding import implicit none integer (qmckl_context) , intent(in) , value :: context integer(c_int64_t), intent(in), value :: size_max - double precision, intent(in) :: cord_vector(size_max) - end function qmckl_set_jastrow_cord_vector + double precision, intent(in) :: c_vector(size_max) + end function qmckl_set_jastrow_c_vector end interface #+end_src @@ -1055,9 +1055,9 @@ qmckl_exit_code qmckl_get_jastrow_bord_num (qmckl_context context, int qmckl_exit_code qmckl_get_jastrow_cord_num (qmckl_context context, int64_t* const bord_num); qmckl_exit_code qmckl_get_jastrow_type_nucl_num (qmckl_context context, int64_t* const type_nucl_num); qmckl_exit_code qmckl_get_jastrow_type_nucl_vector (qmckl_context context, int64_t* const type_nucl_num, const int64_t size_max); -qmckl_exit_code qmckl_get_jastrow_aord_vector (qmckl_context context, double * const aord_vector, const int64_t size_max); -qmckl_exit_code qmckl_get_jastrow_bord_vector (qmckl_context context, double * const bord_vector, const int64_t size_max); -qmckl_exit_code qmckl_get_jastrow_cord_vector (qmckl_context context, double * const cord_vector, const int64_t size_max); +qmckl_exit_code qmckl_get_jastrow_a_vector (qmckl_context context, double * const a_vector, const int64_t size_max); +qmckl_exit_code qmckl_get_jastrow_b_vector (qmckl_context context, double * const b_vector, const int64_t size_max); +qmckl_exit_code qmckl_get_jastrow_c_vector (qmckl_context context, double * const c_vector, const int64_t size_max); qmckl_exit_code qmckl_get_jastrow_rescale_factor_ee (const qmckl_context context, double* const rescale_factor_ee); qmckl_exit_code qmckl_get_jastrow_rescale_factor_en (const qmckl_context context, double* const rescale_factor_en, const int64_t size_max); #+end_src @@ -1237,19 +1237,19 @@ qmckl_get_jastrow_type_nucl_vector (const qmckl_context context, } qmckl_exit_code -qmckl_get_jastrow_aord_vector (const qmckl_context context, - double * const aord_vector, +qmckl_get_jastrow_a_vector (const qmckl_context context, + double * const a_vector, const int64_t size_max) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return (char) 0; } - if (aord_vector == NULL) { + if (a_vector == NULL) { return qmckl_failwith( context, QMCKL_INVALID_ARG_2, - "qmckl_get_jastrow_aord_vector", - "aord_vector is a null pointer"); + "qmckl_get_jastrow_a_vector", + "a_vector is a null pointer"); } qmckl_context_struct* const ctx = (qmckl_context_struct*) context; @@ -1261,32 +1261,32 @@ qmckl_get_jastrow_aord_vector (const qmckl_context context, return QMCKL_NOT_PROVIDED; } - assert (ctx->jastrow.aord_vector != NULL); + assert (ctx->jastrow.a_vector != NULL); int64_t sze = (ctx->jastrow.aord_num + 1)*ctx->jastrow.type_nucl_num; if (size_max < sze) { return qmckl_failwith( context, QMCKL_INVALID_ARG_3, - "qmckl_get_jastrow_aord_vector", + "qmckl_get_jastrow_a_vector", "Array too small. Expected (ctx->jastrow.aord_num + 1)*ctx->jastrow.type_nucl_num"); } - memcpy(aord_vector, ctx->jastrow.aord_vector, sze*sizeof(double)); + memcpy(a_vector, ctx->jastrow.a_vector, sze*sizeof(double)); return QMCKL_SUCCESS; } qmckl_exit_code -qmckl_get_jastrow_bord_vector (const qmckl_context context, - double * const bord_vector, +qmckl_get_jastrow_b_vector (const qmckl_context context, + double * const b_vector, const int64_t size_max) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return (char) 0; } - if (bord_vector == NULL) { + if (b_vector == NULL) { return qmckl_failwith( context, QMCKL_INVALID_ARG_2, - "qmckl_get_jastrow_bord_vector", - "bord_vector is a null pointer"); + "qmckl_get_jastrow_b_vector", + "b_vector is a null pointer"); } qmckl_context_struct* const ctx = (qmckl_context_struct*) context; @@ -1298,32 +1298,32 @@ qmckl_get_jastrow_bord_vector (const qmckl_context context, return QMCKL_NOT_PROVIDED; } - assert (ctx->jastrow.bord_vector != NULL); + assert (ctx->jastrow.b_vector != NULL); int64_t sze=ctx->jastrow.bord_num +1; if (size_max < sze) { return qmckl_failwith( context, QMCKL_INVALID_ARG_3, - "qmckl_get_jastrow_bord_vector", + "qmckl_get_jastrow_b_vector", "Array too small. Expected (ctx->jastrow.bord_num + 1)"); } - memcpy(bord_vector, ctx->jastrow.bord_vector, sze*sizeof(double)); + memcpy(b_vector, ctx->jastrow.b_vector, sze*sizeof(double)); return QMCKL_SUCCESS; } qmckl_exit_code -qmckl_get_jastrow_cord_vector (const qmckl_context context, - double * const cord_vector, +qmckl_get_jastrow_c_vector (const qmckl_context context, + double * const c_vector, const int64_t size_max) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return (char) 0; } - if (cord_vector == NULL) { + if (c_vector == NULL) { return qmckl_failwith( context, QMCKL_INVALID_ARG_2, - "qmckl_get_jastrow_cord_vector", - "cord_vector is a null pointer"); + "qmckl_get_jastrow_c_vector", + "c_vector is a null pointer"); } qmckl_context_struct* const ctx = (qmckl_context_struct*) context; @@ -1335,20 +1335,20 @@ qmckl_get_jastrow_cord_vector (const qmckl_context context, return QMCKL_NOT_PROVIDED; } - assert (ctx->jastrow.cord_vector != NULL); + assert (ctx->jastrow.c_vector != NULL); - int64_t dim_cord_vect; - qmckl_exit_code rc = qmckl_get_jastrow_dim_cord_vect(context, &dim_cord_vect); + int64_t dim_c_vector; + qmckl_exit_code rc = qmckl_get_jastrow_dim_c_vector(context, &dim_c_vector); if (rc != QMCKL_SUCCESS) return rc; - int64_t sze=dim_cord_vect * ctx->jastrow.type_nucl_num; + int64_t sze=dim_c_vector * ctx->jastrow.type_nucl_num; if (size_max < sze) { return qmckl_failwith( context, QMCKL_INVALID_ARG_3, - "qmckl_get_jastrow_cord_vector", - "Array too small. Expected dim_cord_vect * jastrow.type_nucl_num"); + "qmckl_get_jastrow_c_vector", + "Array too small. Expected dim_c_vector * jastrow.type_nucl_num"); } - memcpy(cord_vector, ctx->jastrow.cord_vector, sze*sizeof(double)); + memcpy(c_vector, ctx->jastrow.c_vector, sze*sizeof(double)); return QMCKL_SUCCESS; } @@ -1542,7 +1542,7 @@ assert(qmckl_nucleus_provided(context)); Calculate the asymptotic component ~asymp_jasb~ to be substracted from the final electron-electron jastrow factor \(J_{\text{ee}}\). The asymptotic component is calculated - via the ~bord_vector~ and the electron-electron rescale factor ~rescale_factor_ee~. + via the ~b_vector~ and the electron-electron rescale factor ~rescale_factor_ee~. \[ J_{\text{ee}}^{\infty} = \frac{b_1 \kappa^{-1}}{1 + b_2 \kappa^{-1}} @@ -1568,7 +1568,7 @@ qmckl_get_jastrow_asymp_jasb(qmckl_context context, qmckl_exit_code rc; - rc = qmckl_provide_asymp_jasb(context); + rc = qmckl_provide_jastrow_asymp_jasb(context); if (rc != QMCKL_SUCCESS) return rc; qmckl_context_struct* const ctx = (qmckl_context_struct*) context; @@ -1589,11 +1589,11 @@ qmckl_get_jastrow_asymp_jasb(qmckl_context context, *** Provide :noexport: #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none -qmckl_exit_code qmckl_provide_asymp_jasb(qmckl_context context); +qmckl_exit_code qmckl_provide_jastrow_asymp_jasb(qmckl_context context); #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none -qmckl_exit_code qmckl_provide_asymp_jasb(qmckl_context context) +qmckl_exit_code qmckl_provide_jastrow_asymp_jasb(qmckl_context context) { qmckl_exit_code rc; @@ -1624,9 +1624,9 @@ qmckl_exit_code qmckl_provide_asymp_jasb(qmckl_context context) ctx->jastrow.asymp_jasb = asymp_jasb; } - rc = qmckl_compute_asymp_jasb(context, + rc = qmckl_compute_jastrow_asymp_jasb(context, ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, + ctx->jastrow.b_vector, ctx->jastrow.rescale_factor_ee, ctx->jastrow.asymp_jasb); if (rc != QMCKL_SUCCESS) { @@ -1642,7 +1642,7 @@ qmckl_exit_code qmckl_provide_asymp_jasb(qmckl_context context) *** Compute :PROPERTIES: - :Name: qmckl_compute_asymp_jasb + :Name: qmckl_compute_jastrow_asymp_jasb :CRetType: qmckl_exit_code :FRetType: qmckl_exit_code :END: @@ -1652,18 +1652,18 @@ qmckl_exit_code qmckl_provide_asymp_jasb(qmckl_context context) |---------------------+----------------------+--------+-------------------------| | ~context~ | ~qmckl_context~ | in | Global state | | ~bord_num~ | ~int64_t~ | in | Order of the polynomial | - | ~bord_vector~ | ~double[bord_num+1]~ | in | Values of b | + | ~b_vector~ | ~double[bord_num+1]~ | in | Values of b | | ~rescale_factor_ee~ | ~double~ | in | Electron coordinates | | ~asymp_jasb~ | ~double[2]~ | out | Asymptotic value | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_asymp_jasb_f(context, bord_num, bord_vector, rescale_factor_ee, asymp_jasb) & +integer function qmckl_compute_jastrow_asymp_jasb_f(context, bord_num, b_vector, rescale_factor_ee, asymp_jasb) & result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context integer*8 , intent(in) :: bord_num - double precision , intent(in) :: bord_vector(bord_num + 1) + double precision , intent(in) :: b_vector(bord_num + 1) double precision , intent(in) :: rescale_factor_ee double precision , intent(out) :: asymp_jasb(2) @@ -1683,25 +1683,25 @@ integer function qmckl_compute_asymp_jasb_f(context, bord_num, bord_vector, resc return endif - asym_one = bord_vector(1) * kappa_inv / (1.0d0 + bord_vector(2) * kappa_inv) + asym_one = b_vector(1) * kappa_inv / (1.0d0 + b_vector(2) * kappa_inv) asymp_jasb(:) = (/asym_one, 0.5d0 * asym_one/) do i = 1, 2 x = kappa_inv do p = 2, bord_num x = x * kappa_inv - asymp_jasb(i) = asymp_jasb(i) + bord_vector(p + 1) * x + asymp_jasb(i) = asymp_jasb(i) + b_vector(p + 1) * x end do end do -end function qmckl_compute_asymp_jasb_f +end function qmckl_compute_jastrow_asymp_jasb_f #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes -qmckl_exit_code qmckl_compute_asymp_jasb ( +qmckl_exit_code qmckl_compute_jastrow_asymp_jasb ( const qmckl_context context, const int64_t bord_num, - const double* bord_vector, + const double* b_vector, const double rescale_factor_ee, double* const asymp_jasb ) { @@ -1714,7 +1714,7 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( } const double kappa_inv = 1.0 / rescale_factor_ee; - const double asym_one = bord_vector[0] * kappa_inv / (1.0 + bord_vector[1] * kappa_inv); + const double asym_one = b_vector[0] * kappa_inv / (1.0 + b_vector[1] * kappa_inv); asymp_jasb[0] = asym_one; asymp_jasb[1] = 0.5 * asym_one; @@ -1722,7 +1722,7 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( double x = kappa_inv; for (int p = 1; p < bord_num; ++p){ x *= kappa_inv; - asymp_jasb[i] = asymp_jasb[i] + bord_vector[p + 1] * x; + asymp_jasb[i] = asymp_jasb[i] + b_vector[p + 1] * x; } } @@ -1733,15 +1733,14 @@ qmckl_exit_code qmckl_compute_asymp_jasb ( # #+CALL: generate_c_header(table=qmckl_asymp_jasb_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none - qmckl_exit_code qmckl_compute_asymp_jasb ( + qmckl_exit_code qmckl_compute_jastrow_asymp_jasb ( const qmckl_context context, const int64_t bord_num, - const double* bord_vector, + const double* b_vector, const double rescale_factor_ee, double* const asymp_jasb ); #+end_src - *** Test #+name: asymp_jasb #+begin_src python :results output :exports none :noweb yes @@ -1749,14 +1748,14 @@ import numpy as np <> -asym_one = bord_vector[0] * kappa_inv / (1.0 + bord_vector[1]*kappa_inv) +asym_one = b_vector[0] * kappa_inv / (1.0 + b_vector[1]*kappa_inv) asymp_jasb = np.array([asym_one, 0.5 * asym_one]) for i in range(2): x = kappa_inv for p in range(1,bord_num): x = x * kappa_inv - asymp_jasb[i] += bord_vector[p + 1] * x + asymp_jasb[i] += b_vector[p + 1] * x print("asym_one : ", asym_one) print("asymp_jasb[0] : ", asymp_jasb[0]) @@ -1776,10 +1775,10 @@ int64_t* type_nucl_vector = &(n2_type_nucl_vector[0]); int64_t aord_num = n2_aord_num; int64_t bord_num = n2_bord_num; int64_t cord_num = n2_cord_num; -double* aord_vector = &(n2_aord_vector[0][0]); -double* bord_vector = &(n2_bord_vector[0]); -double* cord_vector = &(n2_cord_vector[0][0]); -int64_t dim_cord_vect=0; +double* a_vector = &(n2_a_vector[0][0]); +double* b_vector = &(n2_b_vector[0]); +double* c_vector = &(n2_c_vector[0][0]); +int64_t dim_c_vector=0; assert(!qmckl_jastrow_provided(context)); @@ -1803,19 +1802,19 @@ rc = qmckl_check(context, ); assert(rc == QMCKL_SUCCESS); rc = qmckl_check(context, - qmckl_set_jastrow_aord_vector(context, aord_vector,(aord_num+1)*type_nucl_num) + qmckl_set_jastrow_a_vector(context, a_vector,(aord_num+1)*type_nucl_num) ); assert(rc == QMCKL_SUCCESS); rc = qmckl_check(context, - qmckl_set_jastrow_bord_vector(context, bord_vector,(bord_num+1)) + qmckl_set_jastrow_b_vector(context, b_vector,(bord_num+1)) ); assert(rc == QMCKL_SUCCESS); rc = qmckl_check(context, - qmckl_get_jastrow_dim_cord_vect(context, &dim_cord_vect) + qmckl_get_jastrow_dim_c_vector(context, &dim_c_vector) ); assert(rc == QMCKL_SUCCESS); rc = qmckl_check(context, - qmckl_set_jastrow_cord_vector(context, cord_vector,dim_cord_vect*type_nucl_num) + qmckl_set_jastrow_c_vector(context, c_vector,dim_c_vector*type_nucl_num) ); assert(rc == QMCKL_SUCCESS); @@ -1863,9 +1862,12 @@ assert(fabs(asymp_jasb[1]-0.31567342786262853) < 1.e-12); componenet and the electron-electron rescaled distances ~ee_distance_rescaled~. \[ -f_{ee} = \sum_{i,jdate > ctx->jastrow.factor_ee_date) { @@ -1964,7 +1968,7 @@ qmckl_exit_code qmckl_provide_factor_ee(qmckl_context context) ctx->electron.num, ctx->electron.up_num, ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, + ctx->jastrow.b_vector, ctx->jastrow.ee_distance_rescaled, ctx->jastrow.asymp_jasb, ctx->jastrow.factor_ee); @@ -1994,20 +1998,20 @@ qmckl_exit_code qmckl_provide_factor_ee(qmckl_context context) | ~elec_num~ | ~int64_t~ | in | Number of electrons | | ~up_num~ | ~int64_t~ | in | Number of alpha electrons | | ~bord_num~ | ~int64_t~ | in | Number of coefficients | - | ~bord_vector~ | ~double[bord_num+1]~ | in | List of coefficients | + | ~b_vector~ | ~double[bord_num+1]~ | in | List of coefficients | | ~ee_distance_rescaled~ | ~double[walk_num][elec_num][elec_num]~ | in | Electron-electron distances | | ~asymp_jasb~ | ~double[2]~ | in | Electron-electron distances | | ~factor_ee~ | ~double[walk_num]~ | out | Electron-electron distances | #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_factor_ee_f(context, walk_num, elec_num, up_num, bord_num, & - bord_vector, ee_distance_rescaled, asymp_jasb, factor_ee) & + b_vector, ee_distance_rescaled, asymp_jasb, factor_ee) & result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context integer*8 , intent(in) :: walk_num, elec_num, bord_num, up_num - double precision , intent(in) :: bord_vector(bord_num + 1) + double precision , intent(in) :: b_vector(bord_num + 1) double precision , intent(in) :: ee_distance_rescaled(elec_num, elec_num, walk_num) double precision , intent(in) :: asymp_jasb(2) double precision , intent(out) :: factor_ee(walk_num) @@ -2021,51 +2025,51 @@ integer function qmckl_compute_factor_ee_f(context, walk_num, elec_num, up_num, info = QMCKL_INVALID_CONTEXT return endif - + if (walk_num <= 0) then info = QMCKL_INVALID_ARG_2 return endif - + if (elec_num <= 0) then info = QMCKL_INVALID_ARG_3 return endif - + if (bord_num <= 0) then info = QMCKL_INVALID_ARG_4 return endif - + factor_ee = 0.0d0 - + do nw =1, walk_num - do j = 1, elec_num - do i = 1, j - 1 - x = ee_distance_rescaled(i,j,nw) - power_ser = 0.0d0 - spin_fact = 1.0d0 - ipar = 1 - - do p = 2, bord_num - x = x * ee_distance_rescaled(i,j,nw) - power_ser = power_ser + bord_vector(p + 1) * x + do j = 1, elec_num + do i = 1, j - 1 + x = ee_distance_rescaled(i,j,nw) + power_ser = 0.0d0 + spin_fact = 1.0d0 + ipar = 1 + + do p = 2, bord_num + x = x * ee_distance_rescaled(i,j,nw) + power_ser = power_ser + b_vector(p + 1) * x + end do + + if(j <= up_num .or. i > up_num) then + spin_fact = 0.5d0 + ipar = 2 + endif + + factor_ee(nw) = factor_ee(nw) + spin_fact * b_vector(1) * & + ee_distance_rescaled(i,j,nw) / & + (1.0d0 + b_vector(2) * & + ee_distance_rescaled(i,j,nw)) & + + power_ser - asymp_jasb(ipar) + end do - - if(j <= up_num .OR. i > up_num) then - spin_fact = 0.5d0 - ipar = 2 - endif - - factor_ee(nw) = factor_ee(nw) + spin_fact * bord_vector(1) * & - ee_distance_rescaled(i,j,nw) / & - (1.0d0 + bord_vector(2) * & - ee_distance_rescaled(i,j,nw)) & - -asymp_jasb(ipar) + power_ser - end do end do - end do end function qmckl_compute_factor_ee_f #+end_src @@ -2077,12 +2081,12 @@ qmckl_exit_code qmckl_compute_factor_ee ( const int64_t elec_num, const int64_t up_num, const int64_t bord_num, - const double* bord_vector, + const double* b_vector, const double* ee_distance_rescaled, const double* asymp_jasb, double* const factor_ee ) { - int ipar; // can we use a smaller integer? + int ipar; double x, x1, spin_fact, power_ser; if (context == QMCKL_NULL_CONTEXT) { @@ -2114,7 +2118,7 @@ qmckl_exit_code qmckl_compute_factor_ee ( for (int p = 1; p < bord_num; ++p) { x = x * x1; - power_ser = power_ser + bord_vector[p + 1] * x; + power_ser = power_ser + b_vector[p + 1] * x; } if(i < up_num || j >= up_num) { @@ -2122,11 +2126,9 @@ qmckl_exit_code qmckl_compute_factor_ee ( ipar = 1; } - factor_ee[nw] = factor_ee[nw] + spin_fact * bord_vector[0] * \ - x1 / \ - (1.0 + bord_vector[1] * \ - x1) \ - -asymp_jasb[ipar] + power_ser; + factor_ee[nw] = factor_ee[nw] + spin_fact * b_vector[0] * + x1 / (1.0 + b_vector[1] * x1) + - asymp_jasb[ipar] + power_ser; } } @@ -2145,15 +2147,12 @@ qmckl_exit_code qmckl_compute_factor_ee ( const int64_t elec_num, const int64_t up_num, const int64_t bord_num, - const double* bord_vector, + const double* b_vector, const double* ee_distance_rescaled, const double* asymp_jasb, double* const factor_ee ); #+end_src - - - *** Test #+begin_src python :results output :exports none :noweb yes import numpy as np @@ -2172,14 +2171,14 @@ for i in range(0,elec_num): for p in range(1,bord_num): x = x * ee_distance_rescaled[i][j] - pow_ser = pow_ser + bord_vector[p + 1] * x + pow_ser = pow_ser + b_vector[p + 1] * x if(i < up_num or j >= up_num): spin_fact = 0.5 ipar = 1 - factor_ee = factor_ee + spin_fact * bord_vector[0] * ee_distance_rescaled[i][j] \ - / (1.0 + bord_vector[1] * ee_distance_rescaled[i][j]) \ + factor_ee = factor_ee + spin_fact * b_vector[0] * ee_distance_rescaled[i][j] \ + / (1.0 + b_vector[1] * ee_distance_rescaled[i][j]) \ - asymp_jasb[ipar] + pow_ser print("factor_ee :",factor_ee) @@ -2214,8 +2213,7 @@ assert(fabs(factor_ee[0]+4.282760865958113) < 1.e-12); There are four components, the gradient which has 3 components in the \(x, y, z\) directions and the laplacian as the last component. - TODO: Add equation - + # TODO: Add equation *** Get #+begin_src c :comments org :tangle (eval h_func) :noweb yes @@ -2319,7 +2317,7 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) ctx->electron.num, ctx->electron.up_num, ctx->jastrow.bord_num, - ctx->jastrow.bord_vector, + ctx->jastrow.b_vector, ctx->jastrow.ee_distance_rescaled, ctx->jastrow.ee_distance_rescaled_deriv_e, ctx->jastrow.factor_ee_deriv_e); @@ -2349,7 +2347,7 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) | ~elec_num~ | ~int64_t~ | in | Number of electrons | | ~up_num~ | ~int64_t~ | in | Number of alpha electrons | | ~bord_num~ | ~int64_t~ | in | Number of coefficients | - | ~bord_vector~ | ~double[bord_num+1]~ | in | List of coefficients | + | ~b_vector~ | ~double[bord_num+1]~ | in | List of coefficients | | ~ee_distance_rescaled~ | ~double[walk_num][elec_num][elec_num]~ | in | Electron-electron distances | | ~ee_distance_rescaled_deriv_e~ | ~double[walk_num][4][elec_num][elec_num]~ | in | Electron-electron distances | | ~factor_ee_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Electron-electron distances | @@ -2357,14 +2355,14 @@ qmckl_exit_code qmckl_provide_factor_ee_deriv_e(qmckl_context context) #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_factor_ee_deriv_e_doc_f( & context, walk_num, elec_num, up_num, bord_num, & - bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, & + b_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, & factor_ee_deriv_e) & result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context integer*8 , intent(in) :: walk_num, elec_num, bord_num, up_num - double precision , intent(in) :: bord_vector(bord_num + 1) + double precision , intent(in) :: b_vector(bord_num + 1) double precision , intent(in) :: ee_distance_rescaled(elec_num, elec_num,walk_num) double precision , intent(in) :: ee_distance_rescaled_deriv_e(4,elec_num, elec_num,walk_num) !TODO double precision , intent(out) :: factor_ee_deriv_e(elec_num,4,walk_num) @@ -2408,7 +2406,7 @@ integer function qmckl_compute_factor_ee_deriv_e_doc_f( & if(abs(x) < 1.0d-18) cycle pow_ser_g = 0.0d0 spin_fact = 1.0d0 - den = 1.0d0 + bord_vector(2) * x + den = 1.0d0 + b_vector(2) * x invden = 1.0d0 / den invden2 = invden * invden invden3 = invden2 * invden @@ -2431,23 +2429,23 @@ integer function qmckl_compute_factor_ee_deriv_e_doc_f( & x = ee_distance_rescaled(i, j, nw) if(abs(x) < 1.0d-18) cycle do p = 2, bord_num - y = p * bord_vector(p + 1) * x + y = p * b_vector(p + 1) * x pow_ser_g(ii) = pow_ser_g(ii) + y * dx(ii) lap1 = lap1 + (p - 1) * y * xinv * dx(ii) * dx(ii) lap2 = lap2 + y x = x * ee_distance_rescaled(i, j, nw) end do - lap3 = lap3 - 2.0d0 * bord_vector(2) * dx(ii) * dx(ii) + lap3 = lap3 - 2.0d0 * b_vector(2) * dx(ii) * dx(ii) - factor_ee_deriv_e( j, ii, nw) = factor_ee_deriv_e( j, ii, nw) + spin_fact * bord_vector(1) * & + factor_ee_deriv_e( j, ii, nw) = factor_ee_deriv_e( j, ii, nw) + spin_fact * b_vector(1) * & dx(ii) * invden2 + pow_ser_g(ii) end do ii = 4 lap2 = lap2 * dx(ii) * third lap3 = lap3 + den * dx(ii) - lap3 = lap3 * (spin_fact * bord_vector(1) * invden3) + lap3 = lap3 * (spin_fact * b_vector(1) * invden3) factor_ee_deriv_e( j, ii, nw) = factor_ee_deriv_e( j, ii, nw) + lap1 + lap2 + lap3 end do @@ -2464,7 +2462,7 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( const int64_t elec_num, const int64_t up_num, const int64_t bord_num, - const double* bord_vector, + const double* b_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, double* const factor_ee_deriv_e ) { @@ -2512,7 +2510,7 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( pow_ser_g[ii] = 0.0; } spin_fact = 1.0; - den = 1.0 + bord_vector[1] * x; + den = 1.0 + b_vector[1] * x; invden = 1.0 / den; invden2 = invden * invden; invden3 = invden2 * invden; @@ -2542,24 +2540,24 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( x = ee_distance_rescaled[j + i * elec_num + nw * elec_num * elec_num]; if (fabs(x) < 1.0e-18) continue; for (int p = 2; p < bord_num+1; ++p) { - y = p * bord_vector[(p-1) + 1] * x; + y = p * b_vector[(p-1) + 1] * x; pow_ser_g[ii] = pow_ser_g[ii] + y * dx[ii]; lap1 = lap1 + (p - 1) * y * xinv * dx[ii] * dx[ii]; lap2 = lap2 + y; x = x * ee_distance_rescaled[j + i * elec_num + nw * elec_num * elec_num]; } - lap3 = lap3 - 2.0 * bord_vector[1] * dx[ii] * dx[ii]; + lap3 = lap3 - 2.0 * b_vector[1] * dx[ii] * dx[ii]; factor_ee_deriv_e[i + ii * elec_num + nw * elec_num * 4 ] += \ - + spin_fact * bord_vector[0] * dx[ii] * invden2 \ + + spin_fact * b_vector[0] * dx[ii] * invden2 \ + pow_ser_g[ii] ; } ii = 3; lap2 = lap2 * dx[ii] * third; lap3 = lap3 + den * dx[ii]; - lap3 = lap3 * (spin_fact * bord_vector[0] * invden3); + lap3 = lap3 * (spin_fact * b_vector[0] * invden3); factor_ee_deriv_e[i + ii*elec_num + nw * elec_num * 4] += lap1 + lap2 + lap3; } @@ -2580,7 +2578,7 @@ qmckl_exit_code qmckl_compute_factor_ee_deriv_e_hpc( const int64_t elec_num, const int64_t up_num, const int64_t bord_num, - const double* bord_vector, + const double* b_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, double* const factor_ee_deriv_e ); @@ -2597,7 +2595,7 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & elec_num, & up_num, & bord_num, & - bord_vector, & + b_vector, & ee_distance_rescaled, & ee_distance_rescaled_deriv_e, & factor_ee_deriv_e) & @@ -2611,7 +2609,7 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & integer (c_int64_t) , intent(in) , value :: elec_num integer (c_int64_t) , intent(in) , value :: up_num integer (c_int64_t) , intent(in) , value :: bord_num - real (c_double ) , intent(in) :: bord_vector(bord_num+1) + real (c_double ) , intent(in) :: b_vector(bord_num+1) real (c_double ) , intent(in) :: ee_distance_rescaled(elec_num,elec_num,walk_num) real (c_double ) , intent(in) :: ee_distance_rescaled_deriv_e(elec_num,elec_num,4,walk_num) real (c_double ) , intent(out) :: factor_ee_deriv_e(elec_num,4,walk_num) @@ -2623,7 +2621,7 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & elec_num, & up_num, & bord_num, & - bord_vector, & + b_vector, & ee_distance_rescaled, & ee_distance_rescaled_deriv_e, & factor_ee_deriv_e) @@ -2638,7 +2636,7 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & const int64_t elec_num, const int64_t up_num, const int64_t bord_num, - const double* bord_vector, + const double* b_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, double* const factor_ee_deriv_e ); @@ -2652,7 +2650,7 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & const int64_t elec_num, const int64_t up_num, const int64_t bord_num, - const double* bord_vector, + const double* b_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, double* const factor_ee_deriv_e ); @@ -2666,15 +2664,15 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & const int64_t elec_num, const int64_t up_num, const int64_t bord_num, - const double* bord_vector, + const double* b_vector, const double* ee_distance_rescaled, const double* ee_distance_rescaled_deriv_e, double* const factor_ee_deriv_e ) { #ifdef HAVE_HPC - return qmckl_compute_factor_ee_deriv_e_hpc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, factor_ee_deriv_e ); + return qmckl_compute_factor_ee_deriv_e_hpc(context, walk_num, elec_num, up_num, bord_num, b_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, factor_ee_deriv_e ); #else - return qmckl_compute_factor_ee_deriv_e_doc(context, walk_num, elec_num, up_num, bord_num, bord_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, factor_ee_deriv_e ); + return qmckl_compute_factor_ee_deriv_e_doc(context, walk_num, elec_num, up_num, bord_num, b_vector, ee_distance_rescaled, ee_distance_rescaled_deriv_e, factor_ee_deriv_e ); #endif } #+end_src @@ -2682,7 +2680,6 @@ integer(c_int32_t) function qmckl_compute_factor_ee_deriv_e_doc & - *** Test #+begin_src python :results output :exports none :noweb yes import numpy as np @@ -2732,7 +2729,7 @@ for j in range(elec_num): continue pow_ser_g = np.zeros(shape=(4),dtype=float) spin_fact = 1.0 - den = 1.0 + bord_vector[1] * ee_distance_rescaled[j][i] + den = 1.0 + b_vector[1] * ee_distance_rescaled[j][i] invden = 1.0 / den invden2 = invden * invden invden3 = invden2 * invden @@ -2754,21 +2751,21 @@ for j in range(elec_num): if x < 1e-18: continue for p in range(2,bord_num+1): - y = p * bord_vector[(p-1) + 1] * x + y = p * b_vector[(p-1) + 1] * x pow_ser_g[ii] = pow_ser_g[ii] + y * dx[ii] lap1 = lap1 + (p - 1) * y * xinv * dx[ii] * dx[ii] lap2 = lap2 + y x = x * ee_distance_rescaled[j][i] - lap3 = lap3 - 2.0 * bord_vector[1] * dx[ii] * dx[ii] + lap3 = lap3 - 2.0 * b_vector[1] * dx[ii] * dx[ii] - factor_ee_deriv_e[ii][j] = factor_ee_deriv_e[ii][j] + spin_fact * bord_vector[0] * \ + factor_ee_deriv_e[ii][j] = factor_ee_deriv_e[ii][j] + spin_fact * b_vector[0] * \ dx[ii] * invden2 + pow_ser_g[ii] ii = 3 lap2 = lap2 * dx[ii] * third lap3 = lap3 + den * dx[ii] - lap3 = lap3 * (spin_fact * bord_vector[0] * invden3) + lap3 = lap3 * (spin_fact * b_vector[0] * invden3) factor_ee_deriv_e[ii][j] = factor_ee_deriv_e[ii][j] + lap1 + lap2 + lap3 print("factor_ee_deriv_e[0][0]:",factor_ee_deriv_e[0][0]) @@ -2804,7 +2801,7 @@ assert(fabs(factor_ee_deriv_e[0][3][0]-1.5111672803213185 ) < 1.e-12); ** Electron-nucleus component \(f_{en}\) - Calculate the electron-electron jastrow component ~factor_en~ using the ~aord_vector~ + Calculate the electron-electron jastrow component ~factor_en~ using the ~a_vector~ coeffecients and the electron-nucleus rescaled distances ~en_distance_rescaled~. \[ @@ -2911,7 +2908,7 @@ qmckl_exit_code qmckl_provide_factor_en(qmckl_context context) ctx->jastrow.type_nucl_num, ctx->jastrow.type_nucl_vector, ctx->jastrow.aord_num, - ctx->jastrow.aord_vector, + ctx->jastrow.a_vector, ctx->jastrow.en_distance_rescaled, ctx->jastrow.factor_en); if (rc != QMCKL_SUCCESS) { @@ -2942,14 +2939,14 @@ qmckl_exit_code qmckl_provide_factor_en(qmckl_context context) | ~type_nucl_num~ | ~int64_t~ | in | Number of unique nuclei | | ~type_nucl_vector~ | ~int64_t[nucl_num]~ | in | IDs of unique nucleii | | ~aord_num~ | ~int64_t~ | in | Number of coefficients | - | ~aord_vector~ | ~double[aord_num+1][type_nucl_num]~ | in | List of coefficients | + | ~a_vector~ | ~double[aord_num+1][type_nucl_num]~ | in | List of coefficients | | ~en_distance_rescaled~ | ~double[walk_num][nucl_num][elec_num]~ | in | Electron-nucleus distances | | ~factor_en~ | ~double[walk_num]~ | out | Electron-nucleus jastrow | #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_factor_en_f( & context, walk_num, elec_num, nucl_num, type_nucl_num, & - type_nucl_vector, aord_num, aord_vector, & + type_nucl_vector, aord_num, a_vector, & en_distance_rescaled, factor_en) & result(info) use qmckl @@ -2957,7 +2954,7 @@ integer function qmckl_compute_factor_en_f( & integer(qmckl_context), intent(in) :: context integer*8 , intent(in) :: walk_num, elec_num, aord_num, nucl_num, type_nucl_num integer*8 , intent(in) :: type_nucl_vector(nucl_num) - double precision , intent(in) :: aord_vector(aord_num + 1, type_nucl_num) + double precision , intent(in) :: a_vector(aord_num + 1, type_nucl_num) double precision , intent(in) :: en_distance_rescaled(elec_num, nucl_num, walk_num) double precision , intent(out) :: factor_en(walk_num) @@ -3001,12 +2998,12 @@ integer function qmckl_compute_factor_en_f( & do p = 2, aord_num x = x * en_distance_rescaled(i, a, nw) - power_ser = power_ser + aord_vector(p + 1, type_nucl_vector(a)) * x + power_ser = power_ser + a_vector(p + 1, type_nucl_vector(a)) * x end do - factor_en(nw) = factor_en(nw) + aord_vector(1, type_nucl_vector(a)) * & + factor_en(nw) = factor_en(nw) + a_vector(1, type_nucl_vector(a)) * & en_distance_rescaled(i, a, nw) / & - (1.0d0 + aord_vector(2, type_nucl_vector(a)) * & + (1.0d0 + a_vector(2, type_nucl_vector(a)) * & en_distance_rescaled(i, a, nw)) & + power_ser @@ -3027,7 +3024,7 @@ qmckl_exit_code qmckl_compute_factor_en ( const int64_t type_nucl_num, const int64_t* type_nucl_vector, const int64_t aord_num, - const double* aord_vector, + const double* a_vector, const double* en_distance_rescaled, double* const factor_en ) { @@ -3062,7 +3059,7 @@ qmckl_exit_code qmckl_compute_factor_en ( return QMCKL_INVALID_ARG_7; } - if (aord_vector == NULL) { + if (a_vector == NULL) { return QMCKL_INVALID_ARG_8; } @@ -3087,11 +3084,11 @@ qmckl_exit_code qmckl_compute_factor_en ( for (int p = 2; p < aord_num+1; ++p) { x = x * x1; - power_ser = power_ser + aord_vector[(p+1)-1 + (type_nucl_vector[a]-1) * aord_num] * x; + power_ser = power_ser + a_vector[(p+1)-1 + (type_nucl_vector[a]-1) * aord_num] * x; } - factor_en[nw] = factor_en[nw] + aord_vector[0 + (type_nucl_vector[a]-1)*aord_num] * x1 / \ - (1.0 + aord_vector[1 + (type_nucl_vector[a]-1) * aord_num] * x1) + \ + factor_en[nw] = factor_en[nw] + a_vector[0 + (type_nucl_vector[a]-1)*aord_num] * x1 / \ + (1.0 + a_vector[1 + (type_nucl_vector[a]-1) * aord_num] * x1) + \ power_ser; } @@ -3114,7 +3111,7 @@ qmckl_exit_code qmckl_compute_factor_en ( const int64_t type_nucl_num, const int64_t* type_nucl_vector, const int64_t aord_num, - const double* aord_vector, + const double* a_vector, const double* en_distance_rescaled, double* const factor_en ); #+end_src @@ -3133,10 +3130,10 @@ for a in range(0,nucl_num): for p in range(2,aord_num+1): x = x * en_distance_rescaled[i][a] - pow_ser = pow_ser + aord_vector[(p-1) + 1][type_nucl_vector[a]-1] * x + pow_ser = pow_ser + a_vector[(p-1) + 1][type_nucl_vector[a]-1] * x - factor_en = factor_en + aord_vector[0][type_nucl_vector[a]-1] * en_distance_rescaled[i][a] \ - / (1.0 + aord_vector[1][type_nucl_vector[a]-1] * en_distance_rescaled[i][a]) \ + factor_en = factor_en + a_vector[0][type_nucl_vector[a]-1] * en_distance_rescaled[i][a] \ + / (1.0 + a_vector[1][type_nucl_vector[a]-1] * en_distance_rescaled[i][a]) \ + pow_ser print("factor_en :",factor_en) @@ -3268,7 +3265,7 @@ qmckl_exit_code qmckl_provide_factor_en_deriv_e(qmckl_context context) ctx->jastrow.type_nucl_num, ctx->jastrow.type_nucl_vector, ctx->jastrow.aord_num, - ctx->jastrow.aord_vector, + ctx->jastrow.a_vector, ctx->jastrow.en_distance_rescaled, ctx->jastrow.en_distance_rescaled_deriv_e, ctx->jastrow.factor_en_deriv_e); @@ -3300,7 +3297,7 @@ qmckl_exit_code qmckl_provide_factor_en_deriv_e(qmckl_context context) | ~type_nucl_num~ | ~int64_t~ | in | Number of unique nuclei | | ~type_nucl_vector~ | ~int64_t[nucl_num]~ | in | IDs of unique nucleii | | ~aord_num~ | ~int64_t~ | in | Number of coefficients | - | ~aord_vector~ | ~double[aord_num+1][type_nucl_num]~ | in | List of coefficients | + | ~a_vector~ | ~double[aord_num+1][type_nucl_num]~ | in | List of coefficients | | ~en_distance_rescaled~ | ~double[walk_num][nucl_num][elec_num]~ | in | Electron-nucleus distances | | ~en_distance_rescaled_deriv_e~ | ~double[walk_num][4][nucl_num][elec_num]~ | in | Electron-nucleus distance derivatives | | ~factor_en_deriv_e~ | ~double[walk_num][4][elec_num]~ | out | Electron-nucleus jastrow | @@ -3308,7 +3305,7 @@ qmckl_exit_code qmckl_provide_factor_en_deriv_e(qmckl_context context) #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_factor_en_deriv_e_f( & context, walk_num, elec_num, nucl_num, type_nucl_num, & - type_nucl_vector, aord_num, aord_vector, & + type_nucl_vector, aord_num, a_vector, & en_distance_rescaled, en_distance_rescaled_deriv_e, factor_en_deriv_e) & result(info) use qmckl @@ -3316,7 +3313,7 @@ integer function qmckl_compute_factor_en_deriv_e_f( & integer(qmckl_context), intent(in) :: context integer*8 , intent(in) :: walk_num, elec_num, aord_num, nucl_num, type_nucl_num integer*8 , intent(in) :: type_nucl_vector(nucl_num) - double precision , intent(in) :: aord_vector(aord_num + 1, type_nucl_num) + double precision , intent(in) :: a_vector(aord_num + 1, type_nucl_num) double precision , intent(in) :: en_distance_rescaled(elec_num, nucl_num, walk_num) double precision , intent(in) :: en_distance_rescaled_deriv_e(4, elec_num, nucl_num, walk_num) double precision , intent(out) :: factor_en_deriv_e(elec_num,4,walk_num) @@ -3363,7 +3360,7 @@ integer function qmckl_compute_factor_en_deriv_e_f( & x = en_distance_rescaled(i,a,nw) if(abs(x) < 1.0d-18) continue power_ser_g = 0.0d0 - den = 1.0d0 + aord_vector(2, type_nucl_vector(a)) * x + den = 1.0d0 + a_vector(2, type_nucl_vector(a)) * x invden = 1.0d0 / den invden2 = invden * invden invden3 = invden2 * invden @@ -3379,16 +3376,16 @@ integer function qmckl_compute_factor_en_deriv_e_f( & do ii = 1, 3 x = en_distance_rescaled(i, a, nw) do p = 2, aord_num - y = p * aord_vector(p + 1, type_nucl_vector(a)) * x + y = p * a_vector(p + 1, type_nucl_vector(a)) * x power_ser_g(ii) = power_ser_g(ii) + y * dx(ii) lap1 = lap1 + (p - 1) * y * xinv * dx(ii) * dx(ii) lap2 = lap2 + y x = x * en_distance_rescaled(i, a, nw) end do - lap3 = lap3 - 2.0d0 * aord_vector(2, type_nucl_vector(a)) * dx(ii) * dx(ii) + lap3 = lap3 - 2.0d0 * a_vector(2, type_nucl_vector(a)) * dx(ii) * dx(ii) - factor_en_deriv_e(i, ii, nw) = factor_en_deriv_e(i, ii, nw) + aord_vector(1, type_nucl_vector(a)) & + factor_en_deriv_e(i, ii, nw) = factor_en_deriv_e(i, ii, nw) + a_vector(1, type_nucl_vector(a)) & ,* dx(ii) * invden2 & + power_ser_g(ii) @@ -3397,7 +3394,7 @@ integer function qmckl_compute_factor_en_deriv_e_f( & ii = 4 lap2 = lap2 * dx(ii) * third lap3 = lap3 + den * dx(ii) - lap3 = lap3 * aord_vector(1, type_nucl_vector(a)) * invden3 + lap3 = lap3 * a_vector(1, type_nucl_vector(a)) * invden3 factor_en_deriv_e(i, ii, nw) = factor_en_deriv_e(i, ii, nw) + lap1 + lap2 + lap3 end do @@ -3418,7 +3415,7 @@ end function qmckl_compute_factor_en_deriv_e_f const int64_t type_nucl_num, const int64_t* type_nucl_vector, const int64_t aord_num, - const double* aord_vector, + const double* a_vector, const double* en_distance_rescaled, const double* en_distance_rescaled_deriv_e, double* const factor_en_deriv_e ); @@ -3437,7 +3434,7 @@ end function qmckl_compute_factor_en_deriv_e_f type_nucl_num, & type_nucl_vector, & aord_num, & - aord_vector, & + a_vector, & en_distance_rescaled, & en_distance_rescaled_deriv_e, & factor_en_deriv_e) & @@ -3453,7 +3450,7 @@ end function qmckl_compute_factor_en_deriv_e_f integer (c_int64_t) , intent(in) , value :: type_nucl_num integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) integer (c_int64_t) , intent(in) , value :: aord_num - real (c_double ) , intent(in) :: aord_vector(type_nucl_num,aord_num+1) + real (c_double ) , intent(in) :: a_vector(type_nucl_num,aord_num+1) real (c_double ) , intent(in) :: en_distance_rescaled(elec_num,nucl_num,walk_num) real (c_double ) , intent(in) :: en_distance_rescaled_deriv_e(elec_num,nucl_num,4,walk_num) real (c_double ) , intent(out) :: factor_en_deriv_e(elec_num,4,walk_num) @@ -3467,7 +3464,7 @@ end function qmckl_compute_factor_en_deriv_e_f type_nucl_num, & type_nucl_vector, & aord_num, & - aord_vector, & + a_vector, & en_distance_rescaled, & en_distance_rescaled_deriv_e, & factor_en_deriv_e) @@ -3521,7 +3518,7 @@ for a in range(nucl_num): if abs(x) < 1e-18: continue pow_ser_g = np.zeros(shape=(3),dtype=float) - den = 1.0 + aord_vector[1][type_nucl_vector[a]-1] * x + den = 1.0 + a_vector[1][type_nucl_vector[a]-1] * x invden = 1.0 / den invden2 = invden * invden invden3 = invden2 * invden @@ -3538,21 +3535,21 @@ for a in range(nucl_num): if x < 1e-18: continue for p in range(2,aord_num+1): - y = p * aord_vector[(p-1) + 1][type_nucl_vector[a]-1] * x + y = p * a_vector[(p-1) + 1][type_nucl_vector[a]-1] * x pow_ser_g[ii] = pow_ser_g[ii] + y * dx[ii] lap1 = lap1 + (p - 1) * y * xinv * dx[ii] * dx[ii] lap2 = lap2 + y x = x * en_distance_rescaled[i][a] - lap3 = lap3 - 2.0 * aord_vector[1][type_nucl_vector[a]-1] * dx[ii] * dx[ii] + lap3 = lap3 - 2.0 * a_vector[1][type_nucl_vector[a]-1] * dx[ii] * dx[ii] - factor_en_deriv_e[ii][i] = factor_en_deriv_e[ii][i] + aord_vector[0][type_nucl_vector[a]-1] * \ + factor_en_deriv_e[ii][i] = factor_en_deriv_e[ii][i] + a_vector[0][type_nucl_vector[a]-1] * \ dx[ii] * invden2 + pow_ser_g[ii] ii = 3 lap2 = lap2 * dx[ii] * third lap3 = lap3 + den * dx[ii] - lap3 = lap3 * (aord_vector[0][type_nucl_vector[a]-1] * invden3) + lap3 = lap3 * (a_vector[0][type_nucl_vector[a]-1] * invden3) factor_en_deriv_e[ii][i] = factor_en_deriv_e[ii][i] + lap1 + lap2 + lap3 print("factor_en_deriv_e[0][0]:",factor_en_deriv_e[0][0]) @@ -6328,22 +6325,22 @@ assert(fabs(een_rescaled_n_deriv_e[0][2][1][0][5]-0.001593334817691633 ) < 1.e ** Prepare for electron-electron-nucleus Jastrow \(f_{een}\) - Prepare ~cord_vect_full~ and ~lkpm_combined_index~ tables required for the + Prepare ~c_vector_full~ and ~lkpm_combined_index~ tables required for the calculation of the three-body jastrow ~factor_een~ and its derivative ~factor_een_deriv_e~. *** Get #+begin_src c :comments org :tangle (eval h_func) :noweb yes -qmckl_exit_code qmckl_get_jastrow_dim_cord_vect(qmckl_context context, int64_t* const dim_cord_vect); -qmckl_exit_code qmckl_get_jastrow_cord_vect_full(qmckl_context context, double* const cord_vect_full); +qmckl_exit_code qmckl_get_jastrow_dim_c_vector(qmckl_context context, int64_t* const dim_c_vector); +qmckl_exit_code qmckl_get_jastrow_c_vector_full(qmckl_context context, double* const c_vector_full); qmckl_exit_code qmckl_get_jastrow_lkpm_combined_index(qmckl_context context, int64_t* const lkpm_combined_index); qmckl_exit_code qmckl_get_jastrow_tmp_c(qmckl_context context, double* const tmp_c); qmckl_exit_code qmckl_get_jastrow_dtmp_c(qmckl_context context, double* const dtmp_c); #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none -qmckl_exit_code qmckl_get_jastrow_dim_cord_vect(qmckl_context context, int64_t* const dim_cord_vect) +qmckl_exit_code qmckl_get_jastrow_dim_c_vector(qmckl_context context, int64_t* const dim_c_vector) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return QMCKL_NULL_CONTEXT; @@ -6351,18 +6348,18 @@ qmckl_exit_code qmckl_get_jastrow_dim_cord_vect(qmckl_context context, int64_t* qmckl_exit_code rc; - rc = qmckl_provide_dim_cord_vect(context); + rc = qmckl_provide_dim_c_vector(context); if (rc != QMCKL_SUCCESS) return rc; qmckl_context_struct* const ctx = (qmckl_context_struct*) context; assert (ctx != NULL); - *dim_cord_vect = ctx->jastrow.dim_cord_vect; + *dim_c_vector = ctx->jastrow.dim_c_vector; return QMCKL_SUCCESS; } -qmckl_exit_code qmckl_get_jastrow_cord_vect_full(qmckl_context context, double* const cord_vect_full) +qmckl_exit_code qmckl_get_jastrow_c_vector_full(qmckl_context context, double* const c_vector_full) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { return QMCKL_NULL_CONTEXT; @@ -6370,17 +6367,17 @@ qmckl_exit_code qmckl_get_jastrow_cord_vect_full(qmckl_context context, double* qmckl_exit_code rc; - rc = qmckl_provide_dim_cord_vect(context); + rc = qmckl_provide_dim_c_vector(context); if (rc != QMCKL_SUCCESS) return rc; - rc = qmckl_provide_cord_vect_full(context); + rc = qmckl_provide_c_vector_full(context); if (rc != QMCKL_SUCCESS) return rc; qmckl_context_struct* const ctx = (qmckl_context_struct*) context; assert (ctx != NULL); - size_t sze = ctx->jastrow.dim_cord_vect * ctx->nucleus.num; - memcpy(cord_vect_full, ctx->jastrow.cord_vect_full, sze * sizeof(double)); + size_t sze = ctx->jastrow.dim_c_vector * ctx->nucleus.num; + memcpy(c_vector_full, ctx->jastrow.c_vector_full, sze * sizeof(double)); return QMCKL_SUCCESS; } @@ -6393,16 +6390,16 @@ qmckl_exit_code qmckl_get_jastrow_lkpm_combined_index(qmckl_context context, int qmckl_exit_code rc; - rc = qmckl_provide_dim_cord_vect(context); + rc = qmckl_provide_dim_c_vector(context); if (rc != QMCKL_SUCCESS) return rc; - rc = qmckl_provide_cord_vect_full(context); + rc = qmckl_provide_c_vector_full(context); if (rc != QMCKL_SUCCESS) return rc; qmckl_context_struct* const ctx = (qmckl_context_struct*) context; assert (ctx != NULL); - size_t sze = ctx->jastrow.dim_cord_vect * 4; + size_t sze = ctx->jastrow.dim_c_vector * 4; memcpy(lkpm_combined_index, ctx->jastrow.lkpm_combined_index, sze * sizeof(double)); return QMCKL_SUCCESS; @@ -6416,10 +6413,10 @@ qmckl_exit_code qmckl_get_jastrow_tmp_c(qmckl_context context, double* const tmp qmckl_exit_code rc; - rc = qmckl_provide_dim_cord_vect(context); + rc = qmckl_provide_dim_c_vector(context); if (rc != QMCKL_SUCCESS) return rc; - rc = qmckl_provide_cord_vect_full(context); + rc = qmckl_provide_c_vector_full(context); if (rc != QMCKL_SUCCESS) return rc; rc = qmckl_provide_tmp_c(context); @@ -6443,10 +6440,10 @@ qmckl_exit_code qmckl_get_jastrow_dtmp_c(qmckl_context context, double* const dt qmckl_exit_code rc; - rc = qmckl_provide_dim_cord_vect(context); + rc = qmckl_provide_dim_c_vector(context); if (rc != QMCKL_SUCCESS) return rc; - rc = qmckl_provide_cord_vect_full(context); + rc = qmckl_provide_c_vector_full(context); if (rc != QMCKL_SUCCESS) return rc; rc = qmckl_provide_dtmp_c(context); @@ -6466,15 +6463,15 @@ qmckl_exit_code qmckl_get_jastrow_dtmp_c(qmckl_context context, double* const dt *** Provide :noexport: #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none -qmckl_exit_code qmckl_provide_dim_cord_vect(qmckl_context context); -qmckl_exit_code qmckl_provide_cord_vect_full(qmckl_context context); +qmckl_exit_code qmckl_provide_dim_c_vector(qmckl_context context); +qmckl_exit_code qmckl_provide_c_vector_full(qmckl_context context); qmckl_exit_code qmckl_provide_lkpm_combined_index(qmckl_context context); qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context); qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context); #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes :exports none -qmckl_exit_code qmckl_provide_dim_cord_vect(qmckl_context context) +qmckl_exit_code qmckl_provide_dim_c_vector(qmckl_context context) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { @@ -6485,23 +6482,23 @@ qmckl_exit_code qmckl_provide_dim_cord_vect(qmckl_context context) assert (ctx != NULL); /* Compute if necessary */ - if (ctx->date > ctx->jastrow.dim_cord_vect_date) { + if (ctx->date > ctx->jastrow.dim_c_vector_date) { qmckl_exit_code rc = - qmckl_compute_dim_cord_vect(context, + qmckl_compute_dim_c_vector(context, ctx->jastrow.cord_num, - &(ctx->jastrow.dim_cord_vect)); + &(ctx->jastrow.dim_c_vector)); if (rc != QMCKL_SUCCESS) { return rc; } - ctx->jastrow.dim_cord_vect_date = ctx->date; + ctx->jastrow.dim_c_vector_date = ctx->date; } return QMCKL_SUCCESS; } -qmckl_exit_code qmckl_provide_cord_vect_full(qmckl_context context) +qmckl_exit_code qmckl_provide_c_vector_full(qmckl_context context) { if (qmckl_context_check(context) == QMCKL_NULL_CONTEXT) { @@ -6511,41 +6508,41 @@ qmckl_exit_code qmckl_provide_cord_vect_full(qmckl_context context) qmckl_context_struct* const ctx = (qmckl_context_struct*) context; assert (ctx != NULL); - /* Check if dim_cord_vect is provided */ - qmckl_exit_code rc = qmckl_provide_dim_cord_vect(context); + /* Check if dim_c_vector is provided */ + qmckl_exit_code rc = qmckl_provide_dim_c_vector(context); if(rc != QMCKL_SUCCESS) return rc; /* Compute if necessary */ - if (ctx->date > ctx->jastrow.cord_vect_full_date) { + if (ctx->date > ctx->jastrow.c_vector_full_date) { /* Allocate array */ - if (ctx->jastrow.cord_vect_full == NULL) { + if (ctx->jastrow.c_vector_full == NULL) { qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; - mem_info.size = ctx->jastrow.dim_cord_vect * ctx->nucleus.num * sizeof(double); - double* cord_vect_full = (double*) qmckl_malloc(context, mem_info); + mem_info.size = ctx->jastrow.dim_c_vector * ctx->nucleus.num * sizeof(double); + double* c_vector_full = (double*) qmckl_malloc(context, mem_info); - if (cord_vect_full == NULL) { + if (c_vector_full == NULL) { return qmckl_failwith( context, QMCKL_ALLOCATION_FAILED, - "qmckl_provide_cord_vect_full", + "qmckl_provide_c_vector_full", NULL); } - ctx->jastrow.cord_vect_full = cord_vect_full; + ctx->jastrow.c_vector_full = c_vector_full; } - rc = qmckl_compute_cord_vect_full(context, + rc = qmckl_compute_c_vector_full(context, ctx->nucleus.num, - ctx->jastrow.dim_cord_vect, + ctx->jastrow.dim_c_vector, ctx->jastrow.type_nucl_num, ctx->jastrow.type_nucl_vector, - ctx->jastrow.cord_vector, - ctx->jastrow.cord_vect_full); + ctx->jastrow.c_vector, + ctx->jastrow.c_vector_full); if (rc != QMCKL_SUCCESS) { return rc; } - ctx->jastrow.cord_vect_full_date = ctx->date; + ctx->jastrow.c_vector_full_date = ctx->date; } return QMCKL_SUCCESS; @@ -6561,8 +6558,8 @@ qmckl_exit_code qmckl_provide_lkpm_combined_index(qmckl_context context) qmckl_context_struct* const ctx = (qmckl_context_struct*) context; assert (ctx != NULL); - /* Check if dim_cord_vect is provided */ - qmckl_exit_code rc = qmckl_provide_dim_cord_vect(context); + /* Check if dim_c_vector is provided */ + qmckl_exit_code rc = qmckl_provide_dim_c_vector(context); if(rc != QMCKL_SUCCESS) return rc; /* Compute if necessary */ @@ -6572,7 +6569,7 @@ qmckl_exit_code qmckl_provide_lkpm_combined_index(qmckl_context context) if (ctx->jastrow.lkpm_combined_index == NULL) { qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; - mem_info.size = 4 * ctx->jastrow.dim_cord_vect * sizeof(int64_t); + mem_info.size = 4 * ctx->jastrow.dim_c_vector * sizeof(int64_t); int64_t* lkpm_combined_index = (int64_t*) qmckl_malloc(context, mem_info); if (lkpm_combined_index == NULL) { @@ -6586,7 +6583,7 @@ qmckl_exit_code qmckl_provide_lkpm_combined_index(qmckl_context context) rc = qmckl_compute_lkpm_combined_index(context, ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, + ctx->jastrow.dim_c_vector, ctx->jastrow.lkpm_combined_index); if (rc != QMCKL_SUCCESS) { return rc; @@ -6607,8 +6604,8 @@ qmckl_exit_code qmckl_provide_tmp_c(qmckl_context context) qmckl_context_struct* const ctx = (qmckl_context_struct*) context; assert (ctx != NULL); - /* Check if dim_cord_vect is provided */ - qmckl_exit_code rc = qmckl_provide_dim_cord_vect(context); + /* Check if dim_c_vector is provided */ + qmckl_exit_code rc = qmckl_provide_dim_c_vector(context); if(rc != QMCKL_SUCCESS) return rc; /* Compute if necessary */ @@ -6709,8 +6706,8 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) qmckl_context_struct* const ctx = (qmckl_context_struct*) context; assert (ctx != NULL); - /* Check if dim_cord_vect is provided */ - qmckl_exit_code rc = qmckl_provide_dim_cord_vect(context); + /* Check if dim_c_vector is provided */ + qmckl_exit_code rc = qmckl_provide_dim_c_vector(context); if(rc != QMCKL_SUCCESS) return rc; /* Compute if necessary */ @@ -6806,29 +6803,29 @@ qmckl_exit_code qmckl_provide_dtmp_c(qmckl_context context) } #+end_src -*** Compute dim_cord_vect +*** Compute dim_c_vector :PROPERTIES: - :Name: qmckl_compute_dim_cord_vect + :Name: qmckl_compute_dim_c_vector :CRetType: qmckl_exit_code :FRetType: qmckl_exit_code :END: - #+NAME: qmckl_factor_dim_cord_vect_args + #+NAME: qmckl_factor_dim_c_vector_args | Variable | Type | In/Out | Description | |-----------------+-----------------+--------+-----------------------------------| | ~context~ | ~qmckl_context~ | in | Global state | | ~cord_num~ | ~int64_t~ | in | Order of polynomials | - | ~dim_cord_vect~ | ~int64_t~ | out | dimension of cord_vect_full table | + | ~dim_c_vector~ | ~int64_t~ | out | dimension of c_vector_full table | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_dim_cord_vect_f( & - context, cord_num, dim_cord_vect) & +integer function qmckl_compute_dim_c_vector_f( & + context, cord_num, dim_c_vector) & result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context integer*8 , intent(in) :: cord_num - integer*8 , intent(out) :: dim_cord_vect + integer*8 , intent(out) :: dim_c_vector double precision :: x integer*8 :: i, a, k, l, p, lmax @@ -6844,7 +6841,7 @@ integer function qmckl_compute_dim_cord_vect_f( & return endif - dim_cord_vect = 0 + dim_c_vector = 0 do p = 2, cord_num do k = p - 1, 0, -1 @@ -6855,19 +6852,19 @@ integer function qmckl_compute_dim_cord_vect_f( & endif do l = lmax, 0, -1 if (iand(p - k - l, 1_8) == 1) cycle - dim_cord_vect = dim_cord_vect + 1 + dim_c_vector = dim_c_vector + 1 end do end do end do -end function qmckl_compute_dim_cord_vect_f +end function qmckl_compute_dim_c_vector_f #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes -qmckl_exit_code qmckl_compute_dim_cord_vect ( +qmckl_exit_code qmckl_compute_dim_c_vector ( const qmckl_context context, const int64_t cord_num, - int64_t* const dim_cord_vect){ + int64_t* const dim_c_vector){ int lmax; @@ -6880,7 +6877,7 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( return QMCKL_INVALID_ARG_2; } - *dim_cord_vect = 0; + *dim_c_vector = 0; for (int p=2; p <= cord_num; ++p){ for (int k=p-1; k >= 0; --k) { @@ -6891,7 +6888,7 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( } for (int l = lmax; l >= 0; --l) { if ( ((p - k - l) & 1)==1) continue; - *dim_cord_vect=*dim_cord_vect+1; + *dim_c_vector=*dim_c_vector+1; } } } @@ -6900,48 +6897,48 @@ qmckl_exit_code qmckl_compute_dim_cord_vect ( } #+end_src -# #+CALL: generate_c_header(table=qmckl_factor_dim_cord_vect_args,rettyp=get_value("CRetType"),fname=get_value("Name")) +# #+CALL: generate_c_header(table=qmckl_factor_dim_c_vector_args,rettyp=get_value("CRetType"),fname=get_value("Name")) #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none - qmckl_exit_code qmckl_compute_dim_cord_vect ( + qmckl_exit_code qmckl_compute_dim_c_vector ( const qmckl_context context, const int64_t cord_num, - int64_t* const dim_cord_vect ); + int64_t* const dim_c_vector ); #+end_src -*** Compute cord_vect_full +*** Compute c_vector_full :PROPERTIES: - :Name: qmckl_compute_cord_vect_full + :Name: qmckl_compute_c_vector_full :CRetType: qmckl_exit_code :FRetType: qmckl_exit_code :END: - #+NAME: qmckl_factor_cord_vect_full_args + #+NAME: qmckl_factor_c_vector_full_args | Variable | Type | In/Out | Description | |--------------------+----------------------------------------+--------+------------------------------| | ~context~ | ~qmckl_context~ | in | Global state | | ~nucl_num~ | ~int64_t~ | in | Number of atoms | - | ~dim_cord_vect~ | ~int64_t~ | in | dimension of cord full table | + | ~dim_c_vector~ | ~int64_t~ | in | dimension of cord full table | | ~type_nucl_num~ | ~int64_t~ | in | dimension of cord full table | | ~type_nucl_vector~ | ~int64_t[nucl_num]~ | in | dimension of cord full table | - | ~cord_vector~ | ~double[dim_cord_vect][type_nucl_num]~ | in | dimension of cord full table | - | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | out | Full list of coefficients | + | ~c_vector~ | ~double[dim_c_vector][type_nucl_num]~ | in | dimension of cord full table | + | ~c_vector_full~ | ~double[dim_c_vector][nucl_num]~ | out | Full list of coefficients | #+begin_src f90 :comments org :tangle (eval f) :noweb yes -integer function qmckl_compute_cord_vect_full_doc_f( & - context, nucl_num, dim_cord_vect, type_nucl_num, & - type_nucl_vector, cord_vector, cord_vect_full) & +integer function qmckl_compute_c_vector_full_doc_f( & + context, nucl_num, dim_c_vector, type_nucl_num, & + type_nucl_vector, c_vector, c_vector_full) & result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context integer*8 , intent(in) :: nucl_num - integer*8 , intent(in) :: dim_cord_vect + integer*8 , intent(in) :: dim_c_vector integer*8 , intent(in) :: type_nucl_num integer*8 , intent(in) :: type_nucl_vector(nucl_num) - double precision , intent(in) :: cord_vector(type_nucl_num, dim_cord_vect) - double precision , intent(out) :: cord_vect_full(nucl_num,dim_cord_vect) + double precision , intent(in) :: c_vector(type_nucl_num, dim_c_vector) + double precision , intent(out) :: c_vector_full(nucl_num,dim_c_vector) double precision :: x integer*8 :: i, a, k, l, nw @@ -6962,25 +6959,25 @@ integer function qmckl_compute_cord_vect_full_doc_f( & return endif - if (dim_cord_vect <= 0) then + if (dim_c_vector <= 0) then info = QMCKL_INVALID_ARG_5 return endif do a = 1, nucl_num - cord_vect_full(a,1:dim_cord_vect) = cord_vector(type_nucl_vector(a),1:dim_cord_vect) + c_vector_full(a,1:dim_c_vector) = c_vector(type_nucl_vector(a),1:dim_c_vector) end do -end function qmckl_compute_cord_vect_full_doc_f +end function qmckl_compute_c_vector_full_doc_f #+end_src - #+CALL: generate_c_interface(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname="qmckl_compute_cord_vect_full_doc") + #+CALL: generate_c_interface(table=qmckl_factor_c_vector_full_args,rettyp=get_value("CRetType"),fname="qmckl_compute_c_vector_full_doc") #+RESULTS: #+begin_src f90 :tangle (eval f) :comments org :exports none - integer(c_int32_t) function qmckl_compute_cord_vect_full_doc & - (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) & + integer(c_int32_t) function qmckl_compute_c_vector_full_doc & + (context, nucl_num, dim_c_vector, type_nucl_num, type_nucl_vector, c_vector, c_vector_full) & bind(C) result(info) use, intrinsic :: iso_c_binding @@ -6988,28 +6985,28 @@ end function qmckl_compute_cord_vect_full_doc_f integer (c_int64_t) , intent(in) , value :: context integer (c_int64_t) , intent(in) , value :: nucl_num - integer (c_int64_t) , intent(in) , value :: dim_cord_vect + integer (c_int64_t) , intent(in) , value :: dim_c_vector integer (c_int64_t) , intent(in) , value :: type_nucl_num integer (c_int64_t) , intent(in) :: type_nucl_vector(nucl_num) - real (c_double ) , intent(in) :: cord_vector(type_nucl_num,dim_cord_vect) - real (c_double ) , intent(out) :: cord_vect_full(nucl_num,dim_cord_vect) + real (c_double ) , intent(in) :: c_vector(type_nucl_num,dim_c_vector) + real (c_double ) , intent(out) :: c_vector_full(nucl_num,dim_c_vector) - integer(c_int32_t), external :: qmckl_compute_cord_vect_full_doc_f - info = qmckl_compute_cord_vect_full_doc_f & - (context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full) + integer(c_int32_t), external :: qmckl_compute_c_vector_full_doc_f + info = qmckl_compute_c_vector_full_doc_f & + (context, nucl_num, dim_c_vector, type_nucl_num, type_nucl_vector, c_vector, c_vector_full) - end function qmckl_compute_cord_vect_full_doc + end function qmckl_compute_c_vector_full_doc #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes -qmckl_exit_code qmckl_compute_cord_vect_full_hpc ( +qmckl_exit_code qmckl_compute_c_vector_full_hpc ( const qmckl_context context, const int64_t nucl_num, - const int64_t dim_cord_vect, + const int64_t dim_c_vector, const int64_t type_nucl_num, const int64_t* type_nucl_vector, - const double* cord_vector, - double* const cord_vect_full ) { + const double* c_vector, + double* const c_vector_full ) { if (context == QMCKL_NULL_CONTEXT) { return QMCKL_INVALID_CONTEXT; @@ -7023,13 +7020,13 @@ qmckl_exit_code qmckl_compute_cord_vect_full_hpc ( return QMCKL_INVALID_ARG_4; } - if (dim_cord_vect <= 0) { + if (dim_c_vector <= 0) { return QMCKL_INVALID_ARG_5; } - for (int i=0; i < dim_cord_vect; ++i) { + for (int i=0; i < dim_c_vector; ++i) { for (int a=0; a < nucl_num; ++a){ - cord_vect_full[a + i*nucl_num] = cord_vector[(type_nucl_vector[a]-1)+i*type_nucl_num]; + c_vector_full[a + i*nucl_num] = c_vector[(type_nucl_vector[a]-1)+i*type_nucl_num]; } } @@ -7038,55 +7035,55 @@ qmckl_exit_code qmckl_compute_cord_vect_full_hpc ( #+end_src -# #+CALL: generate_c_header(table=qmckl_factor_cord_vect_full_args,rettyp=get_value("CRetType"),fname="qmckl_compute_cord_vect_full_doc") +# #+CALL: generate_c_header(table=qmckl_factor_c_vector_full_args,rettyp=get_value("CRetType"),fname="qmckl_compute_c_vector_full_doc") #+begin_src c :comments org :tangle (eval h_private_func) :noweb yes :exports none - qmckl_exit_code qmckl_compute_cord_vect_full ( + qmckl_exit_code qmckl_compute_c_vector_full ( const qmckl_context context, const int64_t nucl_num, - const int64_t dim_cord_vect, + const int64_t dim_c_vector, const int64_t type_nucl_num, const int64_t* type_nucl_vector, - const double* cord_vector, - double* const cord_vect_full ); + const double* c_vector, + double* const c_vector_full ); #+end_src #+begin_src c :tangle (eval h_private_func) :comments org - qmckl_exit_code qmckl_compute_cord_vect_full_doc ( + qmckl_exit_code qmckl_compute_c_vector_full_doc ( const qmckl_context context, const int64_t nucl_num, - const int64_t dim_cord_vect, + const int64_t dim_c_vector, const int64_t type_nucl_num, const int64_t* type_nucl_vector, - const double* cord_vector, - double* const cord_vect_full ); + const double* c_vector, + double* const c_vector_full ); #+end_src #+begin_src c :tangle (eval h_private_func) :comments org - qmckl_exit_code qmckl_compute_cord_vect_full_hpc ( + qmckl_exit_code qmckl_compute_c_vector_full_hpc ( const qmckl_context context, const int64_t nucl_num, - const int64_t dim_cord_vect, + const int64_t dim_c_vector, const int64_t type_nucl_num, const int64_t* type_nucl_vector, - const double* cord_vector, - double* const cord_vect_full ); + const double* c_vector, + double* const c_vector_full ); #+end_src #+begin_src c :comments org :tangle (eval c) :noweb yes -qmckl_exit_code qmckl_compute_cord_vect_full ( +qmckl_exit_code qmckl_compute_c_vector_full ( const qmckl_context context, const int64_t nucl_num, - const int64_t dim_cord_vect, + const int64_t dim_c_vector, const int64_t type_nucl_num, const int64_t* type_nucl_vector, - const double* cord_vector, - double* const cord_vect_full ) { + const double* c_vector, + double* const c_vector_full ) { #ifdef HAVE_HPC - return qmckl_compute_cord_vect_full_hpc(context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full); + return qmckl_compute_c_vector_full_hpc(context, nucl_num, dim_c_vector, type_nucl_num, type_nucl_vector, c_vector, c_vector_full); #else - return qmckl_compute_cord_vect_full_doc(context, nucl_num, dim_cord_vect, type_nucl_num, type_nucl_vector, cord_vector, cord_vect_full); + return qmckl_compute_c_vector_full_doc(context, nucl_num, dim_c_vector, type_nucl_num, type_nucl_vector, c_vector, c_vector_full); #endif } #+end_src @@ -7105,19 +7102,19 @@ qmckl_exit_code qmckl_compute_cord_vect_full ( |-----------------------+-----------------------------+--------+-------------------------------| | ~context~ | ~qmckl_context~ | in | Global state | | ~cord_num~ | ~int64_t~ | in | Order of polynomials | - | ~dim_cord_vect~ | ~int64_t~ | in | dimension of cord full table | - | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | out | Full list of combined indices | + | ~dim_c_vector~ | ~int64_t~ | in | dimension of cord full table | + | ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | out | Full list of combined indices | #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_lkpm_combined_index_f( & - context, cord_num, dim_cord_vect, lkpm_combined_index) & + context, cord_num, dim_c_vector, lkpm_combined_index) & result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context integer*8 , intent(in) :: cord_num - integer*8 , intent(in) :: dim_cord_vect - integer*8 , intent(out) :: lkpm_combined_index(dim_cord_vect, 4) + integer*8 , intent(in) :: dim_c_vector + integer*8 , intent(out) :: lkpm_combined_index(dim_c_vector, 4) double precision :: x integer*8 :: i, a, k, l, kk, p, lmax, m @@ -7133,7 +7130,7 @@ integer function qmckl_compute_lkpm_combined_index_f( & return endif - if (dim_cord_vect <= 0) then + if (dim_c_vector <= 0) then info = QMCKL_INVALID_ARG_3 return endif @@ -7166,7 +7163,7 @@ end function qmckl_compute_lkpm_combined_index_f qmckl_exit_code qmckl_compute_lkpm_combined_index ( const qmckl_context context, const int64_t cord_num, - const int64_t dim_cord_vect, + const int64_t dim_c_vector, int64_t* const lkpm_combined_index ) { int kk, lmax, m; @@ -7179,7 +7176,7 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( return QMCKL_INVALID_ARG_2; } - if (dim_cord_vect <= 0) { + if (dim_c_vector <= 0) { return QMCKL_INVALID_ARG_3; } @@ -7197,9 +7194,9 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( if (((p - k - l) & 1) == 1) continue; m = (p - k - l)/2; lkpm_combined_index[kk ] = l; - lkpm_combined_index[kk + dim_cord_vect] = k; - lkpm_combined_index[kk + 2*dim_cord_vect] = p; - lkpm_combined_index[kk + 3*dim_cord_vect] = m; + lkpm_combined_index[kk + dim_c_vector] = k; + lkpm_combined_index[kk + 2*dim_c_vector] = p; + lkpm_combined_index[kk + 3*dim_c_vector] = m; kk = kk + 1; } } @@ -7215,7 +7212,7 @@ qmckl_exit_code qmckl_compute_lkpm_combined_index ( qmckl_exit_code qmckl_compute_lkpm_combined_index ( const qmckl_context context, const int64_t cord_num, - const int64_t dim_cord_vect, + const int64_t dim_c_vector, int64_t* const lkpm_combined_index ); #+end_src @@ -8479,7 +8476,7 @@ qmckl_exit_code qmckl_provide_factor_een(qmckl_context context) if(rc != QMCKL_SUCCESS) return rc; /* Check if en rescaled distance derivatives is provided */ - rc = qmckl_provide_cord_vect_full(context); + rc = qmckl_provide_c_vector_full(context); if(rc != QMCKL_SUCCESS) return rc; /* Check if en rescaled distance derivatives is provided */ @@ -8526,8 +8523,8 @@ qmckl_exit_code qmckl_provide_factor_een(qmckl_context context) ctx->electron.num, ctx->nucleus.num, ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.cord_vect_full, + ctx->jastrow.dim_c_vector, + ctx->jastrow.c_vector_full, ctx->jastrow.lkpm_combined_index, ctx->jastrow.tmp_c, ctx->jastrow.een_rescaled_n, @@ -8558,9 +8555,9 @@ qmckl_exit_code qmckl_provide_factor_een(qmckl_context context) | ~elec_num~ | ~int64_t~ | in | Number of electrons | | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | | ~cord_num~ | ~int64_t~ | in | order of polynomials | - | ~dim_cord_vect~ | ~int64_t~ | in | dimension of full coefficient vector | - | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | in | full coefficient vector | - | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | in | combined indices | + | ~dim_c_vector~ | ~int64_t~ | in | dimension of full coefficient vector | + | ~c_vector_full~ | ~double[dim_c_vector][nucl_num]~ | in | full coefficient vector | + | ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | in | combined indices | | ~een_rescaled_e~ | ~double[walk_num][elec_num][elec_num][0:cord_num]~ | in | Electron-nucleus rescaled | | ~een_rescaled_n~ | ~double[walk_num][elec_num][nucl_num][0:cord_num]~ | in | Electron-nucleus rescaled factor | | ~factor_een~ | ~double[walk_num]~ | out | Electron-nucleus jastrow | @@ -8568,15 +8565,15 @@ qmckl_exit_code qmckl_provide_factor_een(qmckl_context context) #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_factor_een_naive_f( & context, walk_num, elec_num, nucl_num, cord_num,& - dim_cord_vect, cord_vect_full, lkpm_combined_index, & + dim_c_vector, c_vector_full, lkpm_combined_index, & een_rescaled_e, een_rescaled_n, factor_een) & result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_cord_vect - integer*8 , intent(in) :: lkpm_combined_index(dim_cord_vect,4) - double precision , intent(in) :: cord_vect_full(nucl_num, dim_cord_vect) + integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector + integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector,4) + double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector) double precision , intent(in) :: een_rescaled_e(0:cord_num, elec_num, elec_num, walk_num) double precision , intent(in) :: een_rescaled_n(0:cord_num, nucl_num, elec_num, walk_num) double precision , intent(out) :: factor_een(walk_num) @@ -8614,7 +8611,7 @@ integer function qmckl_compute_factor_een_naive_f( & factor_een = 0.0d0 do nw =1, walk_num - do n = 1, dim_cord_vect + do n = 1, dim_c_vector l = lkpm_combined_index(n, 1) k = lkpm_combined_index(n, 2) p = lkpm_combined_index(n, 3) @@ -8622,7 +8619,7 @@ integer function qmckl_compute_factor_een_naive_f( & do a = 1, nucl_num accu2 = 0.0d0 - cn = cord_vect_full(a, n) + cn = c_vector_full(a, n) do j = 1, elec_num accu = 0.0d0 do i = 1, elec_num @@ -8652,8 +8649,8 @@ end function qmckl_compute_factor_een_naive_f const int64_t elec_num, const int64_t nucl_num, const int64_t cord_num, - const int64_t dim_cord_vect, - const double* cord_vect_full, + const int64_t dim_c_vector, + const double* c_vector_full, const int64_t* lkpm_combined_index, const double* een_rescaled_e, const double* een_rescaled_n, @@ -8670,8 +8667,8 @@ end function qmckl_compute_factor_een_naive_f elec_num, & nucl_num, & cord_num, & - dim_cord_vect, & - cord_vect_full, & + dim_c_vector, & + c_vector_full, & lkpm_combined_index, & een_rescaled_e, & een_rescaled_n, & @@ -8686,9 +8683,9 @@ end function qmckl_compute_factor_een_naive_f integer (c_int64_t) , intent(in) , value :: elec_num integer (c_int64_t) , intent(in) , value :: nucl_num integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_cord_vect - real (c_double ) , intent(in) :: cord_vect_full(nucl_num,dim_cord_vect) - integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_cord_vect,4) + integer (c_int64_t) , intent(in) , value :: dim_c_vector + real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) + integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) real (c_double ) , intent(in) :: een_rescaled_e(0:cord_num,elec_num,elec_num,walk_num) real (c_double ) , intent(in) :: een_rescaled_n(0:cord_num,nucl_num,elec_num,walk_num) real (c_double ) , intent(out) :: factor_een(walk_num) @@ -8700,8 +8697,8 @@ end function qmckl_compute_factor_een_naive_f elec_num, & nucl_num, & cord_num, & - dim_cord_vect, & - cord_vect_full, & + dim_c_vector, & + c_vector_full, & lkpm_combined_index, & een_rescaled_e, & een_rescaled_n, & @@ -8725,9 +8722,9 @@ end function qmckl_compute_factor_een_naive_f | ~elec_num~ | ~int64_t~ | in | Number of electrons | | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | | ~cord_num~ | ~int64_t~ | in | order of polynomials | - | ~dim_cord_vect~ | ~int64_t~ | in | dimension of full coefficient vector | - | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | in | full coefficient vector | - | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | in | combined indices | + | ~dim_c_vector~ | ~int64_t~ | in | dimension of full coefficient vector | + | ~c_vector_full~ | ~double[dim_c_vector][nucl_num]~ | in | full coefficient vector | + | ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | in | combined indices | | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | vector of non-zero coefficients | | | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor | | ~factor_een~ | ~double[walk_num]~ | out | Electron-nucleus jastrow | @@ -8735,15 +8732,15 @@ end function qmckl_compute_factor_een_naive_f #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_factor_een_f( & context, walk_num, elec_num, nucl_num, cord_num, & - dim_cord_vect, cord_vect_full, lkpm_combined_index, & + dim_c_vector, c_vector_full, lkpm_combined_index, & tmp_c, een_rescaled_n, factor_een) & result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_cord_vect - integer*8 , intent(in) :: lkpm_combined_index(dim_cord_vect,4) - double precision , intent(in) :: cord_vect_full(nucl_num, dim_cord_vect) + integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector + integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector,4) + double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector) double precision , intent(in) :: tmp_c(elec_num, nucl_num,0:cord_num, 0:cord_num-1, walk_num) double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) double precision , intent(out) :: factor_een(walk_num) @@ -8781,14 +8778,14 @@ integer function qmckl_compute_factor_een_f( & factor_een = 0.0d0 do nw =1, walk_num - do n = 1, dim_cord_vect + do n = 1, dim_c_vector l = lkpm_combined_index(n, 1) k = lkpm_combined_index(n, 2) p = lkpm_combined_index(n, 3) m = lkpm_combined_index(n, 4) do a = 1, nucl_num - cn = cord_vect_full(a, n) + cn = c_vector_full(a, n) if(cn == 0.d0) cycle accu = 0.0d0 @@ -8812,8 +8809,8 @@ end function qmckl_compute_factor_een_f const int64_t elec_num, const int64_t nucl_num, const int64_t cord_num, - const int64_t dim_cord_vect, - const double* cord_vect_full, + const int64_t dim_c_vector, + const double* c_vector_full, const int64_t* lkpm_combined_index, const double* een_rescaled_e, const double* een_rescaled_n, @@ -8830,8 +8827,8 @@ end function qmckl_compute_factor_een_f elec_num, & nucl_num, & cord_num, & - dim_cord_vect, & - cord_vect_full, & + dim_c_vector, & + c_vector_full, & lkpm_combined_index, & een_rescaled_e, & een_rescaled_n, & @@ -8846,9 +8843,9 @@ end function qmckl_compute_factor_een_f integer (c_int64_t) , intent(in) , value :: elec_num integer (c_int64_t) , intent(in) , value :: nucl_num integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_cord_vect - real (c_double ) , intent(in) :: cord_vect_full(nucl_num,dim_cord_vect) - integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_cord_vect,4) + integer (c_int64_t) , intent(in) , value :: dim_c_vector + real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) + integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) real (c_double ) , intent(in) :: een_rescaled_e(0:cord_num,elec_num,elec_num,walk_num) real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) real (c_double ) , intent(out) :: factor_een(walk_num) @@ -8860,8 +8857,8 @@ end function qmckl_compute_factor_een_f elec_num, & nucl_num, & cord_num, & - dim_cord_vect, & - cord_vect_full, & + dim_c_vector, & + c_vector_full, & lkpm_combined_index, & een_rescaled_e, & een_rescaled_n, & @@ -8882,7 +8879,7 @@ kappa = 1.0 factor_een = 0.0 -for n in range(0, dim_cord_vect): +for n in range(0, dim_c_vector): l = lkpm_of_cindex[0,n] k = lkpm_of_cindex[1,n] p = lkpm_of_cindex[2,n] @@ -8890,7 +8887,7 @@ for n in range(0, dim_cord_vect): for a in range(0, nucl_num): accu2 = 0.0 - cn = cord_vector_full[a][n] + cn = c_vector_full[a][n] for j in range(0, elec_num): accu = 0.0 for i in range(0, elec_num): @@ -8997,7 +8994,7 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) if(rc != QMCKL_SUCCESS) return rc; /* Check if en rescaled distance derivatives is provided */ - rc = qmckl_provide_cord_vect_full(context); + rc = qmckl_provide_c_vector_full(context); if(rc != QMCKL_SUCCESS) return rc; /* Check if en rescaled distance derivatives is provided */ @@ -9048,8 +9045,8 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) ctx->electron.num, ctx->nucleus.num, ctx->jastrow.cord_num, - ctx->jastrow.dim_cord_vect, - ctx->jastrow.cord_vect_full, + ctx->jastrow.dim_c_vector, + ctx->jastrow.c_vector_full, ctx->jastrow.lkpm_combined_index, ctx->jastrow.tmp_c, ctx->jastrow.dtmp_c, @@ -9082,9 +9079,9 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) | ~elec_num~ | ~int64_t~ | in | Number of electrons | | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | | ~cord_num~ | ~int64_t~ | in | order of polynomials | - | ~dim_cord_vect~ | ~int64_t~ | in | dimension of full coefficient vector | - | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | in | full coefficient vector | - | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | in | combined indices | + | ~dim_c_vector~ | ~int64_t~ | in | dimension of full coefficient vector | + | ~c_vector_full~ | ~double[dim_c_vector][nucl_num]~ | in | full coefficient vector | + | ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | in | combined indices | | ~een_rescaled_e~ | ~double[walk_num][elec_num][elec_num][0:cord_num]~ | in | Electron-nucleus rescaled | | ~een_rescaled_n~ | ~double[walk_num][elec_num][nucl_num][0:cord_num]~ | in | Electron-nucleus rescaled factor | | ~een_rescaled_e_deriv_e~ | ~double[walk_num][elec_num][4][elec_num][0:cord_num]~ | in | Electron-nucleus rescaled | @@ -9093,16 +9090,16 @@ qmckl_exit_code qmckl_provide_factor_een_deriv_e(qmckl_context context) #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_factor_een_deriv_e_naive_f( & - context, walk_num, elec_num, nucl_num, cord_num, dim_cord_vect, & - cord_vect_full, lkpm_combined_index, een_rescaled_e, een_rescaled_n, & + context, walk_num, elec_num, nucl_num, cord_num, dim_c_vector, & + c_vector_full, lkpm_combined_index, een_rescaled_e, een_rescaled_n, & een_rescaled_e_deriv_e, een_rescaled_n_deriv_e, factor_een_deriv_e)& result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_cord_vect - integer*8 , intent(in) :: lkpm_combined_index(dim_cord_vect, 4) - double precision , intent(in) :: cord_vect_full(nucl_num, dim_cord_vect) + integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector + integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector, 4) + double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector) double precision , intent(in) :: een_rescaled_e(0:cord_num, elec_num, elec_num, walk_num) double precision , intent(in) :: een_rescaled_n(0:cord_num, nucl_num, elec_num, walk_num) double precision , intent(in) :: een_rescaled_e_deriv_e(0:cord_num, elec_num, 4, elec_num, walk_num) @@ -9143,14 +9140,14 @@ integer function qmckl_compute_factor_een_deriv_e_naive_f( & factor_een_deriv_e = 0.0d0 do nw =1, walk_num - do n = 1, dim_cord_vect + do n = 1, dim_c_vector l = lkpm_combined_index(n, 1) k = lkpm_combined_index(n, 2) p = lkpm_combined_index(n, 3) m = lkpm_combined_index(n, 4) do a = 1, nucl_num - cn = cord_vect_full(a, n) + cn = c_vector_full(a, n) do j = 1, elec_num accu = 0.0d0 accu2 = 0.0d0 @@ -9197,8 +9194,8 @@ end function qmckl_compute_factor_een_deriv_e_naive_f const int64_t elec_num, const int64_t nucl_num, const int64_t cord_num, - const int64_t dim_cord_vect, - const double* cord_vect_full, + const int64_t dim_c_vector, + const double* c_vector_full, const int64_t* lkpm_combined_index, const double* een_rescaled_e, const double* een_rescaled_n, @@ -9218,8 +9215,8 @@ end function qmckl_compute_factor_een_deriv_e_naive_f elec_num, & nucl_num, & cord_num, & - dim_cord_vect, & - cord_vect_full, & + dim_c_vector, & + c_vector_full, & lkpm_combined_index, & een_rescaled_e, & een_rescaled_n, & @@ -9236,9 +9233,9 @@ end function qmckl_compute_factor_een_deriv_e_naive_f integer (c_int64_t) , intent(in) , value :: elec_num integer (c_int64_t) , intent(in) , value :: nucl_num integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_cord_vect - real (c_double ) , intent(in) :: cord_vect_full(nucl_num,dim_cord_vect) - integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_cord_vect,4) + integer (c_int64_t) , intent(in) , value :: dim_c_vector + real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) + integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) real (c_double ) , intent(in) :: een_rescaled_e(0:cord_num,elec_num,elec_num,walk_num) real (c_double ) , intent(in) :: een_rescaled_n(0:cord_num,nucl_num,elec_num,walk_num) real (c_double ) , intent(in) :: een_rescaled_e_deriv_e(0:cord_num,elec_num,4,elec_num,walk_num) @@ -9252,8 +9249,8 @@ end function qmckl_compute_factor_een_deriv_e_naive_f elec_num, & nucl_num, & cord_num, & - dim_cord_vect, & - cord_vect_full, & + dim_c_vector, & + c_vector_full, & lkpm_combined_index, & een_rescaled_e, & een_rescaled_n, & @@ -9279,9 +9276,9 @@ end function qmckl_compute_factor_een_deriv_e_naive_f | ~elec_num~ | ~int64_t~ | in | Number of electrons | | ~nucl_num~ | ~int64_t~ | in | Number of nucleii | | ~cord_num~ | ~int64_t~ | in | order of polynomials | - | ~dim_cord_vect~ | ~int64_t~ | in | dimension of full coefficient vector | - | ~cord_vect_full~ | ~double[dim_cord_vect][nucl_num]~ | in | full coefficient vector | - | ~lkpm_combined_index~ | ~int64_t[4][dim_cord_vect]~ | in | combined indices | + | ~dim_c_vector~ | ~int64_t~ | in | dimension of full coefficient vector | + | ~c_vector_full~ | ~double[dim_c_vector][nucl_num]~ | in | full coefficient vector | + | ~lkpm_combined_index~ | ~int64_t[4][dim_c_vector]~ | in | combined indices | | ~tmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][elec_num]~ | in | Temporary intermediate tensor | | ~dtmp_c~ | ~double[walk_num][0:cord_num-1][0:cord_num][nucl_num][4][elec_num]~ | in | vector of non-zero coefficients | | ~een_rescaled_n~ | ~double[walk_num][0:cord_num][nucl_num][elec_num]~ | in | Electron-nucleus rescaled factor | @@ -9292,15 +9289,15 @@ end function qmckl_compute_factor_een_deriv_e_naive_f #+begin_src f90 :comments org :tangle (eval f) :noweb yes integer function qmckl_compute_factor_een_deriv_e_f( & context, walk_num, elec_num, nucl_num, & - cord_num, dim_cord_vect, cord_vect_full, lkpm_combined_index, & + cord_num, dim_c_vector, c_vector_full, lkpm_combined_index, & tmp_c, dtmp_c, een_rescaled_n, een_rescaled_n_deriv_e, factor_een_deriv_e)& result(info) use qmckl implicit none integer(qmckl_context), intent(in) :: context - integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_cord_vect - integer*8 , intent(in) :: lkpm_combined_index(dim_cord_vect,4) - double precision , intent(in) :: cord_vect_full(nucl_num, dim_cord_vect) + integer*8 , intent(in) :: walk_num, elec_num, cord_num, nucl_num, dim_c_vector + integer*8 , intent(in) :: lkpm_combined_index(dim_c_vector,4) + double precision , intent(in) :: c_vector_full(nucl_num, dim_c_vector) double precision , intent(in) :: tmp_c(elec_num, nucl_num,0:cord_num, 0:cord_num-1, walk_num) double precision , intent(in) :: dtmp_c(elec_num, 4, nucl_num,0:cord_num, 0:cord_num-1, walk_num) double precision , intent(in) :: een_rescaled_n(elec_num, nucl_num, 0:cord_num, walk_num) @@ -9340,14 +9337,14 @@ integer function qmckl_compute_factor_een_deriv_e_f( & factor_een_deriv_e = 0.0d0 do nw =1, walk_num - do n = 1, dim_cord_vect + do n = 1, dim_c_vector l = lkpm_combined_index(n, 1) k = lkpm_combined_index(n, 2) p = lkpm_combined_index(n, 3) m = lkpm_combined_index(n, 4) do a = 1, nucl_num - cn = cord_vect_full(a, n) + cn = c_vector_full(a, n) if(cn == 0.d0) cycle do ii = 1, 4 @@ -9388,8 +9385,8 @@ end function qmckl_compute_factor_een_deriv_e_f const int64_t elec_num, const int64_t nucl_num, const int64_t cord_num, - const int64_t dim_cord_vect, - const double* cord_vect_full, + const int64_t dim_c_vector, + const double* c_vector_full, const int64_t* lkpm_combined_index, const double* tmp_c, const double* dtmp_c, @@ -9409,8 +9406,8 @@ end function qmckl_compute_factor_een_deriv_e_f elec_num, & nucl_num, & cord_num, & - dim_cord_vect, & - cord_vect_full, & + dim_c_vector, & + c_vector_full, & lkpm_combined_index, & tmp_c, & dtmp_c, & @@ -9427,9 +9424,9 @@ end function qmckl_compute_factor_een_deriv_e_f integer (c_int64_t) , intent(in) , value :: elec_num integer (c_int64_t) , intent(in) , value :: nucl_num integer (c_int64_t) , intent(in) , value :: cord_num - integer (c_int64_t) , intent(in) , value :: dim_cord_vect - real (c_double ) , intent(in) :: cord_vect_full(nucl_num,dim_cord_vect) - integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_cord_vect,4) + integer (c_int64_t) , intent(in) , value :: dim_c_vector + real (c_double ) , intent(in) :: c_vector_full(nucl_num,dim_c_vector) + integer (c_int64_t) , intent(in) :: lkpm_combined_index(dim_c_vector,4) real (c_double ) , intent(in) :: tmp_c(elec_num,nucl_num,0:cord_num,0:cord_num-1,walk_num) real (c_double ) , intent(in) :: dtmp_c(elec_num,4,nucl_num,0:cord_num,0:cord_num-1,walk_num) real (c_double ) , intent(in) :: een_rescaled_n(elec_num,nucl_num,0:cord_num,walk_num) @@ -9443,8 +9440,8 @@ end function qmckl_compute_factor_een_deriv_e_f elec_num, & nucl_num, & cord_num, & - dim_cord_vect, & - cord_vect_full, & + dim_c_vector, & + c_vector_full, & lkpm_combined_index, & tmp_c, & dtmp_c, & @@ -9473,14 +9470,14 @@ daccu = np.zeros(4, dtype=float) daccu2 = np.zeros(4, dtype=float) een_rescaled_e_deriv_e_t = een_rescaled_e_deriv_e.T print(een_rescaled_e_deriv_e_t.shape) -for n in range(0, dim_cord_vect): +for n in range(0, dim_c_vector): l = lkpm_of_cindex[0,n] k = lkpm_of_cindex[1,n] p = lkpm_of_cindex[2,n] m = lkpm_of_cindex[3,n] for a in range(0, nucl_num): - cn = cord_vector_full[a][n] + cn = c_vector_full[a][n] for j in range(0, elec_num): accu = 0.0 accu2 = 0.0 diff --git a/org/qmckl_tests.org b/org/qmckl_tests.org index 791219d..dd58b92 100644 --- a/org/qmckl_tests.org +++ b/org/qmckl_tests.org @@ -60111,13 +60111,13 @@ double n2_elec_coord[n2_walk_num][n2_elec_num][3] = { { #define n2_aord_num ((int64_t) 5) #define n2_bord_num ((int64_t) 5) #define n2_cord_num ((int64_t) 5) -#define n2_dim_cord_vec ((int64_t) 23) +#define n2_dim_c_vec ((int64_t) 23) int64_t n2_type_nucl_vector[n2_nucl_num] = { 1, 1}; -double n2_aord_vector[n2_aord_num + 1][n2_type_nucl_num] = { +double n2_a_vector[n2_aord_num + 1][n2_type_nucl_num] = { { 0. }, { 0. }, {-0.380512}, @@ -60125,7 +60125,7 @@ double n2_aord_vector[n2_aord_num + 1][n2_type_nucl_num] = { {-0.031558}, { 0.021512}}; -double n2_bord_vector[n2_bord_num + 1] = { +double n2_b_vector[n2_bord_num + 1] = { 0.5 , 0.15366 , 0.0672262 , @@ -60133,7 +60133,7 @@ double n2_bord_vector[n2_bord_num + 1] = { 0.0073096 , 0.002866 }; -double n2_cord_vector[n2_dim_cord_vec][n2_type_nucl_num] = { +double n2_c_vector[n2_dim_c_vec][n2_type_nucl_num] = { { 5.717020e-01}, {-5.142530e-01}, {-5.130430e-01}, @@ -60158,7 +60158,7 @@ double n2_cord_vector[n2_dim_cord_vec][n2_type_nucl_num] = { {-4.010475e-02}, { 6.106710e-03}}; -double n2_cord_vector_full[n2_dim_cord_vec][n2_nucl_num] = { +double n2_c_vector_full[n2_dim_c_vec][n2_nucl_num] = { { 5.717020e-01, 5.717020e-01}, {-5.142530e-01, -5.142530e-01}, {-5.130430e-01, -5.130430e-01}, @@ -60183,7 +60183,7 @@ double n2_cord_vector_full[n2_dim_cord_vec][n2_nucl_num] = { {-4.010475e-02, -4.010475e-02}, { 6.106710e-03, 6.106710e-03}}; -double n2_lkpm_of_cindex[4][n2_dim_cord_vec] = { +double n2_lkpm_of_cindex[4][n2_dim_c_vec] = { {1, 1, 2, 0, 0, 0, 2, 1, 1, 2, 3, 0, 2, 1, 3, 0, 0, 1, 3, 1, 1, 0, 3}, {1, 1, 3, 4, 0, 2, 2, 4, 0, 0, 2, 4, 1, 3, 1, 4, 0, 1, 1, 4, 1, 2, 0}, {4, 1, 0, 0, 4, 2, 1, 4, 5, 0, 2, 3, 5, 0, 0, 3, 5, 1, 3, 2, 5, 0, 1},