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