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
272badfa7f
small tweaks
2021-09-15 20:14:06 -04:00
7196a295a6
small tweaks from static code analysis
2021-09-15 19:50:52 -04:00
70b09a809d
Bugfix from Trung for crashes in pppm/gpu without local atoms
2021-09-15 17:23:12 -04:00
a21095fded
More cleaning up
2021-09-13 13:47:15 -05:00
bc665999d5
Fixed bugs with the umutual2b kernel, now the field and fieldp seems correct
2021-09-13 01:11:03 -05:00
edd76733a1
Working on umutual2b, tdipdip are correct, but incorrect results for field and fieldp
2021-09-12 00:51:48 -05:00
94d6f7219c
Attempted to reduce the memory footprint of the per-atom arrays
2021-09-11 11:22:17 -05:00
c765861851
Cleaned up and re-arranged the functions to reflect the order of calling in a time step
2021-09-11 01:00:58 -05:00
7f5a82dc54
Switched to the short neighbor list implementation in the pre-10Feb21 version (the recent version enforces tpa = 1 for short nbor)
2021-09-11 00:34:43 -05:00
4ebe5833d3
Working on short nbor list for the amoeba kernels (based on what has been done with tersoff and ellipsod, nbor dev_packed needs to be allocated properly)
2021-09-10 16:51:16 -05:00
a22923aee2
Added the API for the umutual kernel, needs work for storing the tdiptdip array
2021-09-09 17:22:09 -05:00
b654f293ee
Working on the umutual2b kernel, the tdipdip values are computed on the fly for now, maybe a seprate neigh list as in the CPU version will be more efficient
2021-09-09 16:52:27 -05:00
efe0bf593f
Adding the umutual2b kernel, need to create another array for tdipdip on the GPU
2021-09-09 15:19:43 -05:00