1
0
mirror of https://github.com/TREX-CoE/qmckl.git synced 2024-06-30 00:44:52 +02:00

Fixed provider for potential energy. #41

This commit is contained in:
v1j4y 2021-10-13 18:02:28 +02:00
parent dcc5f09724
commit 7bf52f0e01

View File

@ -775,7 +775,7 @@ qmckl_exit_code qmckl_get_potential_energy(qmckl_context context, double * const
assert (ctx != NULL); assert (ctx != NULL);
size_t sze = ctx->electron.walk_num * sizeof(double); size_t sze = ctx->electron.walk_num * sizeof(double);
memcpy(potential_energy, ctx->local_energy.e_kin, sze); memcpy(potential_energy, ctx->local_energy.e_pot, sze);
return QMCKL_SUCCESS; return QMCKL_SUCCESS;
} }
@ -833,22 +833,22 @@ qmckl_exit_code qmckl_provide_potential_energy(qmckl_context context) {
} }
/* Compute if necessary */ /* Compute if necessary */
if (ctx->electron.coord_new_date > ctx->local_energy.e_kin_date) { if (ctx->electron.coord_new_date > ctx->local_energy.e_pot_date) {
/* Allocate array */ /* Allocate array */
if (ctx->local_energy.e_kin == NULL) { if (ctx->local_energy.e_pot == NULL) {
qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero; qmckl_memory_info_struct mem_info = qmckl_memory_info_struct_zero;
mem_info.size = ctx->electron.walk_num * sizeof(double); mem_info.size = ctx->electron.walk_num * sizeof(double);
double* e_kin = (double*) qmckl_malloc(context, mem_info); double* e_pot = (double*) qmckl_malloc(context, mem_info);
if (e_kin == NULL) { if (e_pot == NULL) {
return qmckl_failwith( context, return qmckl_failwith( context,
QMCKL_ALLOCATION_FAILED, QMCKL_ALLOCATION_FAILED,
"qmckl_e_kin", "qmckl_e_pot",
NULL); NULL);
} }
ctx->local_energy.e_kin = e_kin; ctx->local_energy.e_pot = e_pot;
} }
qmckl_exit_code rc; qmckl_exit_code rc;
@ -860,7 +860,7 @@ qmckl_exit_code qmckl_provide_potential_energy(qmckl_context context) {
ctx->electron.ee_pot, ctx->electron.ee_pot,
ctx->nucleus.en_pot, ctx->nucleus.en_pot,
ctx->nucleus.repulsion, ctx->nucleus.repulsion,
ctx->local_energy.e_kin); ctx->local_energy.e_pot);
} else { } else {
return qmckl_failwith( context, return qmckl_failwith( context,
QMCKL_FAILURE, QMCKL_FAILURE,
@ -871,7 +871,7 @@ qmckl_exit_code qmckl_provide_potential_energy(qmckl_context context) {
return rc; return rc;
} }
ctx->local_energy.e_kin_date = ctx->date; ctx->local_energy.e_pot_date = ctx->date;
} }
return QMCKL_SUCCESS; return QMCKL_SUCCESS;
@ -1128,7 +1128,6 @@ qmckl_exit_code qmckl_provide_local_energy(qmckl_context context) {
ctx->local_energy.e_local = local_energy; ctx->local_energy.e_local = local_energy;
} }
qmckl_exit_code rc;
if (ctx->det.type == 'G') { if (ctx->det.type == 'G') {
rc = qmckl_compute_local_energy(context, rc = qmckl_compute_local_energy(context,
ctx->det.walk_num, ctx->det.walk_num,