Commit Graph

569 Commits

Author SHA1 Message Date
5a6426bf96 Only transfer data arrays that are needed in each kernel 2021-10-02 00:56:15 -05:00
f4d3d3a2b5 Gradually cleaned up and removed redundancy in amoeba and hippo 2021-10-02 00:09:53 -05:00
f126f785a4 Removed duplicates in the amoeba kernels 2021-10-01 10:19:17 -05:00
3328ac0df2 Attempted to remove some redundancy in data transfers in the amoeba kernels; keeping HIPPO independent of AMOEBA for now 2021-10-01 09:58:21 -05:00
ad9d45639e Fixed bugs with damprep where ucl_powr in mixed precision failed with a negative single-reprecision base 2021-09-29 12:32:08 -05:00
01381b7f54 Fixed bugs in the repulsion kernel, now working correctly with the double precision mode 2021-09-29 11:57:25 -05:00
4be44c386f Added necessary arguments to the hippo repulsion kernel 2021-09-29 09:40:33 -05:00
17edd797a7 Adding API for the repulsion term to hippo/gpu 2021-09-28 23:42:04 -05:00
b95508125b Adding the repulsion kernel for hippo 2021-09-28 23:24:34 -05:00
6286a119b3 Removed precompute() in hippo 2021-09-28 23:12:07 -05:00
98a2b67292 Changed to the API of BaseAmoeba to reduce duplicates in hippo 2021-09-28 17:39:55 -05:00
b874feb127 Removed trailing spaces 2021-09-28 17:28:33 -05:00
bf88ab77fa Cleaned up unused variables in kernel (to be continued) 2021-09-28 15:06:30 -05:00
e80eea56ba Added udirect2b and umutual2b for hippo 2021-09-28 14:59:39 -05:00
8d54547bc0 Commented out debugging commands in the hippo kernels, added (numtyp) to numerics in hippo_extra, replaced fabs with explicit func 2021-09-28 00:50:33 -05:00
d27836952a Fixed a bug in neighbor.cpp to make special_flag consistent between amoeba and hippo (to be 2 instead of 0), that caused missing neighbors with hippo 2021-09-27 16:12:49 -05:00
2efd841a7e Trying to find the difference in the neighbor list build in hippo vs amoeba 2021-09-27 11:35:35 -05:00
7437c98628 Fixed bugs in the polar real kernel in hippo, getting closer.. 2021-09-26 09:11:09 -05:00
5193dcf8c5 Working on the polar real-space term of hippo 2021-09-26 00:56:29 -05:00
edbed9c9c9 Fixed bugs in HippoT::compute_dispersion_real and compute_multipole_real to ensure that answers only get copied back from device in the last kernel activated. 2021-09-26 00:13:40 -05:00
9da8c932ab make check more obvious 2021-09-25 21:33:10 -04:00
f8bc091cb8 Kept working on the multipole real-space term of hippo 2021-09-25 13:17:06 -05:00
78ef0d631f Working on the multipole real-space term of hippo 2021-09-25 12:25:34 -05:00
530912a930 detect double precision support according to OpenCL specs (1.2 and later) 2021-09-25 07:20:52 -04:00
e77df80ce2 Working hippo multipole real-space term, added helper functions in a separate file 2021-09-24 16:44:43 -05:00
42dca75225 add check and suitable error message when fp64 is required but not available 2021-09-24 12:17:58 -04:00
ad8164dfc0 Fixed bugs in the dispersion real-space term for hippo. NOTE: CPU version filter out neighbors with zero special_disp 2021-09-24 00:21:25 -05:00
17ba0d5804 possible workaround for some GPU package neighbor list issue 2021-09-22 21:47:32 -04:00
2428f1f4d5 Updated hippo kernels 2021-09-22 11:44:41 -05:00
bebef18495 Cleaned up and minor changes 2021-09-21 23:46:21 -05:00
d77d5b7f0a Added classes for hippo/gpu, refactored BaseAmoeba and made room for the dispersion real-space term in hippo 2021-09-21 15:40:06 -05:00
a2fd784034 Added the dispersion real space term, which is for HIPPO. 2021-09-21 10:55:38 -05:00
afccf1933f correctly specify the destructor function name. 2021-09-20 23:40:14 -04:00
42034bd1c9 Fixed bugs for undefined tagint and ucl_powr ambiguity in kernels for OpenCL builds 2021-09-20 12:48:29 -05:00
4e88cd158e Fixed bugs with _tep and _fieldp to allow mixed-precision builds, being defensive with acctyp for these variables 2021-09-20 11:38:50 -05:00
0228867d8e Added the dispersion real space kernel and transfer special coeffs to the device 2021-09-19 23:40:43 -05:00
1166845fcf Prepared data structure for the dispersion real-space term 2021-09-18 10:22:22 -05:00
5d801e985f More cleanup 2021-09-17 23:24:23 -05:00
78045d8f76 Cleaned up debugging stuffs and unused variables 2021-09-17 23:13:51 -05:00
cd3efc3fa8 initialize all members 2021-09-17 22:45:26 -04:00
f5713a52b3 Added another kernel to accumulate forces, energies and virial on the device (similar to the tersoff kernels) as multiple kernels all added to those quantities; also only copy answers back to the host in the last kernel in a time step; cleaned up debugging messages 2021-09-17 16:39:57 -05:00
e6fb0e3bd8 small tweaks 2021-09-17 16:51:37 -04:00
2e6df83b9b Fixed bugs in the multipole real-space part on the GPU; separately multipole real and polar real work correctly (along with udirect2b and umutual2b), but
together they are conflicting due to the use of ans to copy forces back from device to host. The other 2 kernels (induce part) do not touch forces and energies.
2021-09-17 15:24:36 -05:00
d926705950 Short neighbor list for multipole real-space should be built with off2_mpole 2021-09-17 01:32:00 -05:00
003bebd31e Working on the multipole real-space term, not ready yet 2021-09-17 01:19:33 -05:00
c0b967054e Fixed bugs with zero local atoms (similar to what has been done to PPPM interp) 2021-09-16 17:27:44 -05:00
98c1a0178c Refactored the API so that different off2 values are used for different kernels 2021-09-16 17:14:36 -05:00
5411075cc6 modernize 2021-09-16 07:44:27 -04:00
00e396c921 move misplaced #endif and make code more readable 2021-09-16 07:33:24 -04:00
353b3a2bb3 reformat for increased readability 2021-09-16 07:25:04 -04:00