mirror of
https://github.com/TREX-CoE/qmckl.git
synced 2025-04-30 20:35:10 +02:00
Merge branch 'master' of https://github.com/EmielSlootman/qmckl
This commit is contained in:
commit
563a9e1c12
1
.gitignore
vendored
1
.gitignore
vendored
@ -32,3 +32,4 @@ tools/libtool
|
|||||||
tools/ltmain.sh
|
tools/ltmain.sh
|
||||||
tools/missing
|
tools/missing
|
||||||
tools/test-driver
|
tools/test-driver
|
||||||
|
*/*.exported
|
||||||
|
@ -49,8 +49,6 @@ qmckl_f = include/qmckl_f.F90
|
|||||||
qmckl_fo = include/qmckl_f.o
|
qmckl_fo = include/qmckl_f.o
|
||||||
include_HEADERS = $(qmckl_h) $(qmckl_f)
|
include_HEADERS = $(qmckl_h) $(qmckl_f)
|
||||||
|
|
||||||
header_tests = tests/chbrclf.h tests/n2.h
|
|
||||||
|
|
||||||
QMCKL_TEST_DIR = $(abs_srcdir)/share/qmckl/test_data/
|
QMCKL_TEST_DIR = $(abs_srcdir)/share/qmckl/test_data/
|
||||||
|
|
||||||
AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_builddir)/include
|
AM_CPPFLAGS = -I$(top_builddir)/src -I$(top_builddir)/include
|
||||||
@ -137,9 +135,9 @@ endif
|
|||||||
|
|
||||||
EXTRA_DIST += $(ORG_FILES) $(TANGLED_FILES) $(EXPORTED_FILES)
|
EXTRA_DIST += $(ORG_FILES) $(TANGLED_FILES) $(EXPORTED_FILES)
|
||||||
|
|
||||||
BUILT_SOURCES = $(C_FILES) $(F_FILES) $(FH_FUNC_FILES) $(FH_TYPE_FILES) $(H_FUNC_FILES) $(H_TYPE_FILES) $(H_PRIVATE_FUNC_FILES) $(H_PRIVATE_TYPE_FILES) $(qmckl_f) $(qmckl_h) $(header_tests) $(htmlize_el)
|
BUILT_SOURCES = $(C_FILES) $(F_FILES) $(FH_FUNC_FILES) $(FH_TYPE_FILES) $(H_FUNC_FILES) $(H_TYPE_FILES) $(H_PRIVATE_FUNC_FILES) $(H_PRIVATE_TYPE_FILES) $(qmckl_f) $(qmckl_h) $(htmlize_el)
|
||||||
|
|
||||||
CLEANFILES += $(BUILT_SOURCES) $(C_TEST_FILES) $(F_TEST_FILES) $(TANGLED_FILES) $(C_TEST_FILES) $(F_TEST_FILES) $(qmckl_f) $(qmckl_h) $(HTML_FILES) $(TEXT_FILES) $(EXPORTED_FILES) $(header_tests) $(htmlize_el)
|
CLEANFILES += $(BUILT_SOURCES) $(C_TEST_FILES) $(F_TEST_FILES) $(TANGLED_FILES) $(C_TEST_FILES) $(F_TEST_FILES) $(qmckl_f) $(qmckl_h) $(HTML_FILES) $(TEXT_FILES) $(EXPORTED_FILES) $(htmlize_el)
|
||||||
|
|
||||||
EXTRA_DIST += \
|
EXTRA_DIST += \
|
||||||
tools/build_doc.sh \
|
tools/build_doc.sh \
|
||||||
@ -189,7 +187,7 @@ $(htmlize_el):
|
|||||||
|
|
||||||
tests/chbrclf.h: $(qmckl_h)
|
tests/chbrclf.h: $(qmckl_h)
|
||||||
|
|
||||||
tests/n2.h: $(qmckl_h)
|
include/n2.h: $(qmckl_h)
|
||||||
|
|
||||||
cppcheck: cppcheck.out
|
cppcheck: cppcheck.out
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ AC_ARG_WITH([icx],
|
|||||||
|
|
||||||
AS_IF([test "x$with_icx" = "xyes"], [
|
AS_IF([test "x$with_icx" = "xyes"], [
|
||||||
CC=icx
|
CC=icx
|
||||||
CFLAGS="-march=native -Ofast -ftz -finline -g -qmkl=sequential" ])
|
CFLAGS="-march=native -Ofast -finline -g -qmkl=sequential" ])
|
||||||
|
|
||||||
AS_IF([test "x$with_icx.$with_ifort" = "xyes.yes"], [
|
AS_IF([test "x$with_icx.$with_ifort" = "xyes.yes"], [
|
||||||
ax_blas_ok="yes"
|
ax_blas_ok="yes"
|
||||||
|
109
include/n2.h
Normal file
109
include/n2.h
Normal file
@ -0,0 +1,109 @@
|
|||||||
|
#define n2_nucl_num ((int64_t) 2)
|
||||||
|
|
||||||
|
double n2_charge[n2_nucl_num] = { 5., 5.};
|
||||||
|
|
||||||
|
double n2_nucl_coord[3][n2_nucl_num] =
|
||||||
|
{ {0.000000, 0.000000 },
|
||||||
|
{0.000000, 0.000000 },
|
||||||
|
{0.000000, 2.059801 } };
|
||||||
|
|
||||||
|
#define n2_elec_up_num ((int64_t) 5)
|
||||||
|
#define n2_elec_dn_num ((int64_t) 5)
|
||||||
|
#define n2_elec_num ((int64_t) 10)
|
||||||
|
#define n2_walk_num ((int64_t) 1)
|
||||||
|
|
||||||
|
double n2_elec_coord[n2_walk_num][n2_elec_num][3] = { {
|
||||||
|
{-0.250655104764153 , 0.503070975550133 , -0.166554344502303},
|
||||||
|
{-0.587812193472177 , -0.128751981129274 , 0.187773606533075},
|
||||||
|
{ 1.61335569047166 , -0.615556732874863 , -1.43165470979934 },
|
||||||
|
{-4.901239896295210E-003 , -1.120440036458986E-002 , 1.99761909330422 },
|
||||||
|
{ 0.766647499681200 , -0.293515395797937 , 3.66454589201239 },
|
||||||
|
{-0.127732483187947 , -0.138975497694196 , -8.669850480215846E-002},
|
||||||
|
{-0.232271834949124 , -1.059321673434182E-002 , -0.504862241464867},
|
||||||
|
{ 1.09360863531826 , -2.036103063808752E-003 , -2.702796910818986E-002},
|
||||||
|
{-0.108090166832043 , 0.189161729653261 , 2.15398313919894},
|
||||||
|
{ 0.397978144318712 , -0.254277292595981 , 2.54553335476344}}};
|
||||||
|
|
||||||
|
/* Jastrow related */
|
||||||
|
|
||||||
|
#define n2_type_nucl_num ((int64_t) 1)
|
||||||
|
#define n2_aord_num ((int64_t) 5)
|
||||||
|
#define n2_bord_num ((int64_t) 5)
|
||||||
|
#define n2_cord_num ((int64_t) 5)
|
||||||
|
#define n2_dim_c_vec ((int64_t) 23)
|
||||||
|
|
||||||
|
int64_t n2_type_nucl_vector[n2_nucl_num] = {
|
||||||
|
0,
|
||||||
|
0};
|
||||||
|
|
||||||
|
double n2_a_vector[n2_aord_num + 1][n2_type_nucl_num] = {
|
||||||
|
{ 0. },
|
||||||
|
{ 0. },
|
||||||
|
{-0.380512},
|
||||||
|
{-0.157996},
|
||||||
|
{-0.031558},
|
||||||
|
{ 0.021512}};
|
||||||
|
|
||||||
|
double n2_b_vector[n2_bord_num + 1] = {
|
||||||
|
0.5 ,
|
||||||
|
0.15366 ,
|
||||||
|
0.0672262 ,
|
||||||
|
0.02157 ,
|
||||||
|
0.0073096 ,
|
||||||
|
0.002866 };
|
||||||
|
|
||||||
|
double n2_c_vector[n2_dim_c_vec][n2_type_nucl_num] = {
|
||||||
|
{ 5.717020e-01},
|
||||||
|
{-5.142530e-01},
|
||||||
|
{-5.130430e-01},
|
||||||
|
{ 9.486000e-03},
|
||||||
|
{-4.205000e-03},
|
||||||
|
{ 4.263258e-01},
|
||||||
|
{ 8.288150e-02},
|
||||||
|
{ 5.118600e-03},
|
||||||
|
{-2.997800e-03},
|
||||||
|
{-5.270400e-03},
|
||||||
|
{-7.500000e-05},
|
||||||
|
{-8.301650e-02},
|
||||||
|
{ 1.454340e-02},
|
||||||
|
{ 5.143510e-02},
|
||||||
|
{ 9.250000e-04},
|
||||||
|
{-4.099100e-03},
|
||||||
|
{ 4.327600e-03},
|
||||||
|
{-1.654470e-03},
|
||||||
|
{ 2.614000e-03},
|
||||||
|
{-1.477000e-03},
|
||||||
|
{-1.137000e-03},
|
||||||
|
{-4.010475e-02},
|
||||||
|
{ 6.106710e-03}};
|
||||||
|
|
||||||
|
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},
|
||||||
|
{ 9.486000e-03, 9.486000e-03},
|
||||||
|
{-4.205000e-03, -4.205000e-03},
|
||||||
|
{ 4.263258e-01, 4.263258e-01},
|
||||||
|
{ 8.288150e-02, 8.288150e-02},
|
||||||
|
{ 5.118600e-03, 5.118600e-03},
|
||||||
|
{-2.997800e-03, -2.997800e-03},
|
||||||
|
{-5.270400e-03, -5.270400e-03},
|
||||||
|
{-7.500000e-05, -7.500000e-05},
|
||||||
|
{-8.301650e-02, -8.301650e-02},
|
||||||
|
{ 1.454340e-02, 1.454340e-02},
|
||||||
|
{ 5.143510e-02, 5.143510e-02},
|
||||||
|
{ 9.250000e-04, 9.250000e-04},
|
||||||
|
{-4.099100e-03, -4.099100e-03},
|
||||||
|
{ 4.327600e-03, 4.327600e-03},
|
||||||
|
{-1.654470e-03, -1.654470e-03},
|
||||||
|
{ 2.614000e-03, 2.614000e-03},
|
||||||
|
{-1.477000e-03, -1.477000e-03},
|
||||||
|
{-1.137000e-03, -1.137000e-03},
|
||||||
|
{-4.010475e-02, -4.010475e-02},
|
||||||
|
{ 6.106710e-03, 6.106710e-03}};
|
||||||
|
|
||||||
|
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},
|
||||||
|
{2, 5, 1, 4, 1, 5, 0, 2, 1, 5, 1, 0, 1, 5, 2, 3, 0, 5, 1, 1, 0, 5, 2}};
|
@ -472,18 +472,15 @@ qmckl_get_error(qmckl_context context,
|
|||||||
qmckl_context_struct* const ctx = (qmckl_context_struct*) context;
|
qmckl_context_struct* const ctx = (qmckl_context_struct*) context;
|
||||||
assert (ctx != NULL); /* Impossible because the context is valid. */
|
assert (ctx != NULL); /* Impossible because the context is valid. */
|
||||||
|
|
||||||
/* Turn off annoying GCC warning */
|
size_t sizeCp;
|
||||||
#ifdef __GNUC__
|
|
||||||
#pragma GCC diagnostic push
|
|
||||||
#pragma GCC diagnostic ignored "-Wstringop-truncation"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
strncpy(function_name, ctx->error.function, QMCKL_MAX_FUN_LEN-1);
|
sizeCp = strlen(ctx->error.function);
|
||||||
strncpy(message , ctx->error.message , QMCKL_MAX_MSG_LEN-1);
|
sizeCp = sizeCp > QMCKL_MAX_FUN_LEN ? QMCKL_MAX_FUN_LEN : sizeCp;
|
||||||
|
memcpy(function_name, ctx->error.function, sizeCp);
|
||||||
|
|
||||||
#ifdef __GNUC__
|
sizeCp = strlen(ctx->error.message);
|
||||||
#pragma GCC diagnostic pop
|
sizeCp = sizeCp > QMCKL_MAX_MSG_LEN ? QMCKL_MAX_MSG_LEN : sizeCp;
|
||||||
#endif
|
memcpy(message, ctx->error.message, sizeCp);
|
||||||
|
|
||||||
(*exit_code) = ctx->error.exit_code;
|
(*exit_code) = ctx->error.exit_code;
|
||||||
}
|
}
|
||||||
|
@ -993,7 +993,7 @@ function qmckl_compute_forces_jastrow_en_g_doc( &
|
|||||||
integer*8 :: i, a, k, nw, ii, m,l
|
integer*8 :: i, a, k, nw, ii, m,l
|
||||||
double precision :: x, x1, kf
|
double precision :: x, x1, kf
|
||||||
double precision :: denom, invdenom, invdenom2, f, f2, expk, invdist
|
double precision :: denom, invdenom, invdenom2, f, f2, expk, invdist
|
||||||
double precision :: dx(3)
|
double precision :: dx(4)
|
||||||
|
|
||||||
info = QMCKL_SUCCESS
|
info = QMCKL_SUCCESS
|
||||||
|
|
||||||
@ -1409,7 +1409,7 @@ function qmckl_compute_forces_jastrow_en_l_doc( &
|
|||||||
integer*8 :: i, a, k, nw, ii, m,l
|
integer*8 :: i, a, k, nw, ii, m,l
|
||||||
double precision :: x, x1, kf
|
double precision :: x, x1, kf
|
||||||
double precision :: denom, invdenom, invdenom2, f, f2, expk, invdist
|
double precision :: denom, invdenom, invdenom2, f, f2, expk, invdist
|
||||||
double precision :: dx(3)
|
double precision :: dx(4)
|
||||||
|
|
||||||
info = QMCKL_SUCCESS
|
info = QMCKL_SUCCESS
|
||||||
|
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -7,11 +7,12 @@ optimized libraries to fine-tune the memory allocation.
|
|||||||
|
|
||||||
Example of usage:
|
Example of usage:
|
||||||
#+begin_src c
|
#+begin_src c
|
||||||
#include "qmckl_memory.h"
|
|
||||||
|
|
||||||
info_struct mem_info = qmckl_memory_info_struct_zero;
|
info_struct mem_info = qmckl_memory_info_struct_zero;
|
||||||
mem_info.size = size * sizeof(double);
|
mem_info.size = size * sizeof(double);
|
||||||
data = (double*) qmckl_malloc (context, mem_info);
|
data = (double*) qmckl_malloc (context, mem_info);
|
||||||
|
if (data == NULL) {
|
||||||
|
return QMCKL_ALLOCATION_FAILED;
|
||||||
|
}
|
||||||
// ...
|
// ...
|
||||||
qmckl_free(data);
|
qmckl_free(data);
|
||||||
#+end_src
|
#+end_src
|
||||||
|
@ -2,6 +2,9 @@
|
|||||||
|
|
||||||
# -*- org-image-actual-width: 300 -*-
|
# -*- org-image-actual-width: 300 -*-
|
||||||
|
|
||||||
|
To modify the data of the tests, don't modify only this file. You will
|
||||||
|
need to modify the files that are in the =include/= directory.
|
||||||
|
|
||||||
* CHBrClF
|
* CHBrClF
|
||||||
|
|
||||||
This test is the all-electron Hartree-Fock wave function of CHClBr,
|
This test is the all-electron Hartree-Fock wave function of CHClBr,
|
||||||
@ -967,7 +970,8 @@ double chbrclf_basis_prim_factor[chbrclf_prim_num] =
|
|||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
** Molecular orbitals
|
** Molecular orbitals
|
||||||
The file is too large to be included in org-mode.
|
|
||||||
|
The file is too large to be included in org-mode.
|
||||||
|
|
||||||
#+begin_src c
|
#+begin_src c
|
||||||
#define chbrclf_mo_num ((int64_t) 224)
|
#define chbrclf_mo_num ((int64_t) 224)
|
||||||
@ -975,7 +979,6 @@ double chbrclf_mo_coef[chbrclf_mo_num*chbrclf_ao_num] =
|
|||||||
{
|
{
|
||||||
... see include/chbrclf.h
|
... see include/chbrclf.h
|
||||||
}
|
}
|
||||||
#+end_src
|
|
||||||
|
|
||||||
** Electron coordinates
|
** Electron coordinates
|
||||||
|
|
||||||
@ -1153,7 +1156,7 @@ N2
|
|||||||
|
|
||||||
Nuclear coordinates are stored in atomic units in transposed format.
|
Nuclear coordinates are stored in atomic units in transposed format.
|
||||||
|
|
||||||
#+begin_src c :tangle (concat include "n2.h")
|
#+begin_src c
|
||||||
#define n2_nucl_num ((int64_t) 2)
|
#define n2_nucl_num ((int64_t) 2)
|
||||||
|
|
||||||
double n2_charge[n2_nucl_num] = { 5., 5.};
|
double n2_charge[n2_nucl_num] = { 5., 5.};
|
||||||
@ -1169,7 +1172,7 @@ double n2_nucl_coord[3][n2_nucl_num] =
|
|||||||
|
|
||||||
Electron coordinates are stored in atomic units in normal format.
|
Electron coordinates are stored in atomic units in normal format.
|
||||||
|
|
||||||
#+begin_src c :tangle (concat include "n2.h")
|
#+begin_src c
|
||||||
#define n2_elec_up_num ((int64_t) 5)
|
#define n2_elec_up_num ((int64_t) 5)
|
||||||
#define n2_elec_dn_num ((int64_t) 5)
|
#define n2_elec_dn_num ((int64_t) 5)
|
||||||
#define n2_elec_num ((int64_t) 10)
|
#define n2_elec_num ((int64_t) 10)
|
||||||
@ -1194,7 +1197,7 @@ double n2_elec_coord[n2_walk_num][n2_elec_num][3] = { {
|
|||||||
This test is mainly for the Jastrow factor and was supplied by
|
This test is mainly for the Jastrow factor and was supplied by
|
||||||
Ramon Panades Baruetta.
|
Ramon Panades Baruetta.
|
||||||
|
|
||||||
#+begin_src c :tangle (concat include "n2.h")
|
#+begin_src c
|
||||||
/* Jastrow related */
|
/* Jastrow related */
|
||||||
|
|
||||||
#define n2_type_nucl_num ((int64_t) 1)
|
#define n2_type_nucl_num ((int64_t) 1)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user