Modularise Ewald energy and force routines
This MR refactors ion-ion electrostatic energy and force routines in ion_interaction.F90
into more modular units, laying the ground work for migration of ion-ion interactions into an "interaction" class for use with the multi-system framework.
Routine Refactoring:
-
Total level ion_interaction_calculate
refactored such that jellium interaction implementations are in their own routines -
ewald_3d_periodic
short range term moved into routine -
ewald_3d_periodic
self_interaction moved into routine -
ewald_long_1d
, moved into a place holder, and should issue a warning. -
Write ewald_1d
andewald_2d
pseudo-potential correction dummy routines, issuing warnings -
ewald_3d
G=0 pseudo-potential correction moved into routine -
For fun: Refactor ewald_3d_periodic
short-range energy contribution to remove if-statement cycling self-interaction This required me changing the loops to go over the upper triangle. Also added OMP for the loop over cells. -
Clean up commit history before merging