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_calculaterefactored such that jellium interaction implementations are in their own routines -
ewald_3d_periodicshort range term moved into routine -
ewald_3d_periodicself_interaction moved into routine -
ewald_long_1d, moved into a place holder, and should issue a warning. -
Write ewald_1dandewald_2dpseudo-potential correction dummy routines, issuing warnings -
ewald_3dG=0 pseudo-potential correction moved into routine -
For fun: Refactor ewald_3d_periodicshort-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