-
Notifications
You must be signed in to change notification settings - Fork 217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Refactor ionization: remove from Particles
class member functions
#874
Refactor ionization: remove from Particles
class member functions
#874
Conversation
please update the license years 😄 |
389501a
to
46282ef
Compare
done ^^; |
@ax3l @psychocoderHPC Would you kindly (quote ... unquote) have a look? 😄 |
fieldE->getDeviceDataBox( ), | ||
fieldB->getDeviceDataBox( ), | ||
FrameIonizer( ) | ||
); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What if my ADK implementation would need the kernel call to look like this:
/* random number generator for Monte Carlo */
typedef particles::ionization::RandomNrForMonteCarlo<T_SrcSpecies> T_RandomGen;
T_RandomGen RandomGen(currentStep);
/* kernel call : instead of name<<<blocks, threads>>> (args, ...)
* "blocks" will be calculated from "this->cellDescription" and "CORE + BORDER"
* "threads" is calculated from the previously defined vector "block" */
__picKernelArea( particles::ionization::kernelIonizeParticles<BlockArea>, *cellDescription, CORE + BORDER )
(block)
( src.getDeviceParticlesBox( ),
electrons->getDeviceParticlesBox( ),
fieldE->getDeviceDataBox( ),
fieldB->getDeviceDataBox( ),
FrameIonizer( ),
RandomGen
);
?
Do you think I should restructure the implementation more or is there an elegant solution to handle that the kernel sometimes gets a random generator as an argument and sometimes not?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes please restructure, the kernel kernelIonizeParticles
should nothing know about RandomGen.
46282ef
to
5fb372b
Compare
* \tparam T_ParticleStorage \see picongpu/src/libPMacc/include/math/MapTuple.hpp | ||
*/ | ||
template<typename T_SrcSpecies,typename T_ParticleStorage> | ||
HINLINE void operator()(T_SrcSpecies& src, T_ParticleStorage& pst) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This method is equal for all Ionizer functors (methods). Please move it out of BSI, it is the same for ADK.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please not mix host functors and device functor. Every functor had only one task.
Currently BSI had the expression how the functor on device is started (kernel call) and the device implementation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
But since the kernel cannot know about a random generator, the implementation of FrameIonizer
should. That again means, though, that the implementation is different for BSI and ADK.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think both BSI and ADK kernel call are the same. You can also skip the fields in the kernel call, this is a dependency of the solver. Not every solver needs B and E fields.
The pure kernel call can look like this.
__picKernelArea( particles::ionization::kernelIonizeParticles<BlockArea>, *cellDescription, CORE + BORDER )
(block)
( src.getDeviceParticlesBox( ),
electrons->getDeviceParticlesBox( ),
AnyIonizer( )
);
You can find an example here The functors itself can also have a RNG or field inside but the pure kernel nothing knows about this.
Functor with RNG
Functor with field inside
5fb372b
to
b1336c3
Compare
@psychocoderHPC, @ax3l |
(block) | ||
( srcSpeciesPtr->getDeviceParticlesBox( ), | ||
electronsPtr->getDeviceParticlesBox( ), | ||
SelectIonizer() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
As suggestion: add currentStep
to the constructor. It can be useful to initialize a random number generator
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
true, already implemented in a different branch, so it should be added here, too
public: | ||
|
||
None_Impl(const uint32_t currentStep) | ||
{ /* ... */ } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should
{
}
Ionization is supposed to be executed on the different particle species, not from within.
The ionization kernel is now called from the functor `CallIonization` from the file `ParticlesFunctors.hpp`. Also the final specialization of the ionization model happens there in the `GetIonizer` call.
The GetIonizer trait has been refactored to also - hidden before the user - do the full specialization of the ionization model with the source particle species.
In order to hide field caching, possible random initialization (later) and the specifics of how electrons are created from the kernel to make it more generic, the ionization model functors have been refactored.
The current simulation time step will be important for a host-side random generator seed. Therefore it will be passed to the constructor of the ionization model. Also some minor inconsistencies in comments have been fixed.
|
||
}// namespace picongpu | ||
/* This specifies the source species as the second template parameter of the ionization model */ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@n01r Could you mention that this solves your chicken-and-egg problem here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍 done
@n01r Thank you for the small fixes. |
I ran a small test setup of two simulations with the same paramSets. |
looks quite good, well done. @n01r for (future) comparisons, just dump a h5 file and access the fields directly via h5py. the png preview is not a reliable source. |
@@ -155,29 +155,66 @@ struct CallUpdate | |||
} | |||
}; | |||
|
|||
/* Tests if species can be ionized and calls the function to do that */ | |||
/** \struct CallIonization |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
just use the doxygen syntax we usually use:
/** Headline
*
* longer description
*
* \tparam T_SpeciesName [... description ...]
*/
Writing the name of the class as the headline is not ideal, it does not add documentation value. or did doxygen noch realize this lines are for the following class?
in that case it's
/** \struct ClassName
*
* \brief longer description
*
* \tparam T_SpeciesName [... description ...]
*/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah it does realize that the documentation is for the following class
Actually it is:
/** \struct ClassName
*
* \brief shorter description (one-liner maybe)
*
* longer description ... blabla
*
* \tparam T_SpeciesName [... description ...]
*/
I just skipped the longer one
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, you only need those if not put directly over the classes (which would be messy).
the only thing one needs of those is actually \file
for a general file description.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so we should maybe add file descriptions in a separate pull request?
ok I have some small annotations, besides these it looks great to me! |
@PrometheusPi If you are done with your part of the review I can take it over and overview the final changes. |
As suggested by @ax3l
b62a2c0
to
b13488e
Compare
@ax3l |
great, very well done! ✨ |
…articleMembers Refactor ionization: remove from `Particles` class member functions
Nice! |
/* "particle box" : container/iterator where the particles live in | ||
* and where one can get the frame in a super cell from */ | ||
* and where one can get the frame in a super cell from | ||
*/ | ||
typedef typename ParBoxElectrons::FrameType ELECTRONFRAME; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This typedef is not following our naming conventions and are unused.
Please remove both lines
ab0b8a460 Merge pull request ComputationalRadiationPhysics#905 from psychocoderHPC/fix-tbb-win-download d7471b938 Merge pull request ComputationalRadiationPhysics#903 from psychocoderHPC/topic-removeBetaStatus 13c06f966 Fix TBB installation ea6b56b0f remove beta status 43f26f135 Merge pull request ComputationalRadiationPhysics#892 from j-stephan/structure-fix c54a6fdec Merge pull request ComputationalRadiationPhysics#894 from psychocoderHPC/topic-createQueueByConcept 059e8956c Rename STL to StdLib and Size to Idx 32cce1068 examples: remove serial accesor precompiler guard 7122008a2 implement queue properties fbd1db4e8 Merge pull request ComputationalRadiationPhysics#897 from psychocoderHPC/topic-hipPinMemory 08e8003ef HIP: allow memory pinning 8c1021801 Merge pull request ComputationalRadiationPhysics#896 from psychocoderHPC/fix-memoryAlignement 2ae48431e fix memory alignment 9f207f030 Merge pull request ComputationalRadiationPhysics#893 from BenjaminW3/text-cmake-3_16 1ec33da0c Add support for CMake 3.16 a5e03090f Update library structure 15f010448 Merge remote-tracking branch 'upstream/develop' into develop 586ced5ac Merge pull request ComputationalRadiationPhysics#890 from BenjaminW3/topic-simplify-examples 45f738b49 Merge pull request ComputationalRadiationPhysics#886 from BenjaminW3/topic-cuda-10_2 5fb03eec2 Simplify examples CMake 3f5acf37e Add support for CUDA 10.2 3836774a4 Merge pull request ComputationalRadiationPhysics#889 from psychocoderHPC/topic-removeDepricatedArchitecture b6ebab411 remove deprecated NVIDIA architectures 9136998bd Merge pull request ComputationalRadiationPhysics#887 from BenjaminW3/topic-catch2-update-part2 ac27a2080 Use TEMPLATE_LIST_TEST_CASE for remaining unit tests 47e515e8d Use TEMPLATE_LIST_TEST_CASE for integration tests 1b66367c2 Merge pull request ComputationalRadiationPhysics#882 from BenjaminW3/topic-update-catch2 219d09de9 Merge pull request ComputationalRadiationPhysics#884 from psychocoderHPC/fix-sharedCounterWarning cd463204f Merge pull request ComputationalRadiationPhysics#879 from psychocoderHPC/fix-hipRandWarning f1ad7ff65 Merge branch 'develop' into topic-update-catch2 a75074c99 fix warning for `std::__shared_counter` 9fc33fd3a fix warning: implicit deleted constructor 066a2e9c3 Merge pull request ComputationalRadiationPhysics#874 from psychocoderHPC/topic-hip-clang-support c88984e7d Merge pull request ComputationalRadiationPhysics#881 from BenjaminW3/topic-fix_block_HIP_queue 1b80cd71b Fix hipMemCpy3D -> hipMemcpy3DAsync 85b107726 Fix QueueHipRtBlocking not being blocking 8575f863b Update catch2 to 2.11.0 to use the new TEMPLATE_LIST_TEST_CASE feature 91a8049bd HIP-clang support a21ac3e5d Merge pull request ComputationalRadiationPhysics#876 from BenjaminW3/topic-concept-for-wait f33a7a56d Merge pull request ComputationalRadiationPhysics#877 from BenjaminW3/topic-fix-QueueCudaRtBlocking 76c69f4d5 Merge pull request ComputationalRadiationPhysics#878 from BenjaminW3/topic-alway-show-cuda-error-numbers a5e1dbc18 Always add nvcc warning/error numbers to output ee578ead0 Make memcpy and memset operations for QueueCudaRtBlocking blocking async 4b093bc86 Add concept for CurrentThreadWaitFor 92a647af2 Merge pull request ComputationalRadiationPhysics#872 from BenjaminW3/topic-test-concepts 88c033dd0 Default implementation type is the class itself when there is no Implements inheritance 0bcf795e5 Merge branch 'develop' of github.com:j-stephan/alpaka into develop ee9dbcd0b Merge pull request ComputationalRadiationPhysics#870 from BenjaminW3/topic-simplify-AtomicHierarchy f8fbc5916 Merge pull request ComputationalRadiationPhysics#871 from BenjaminW3/topic-do-not-specialize_for_hared_ptr 9c597f905 Add tests for Concepts f443e6a5d Do not specialze traits for shared_ptr<Xxx> but only for Xxx 7149f0d6a Simplify AtomicHierarchy 389801216 Merge pull request ComputationalRadiationPhysics#869 from psychocoderHPC/fix-hipCompile 0bf29127b Merge pull request ComputationalRadiationPhysics#868 from BenjaminW3/topic-replace-base-typedefs-with-inherited-tag d42d27866 fix hip compile 5b5c2f380 Replace XxxBase typedefs with inherited concept tags 9371191e5 Merge pull request ComputationalRadiationPhysics#845 from psychocoderHPC/fix-kernelParameterConstness 5c5a5ffd7 Merge pull request ComputationalRadiationPhysics#867 from BenjaminW3/topic-fix-readme 7cae186b2 Merge pull request #1 from sbastrakov/topic-kernelArgumentForwardingTest 0f33390ee Add unit tests for template argument deduction in kernels 2f3048256 fix kernel parameter constness bfaba6d86 Fix Readme d5e59590f Merge pull request ComputationalRadiationPhysics#862 from jkrude/math/abs-trait-fix a9abefc2b Resolved CI-Errors missing Type 8fc692a8b Merge pull request ComputationalRadiationPhysics#861 from BenjaminW3/topic-clang-9 79fd778e9 Update include/alpaka/math/abs/AbsCudaBuiltIn.hpp 684fe2923 Add support for clang-9.0.0 41e1f3bd7 Merge pull request ComputationalRadiationPhysics#863 from BenjaminW3/topic-mac-update 9f0fd066e Fix MacOS builds and add support for newer versions 2ce0b99a7 Added trait specialisation for double. f3d363bc5 Merge pull request ComputationalRadiationPhysics#848 from jkrude/KernelExecutionFixture-missing-pragma bbac90b28 Added missing "#pragma once" 6a8c632ae Merge remote-tracking branch 'upstream/develop' into develop 82d3294e0 Merge pull request ComputationalRadiationPhysics#846 from BenjaminW3/topic-cuda_attributes d68debe99 Merge pull request ComputationalRadiationPhysics#844 from psychocoderHPC/fix-nonCudaExeptionsCanNotBeHandled f61d20143 Use cudaDeviceGetAttribute instead of slow cudaGetDeviceProperties 4a66dfbaa fix: cuda exeptions d395aa340 Merge pull request ComputationalRadiationPhysics#841 from tdd11235813/pr-dlr-patch 29e9e718f Fixes GCC/Address Sanitizer false-positive issue. ed8fe79cd Merge pull request ComputationalRadiationPhysics#839 from BenjaminW3/topic-cudaErrorIllegalInstruction bd5a5b293 Disable nvstd::function test due to cudaErrorIllegalInstruction crashes d7c807c73 Merge pull request ComputationalRadiationPhysics#837 from jkrude/overload-math-functions 6f7357e99 changed typo in PowHipBuiltIn 929bca049 Merge pull request ComputationalRadiationPhysics#835 from jkrude/axpy-rnd bb98137d3 Merge remote-tracking branch 'upstream/develop' into develop 974d805b0 fixed RoundHipBuildIn and absHipBuiltIn bugs 8a60f36aa fixed SinCudaBuiltIn bug 808fe1cc3 fixed and added doxygen-comments 84298239f specified float template a56e6cc05 Update test/integ/axpy/src/axpy.cpp 667c5b7b6 added seed to random number generation 35733682f Merge pull request ComputationalRadiationPhysics#830 from jkrude/warning-fix 5d82440b7 Merge pull request ComputationalRadiationPhysics#831 from jkrude/bug-fix d7ea75d2a corrected max -> min d6c4e9fc8 integrated requested changes cd75e6f3a /math/fmod && /math/remainder incomplete type bug-fix 881766e89 muted cuda-warning 7217755fb Merge pull request ComputationalRadiationPhysics#834 from BenjaminW3/topic-CUDA-MSVC 04789982b Workaround hanging CUDA windows installer removal b2b2acf28 Merge pull request ComputationalRadiationPhysics#829 from DerWaldschrat/develop df9f0329e Merge pull request ComputationalRadiationPhysics#832 from tdd11235813/pr-rocm270 eaea8d155 Merge remote-tracking branch 'upstream/develop' into develop 62e5f9dd6 Updates travis/HIP to use rocm2.7.0. ef722be69 Fix ComputationalRadiationPhysics#750 by adding a dummy bBusyWaiting parameter to the EventCpu constructor. 5d942aa02 Merge pull request ComputationalRadiationPhysics#819 from BenjaminW3/topic-cmake-3-15 eb2875052 Use CMake 3.15 in CI fe28f1b20 Merge pull request ComputationalRadiationPhysics#822 from psychocoderHPC/topic-supportExternQueues ad4d3cd9e github annotations 5b931568d Merge remote-tracking branch 'upstream/develop' into develop 1b12af0c7 Merge pull request ComputationalRadiationPhysics#825 from BenjaminW3/topic-CI-versions 41ce889fe Add support for boost-1.71.0 ee43ce45b Add gcc 9 support to readme b0a40a118 Merge pull request ComputationalRadiationPhysics#824 from BenjaminW3/topic-#823 fc471e161 Enable types with alignemnt higher than defaultAlignment for static shared memory b4ffe419d Merge pull request ComputationalRadiationPhysics#821 from BenjaminW3/feature/benjamino/topic-clean-cuda-math-includes ca9d658e8 remove queue shared pointer specializations 61b1b0b80 add test case for a user defined queue 17554f54d support for queues defined outside of alpaka a903bfd6c Add missing header files to IDE projects 1567c4649 Clean up includes fce472be5 Remove unnecessary inconsistent use of ALPAKA_NO_HOST_ACC_WARNING for AcosCudaBuiltIn d9503ef20 Merge pull request ComputationalRadiationPhysics#814 from BenjaminW3/topic-reduce-test-includes b40a68cbc Suppress MSVC CUDA_ONLY_MODE warning 924286069 Merge remote-tracking branch 'upstream/develop' into develop 72b53ba3c Merge pull request ComputationalRadiationPhysics#818 from ax3l/fix-mandelbrotConst 3d963cd81 Merge pull request ComputationalRadiationPhysics#816 from tdd11235813/pr-hip-race-fix 00853f4af Mandelbrot: const inline member 70526ec53 Merge remote-tracking branch 'upstream/develop' into develop a236d4623 HIP/HCC non-blocking queue destructor waits for tasks. 925b03fc0 Reduces HIP wait-workaround sleep-timer from 100ms to 10ms e89a0be54 Fixes race-condition HIP/NVCC queue (unneeded workaround removed) 9c8b1760b Merge pull request ComputationalRadiationPhysics#813 from BenjaminW3/topic-gcc-9 b72ebcd1b Add gcc-9 to CI testing e2b43279a Clean up the unit test includes 6f36ae08e Merge remote-tracking branch 'upstream/develop' into develop 71a7124e7 Merge branch 'develop' of github.com:j-stephan/alpaka into develop b0ca1fc8c Move definition of BOOST_COMP_CLANG_CUDA to BoostPredef.hpp 3779102a4 Merge pull request ComputationalRadiationPhysics#812 from jkelling/gcc9.1noexcept 123530422 Add noexcept to some ctors b05db8d0b Merge remote-tracking branch 'upstream/develop' into develop c64add43b Merge pull request ComputationalRadiationPhysics#809 from ax3l/topic-defTplDepth 4c30ca85d Template Depth: C++11 Default (1024) 58ea948c5 Merge pull request ComputationalRadiationPhysics#808 from tdd11235813/pr-logofix 653fb5f13 Fixes alpaka logo (removes white color in ear). fd301ce74 Merge pull request ComputationalRadiationPhysics#807 from BenjaminW3/topic-std-function-kernel e13547b15 Add unit test for nvstd::function as kernel 5b5676825 Merge pull request ComputationalRadiationPhysics#806 from BenjaminW3/topc_nvcc_flags_compile f60ad8d5c Add unit tests for std::function and std::bind kernels and remove from examples 0f408376a Merge pull request ComputationalRadiationPhysics#803 from tdd11235813/pr-atomics-accs 91d9e0d18 Fix EXPT_EXTENDED_LAMBDA and EXPT_RELAXED_CONSTEXPR usage 1483def07 Merge remote-tracking branch 'upstream/develop' into develop 722eff132 Suppresses a strict-overflow warning for gcc7.4.0. e2523a075 No more disables atomics' tests in the CI. 297298a5a Atomics test reduced to 1D size_t accelerator. 01dfba843 Merge pull request ComputationalRadiationPhysics#804 from tdd11235813/pr-hiprand-fix f4c601fb2 Ignoring .vimrc 548dd8bab Fixes hiprand issue in travis CI. 6f43249c2 Merge pull request ComputationalRadiationPhysics#800 from tdd11235813/pr-hip-fixes 8988328a1 queue::detail ***Blocking -> ***BlockingImpl (CUDA, HIP). e8e5ccbbf Adds HIP nvcc9.0+ requirement. Fixes typo (build->built). d80cd6994 Makes enqueue thread-safe for Hip(HCC). abf6c5310 Renames QueueHipRt*Impl -> QueueHipRt*. 786966160 Fixes HIP_PLATFORM and travis issues, rocRAND install into run.sh. acdcb00e9 Re-enables use of numeric limits for HIP(HCC). bdb45186f Adds missing ALPAKA_FN_HOST_ACC attributes. e65ee1fd7 Updates information on required and tested HIP version. a9a5518ff Fixes HIP(HCC) warnings. e2c105bcf Replaces deprecated hipKernelLaunch. 300ae2467 Removes old AMD GPU target to fix HCC issue with time test. 9bdeb8574 Merge pull request ComputationalRadiationPhysics#580 from BenjaminW3/topic-separable-compilation ca3dc6f1f Add option to enable separable compilation for nvcc via ALPAKA_CUDA_NVCC_SEPARABLE_COMPILATION d437c3cee Merge pull request ComputationalRadiationPhysics#799 from BenjaminW3/topic-raise-minimum-CMake-version b647a54b0 Raise minimum supported CMake version 936b59e6c Merge pull request ComputationalRadiationPhysics#797 from psychocoderHPC/fix-blockingEnqueue2 776a66a80 Merge pull request ComputationalRadiationPhysics#798 from psychocoderHPC/fix-travisGobblingWarning aa5494028 fix BlockingQueue multi-thread support ab2c0c75f Merge pull request ComputationalRadiationPhysics#796 from psychocoderHPC/fix-cudaWarning b48df64ec travis: fix gobbling warning 9a944cda8 Merge pull request ComputationalRadiationPhysics#795 from BenjaminW3/topic-CI-version-updates 4c390a8f4 Add clang 8 + nvcc-10.1 support 5f308814f fix cuda warning 5b818aec6 Update CMake 3.14.0 to 3.14.4 4f53b4c05 Remove ESan build option as it has not been used and removed from clang 9.0 fe7b5d88e Update CUDA 10.1 to Update 1 and add clang 8 build ce5d60ea2 Merge pull request ComputationalRadiationPhysics#793 from psychocoderHPC/topic-queueRenaming 493e1c702 update source code comments 7b2fd9152 rename queues 210ef7239 fix cmake for tests c08e0df3e Merge pull request ComputationalRadiationPhysics#792 from psychocoderHPC/fix-cmake 064384863 fix cmake for tests git-subtree-dir: thirdParty/alpaka git-subtree-split: ab0b8a460f398fef7e475892ff5af98f947ce128
fbd1db4e8 Merge pull request ComputationalRadiationPhysics#897 from psychocoderHPC/topic-hipPinMemory 08e8003ef HIP: allow memory pinning 8c1021801 Merge pull request ComputationalRadiationPhysics#896 from psychocoderHPC/fix-memoryAlignement 2ae48431e fix memory alignment 9f207f030 Merge pull request ComputationalRadiationPhysics#893 from BenjaminW3/text-cmake-3_16 1ec33da0c Add support for CMake 3.16 586ced5ac Merge pull request ComputationalRadiationPhysics#890 from BenjaminW3/topic-simplify-examples 45f738b49 Merge pull request ComputationalRadiationPhysics#886 from BenjaminW3/topic-cuda-10_2 5fb03eec2 Simplify examples CMake 3f5acf37e Add support for CUDA 10.2 3836774a4 Merge pull request ComputationalRadiationPhysics#889 from psychocoderHPC/topic-removeDepricatedArchitecture b6ebab411 remove deprecated NVIDIA architectures 9136998bd Merge pull request ComputationalRadiationPhysics#887 from BenjaminW3/topic-catch2-update-part2 ac27a2080 Use TEMPLATE_LIST_TEST_CASE for remaining unit tests 47e515e8d Use TEMPLATE_LIST_TEST_CASE for integration tests 1b66367c2 Merge pull request ComputationalRadiationPhysics#882 from BenjaminW3/topic-update-catch2 219d09de9 Merge pull request ComputationalRadiationPhysics#884 from psychocoderHPC/fix-sharedCounterWarning cd463204f Merge pull request ComputationalRadiationPhysics#879 from psychocoderHPC/fix-hipRandWarning f1ad7ff65 Merge branch 'develop' into topic-update-catch2 a75074c99 fix warning for `std::__shared_counter` 9fc33fd3a fix warning: implicit deleted constructor 066a2e9c3 Merge pull request ComputationalRadiationPhysics#874 from psychocoderHPC/topic-hip-clang-support c88984e7d Merge pull request ComputationalRadiationPhysics#881 from BenjaminW3/topic-fix_block_HIP_queue 1b80cd71b Fix hipMemCpy3D -> hipMemcpy3DAsync 85b107726 Fix QueueHipRtBlocking not being blocking 8575f863b Update catch2 to 2.11.0 to use the new TEMPLATE_LIST_TEST_CASE feature 91a8049bd HIP-clang support a21ac3e5d Merge pull request ComputationalRadiationPhysics#876 from BenjaminW3/topic-concept-for-wait f33a7a56d Merge pull request ComputationalRadiationPhysics#877 from BenjaminW3/topic-fix-QueueCudaRtBlocking 76c69f4d5 Merge pull request ComputationalRadiationPhysics#878 from BenjaminW3/topic-alway-show-cuda-error-numbers a5e1dbc18 Always add nvcc warning/error numbers to output ee578ead0 Make memcpy and memset operations for QueueCudaRtBlocking blocking async 4b093bc86 Add concept for CurrentThreadWaitFor 92a647af2 Merge pull request ComputationalRadiationPhysics#872 from BenjaminW3/topic-test-concepts 88c033dd0 Default implementation type is the class itself when there is no Implements inheritance ee9dbcd0b Merge pull request ComputationalRadiationPhysics#870 from BenjaminW3/topic-simplify-AtomicHierarchy f8fbc5916 Merge pull request ComputationalRadiationPhysics#871 from BenjaminW3/topic-do-not-specialize_for_hared_ptr 9c597f905 Add tests for Concepts f443e6a5d Do not specialze traits for shared_ptr<Xxx> but only for Xxx 7149f0d6a Simplify AtomicHierarchy 389801216 Merge pull request ComputationalRadiationPhysics#869 from psychocoderHPC/fix-hipCompile 0bf29127b Merge pull request ComputationalRadiationPhysics#868 from BenjaminW3/topic-replace-base-typedefs-with-inherited-tag d42d27866 fix hip compile 5b5c2f380 Replace XxxBase typedefs with inherited concept tags 9371191e5 Merge pull request ComputationalRadiationPhysics#845 from psychocoderHPC/fix-kernelParameterConstness 5c5a5ffd7 Merge pull request ComputationalRadiationPhysics#867 from BenjaminW3/topic-fix-readme 7cae186b2 Merge pull request #1 from sbastrakov/topic-kernelArgumentForwardingTest 0f33390ee Add unit tests for template argument deduction in kernels 2f3048256 fix kernel parameter constness bfaba6d86 Fix Readme d5e59590f Merge pull request ComputationalRadiationPhysics#862 from jkrude/math/abs-trait-fix a9abefc2b Resolved CI-Errors missing Type 8fc692a8b Merge pull request ComputationalRadiationPhysics#861 from BenjaminW3/topic-clang-9 79fd778e9 Update include/alpaka/math/abs/AbsCudaBuiltIn.hpp 684fe2923 Add support for clang-9.0.0 41e1f3bd7 Merge pull request ComputationalRadiationPhysics#863 from BenjaminW3/topic-mac-update 9f0fd066e Fix MacOS builds and add support for newer versions 2ce0b99a7 Added trait specialisation for double. f3d363bc5 Merge pull request ComputationalRadiationPhysics#848 from jkrude/KernelExecutionFixture-missing-pragma bbac90b28 Added missing "#pragma once" 82d3294e0 Merge pull request ComputationalRadiationPhysics#846 from BenjaminW3/topic-cuda_attributes d68debe99 Merge pull request ComputationalRadiationPhysics#844 from psychocoderHPC/fix-nonCudaExeptionsCanNotBeHandled f61d20143 Use cudaDeviceGetAttribute instead of slow cudaGetDeviceProperties 4a66dfbaa fix: cuda exeptions d395aa340 Merge pull request ComputationalRadiationPhysics#841 from tdd11235813/pr-dlr-patch 29e9e718f Fixes GCC/Address Sanitizer false-positive issue. ed8fe79cd Merge pull request ComputationalRadiationPhysics#839 from BenjaminW3/topic-cudaErrorIllegalInstruction bd5a5b293 Disable nvstd::function test due to cudaErrorIllegalInstruction crashes d7c807c73 Merge pull request ComputationalRadiationPhysics#837 from jkrude/overload-math-functions 6f7357e99 changed typo in PowHipBuiltIn 929bca049 Merge pull request ComputationalRadiationPhysics#835 from jkrude/axpy-rnd 974d805b0 fixed RoundHipBuildIn and absHipBuiltIn bugs 8a60f36aa fixed SinCudaBuiltIn bug 808fe1cc3 fixed and added doxygen-comments 84298239f specified float template a56e6cc05 Update test/integ/axpy/src/axpy.cpp 667c5b7b6 added seed to random number generation 35733682f Merge pull request ComputationalRadiationPhysics#830 from jkrude/warning-fix 5d82440b7 Merge pull request ComputationalRadiationPhysics#831 from jkrude/bug-fix d7ea75d2a corrected max -> min d6c4e9fc8 integrated requested changes cd75e6f3a /math/fmod && /math/remainder incomplete type bug-fix 881766e89 muted cuda-warning 7217755fb Merge pull request ComputationalRadiationPhysics#834 from BenjaminW3/topic-CUDA-MSVC 04789982b Workaround hanging CUDA windows installer removal b2b2acf28 Merge pull request ComputationalRadiationPhysics#829 from DerWaldschrat/develop df9f0329e Merge pull request ComputationalRadiationPhysics#832 from tdd11235813/pr-rocm270 62e5f9dd6 Updates travis/HIP to use rocm2.7.0. ef722be69 Fix ComputationalRadiationPhysics#750 by adding a dummy bBusyWaiting parameter to the EventCpu constructor. 5d942aa02 Merge pull request ComputationalRadiationPhysics#819 from BenjaminW3/topic-cmake-3-15 eb2875052 Use CMake 3.15 in CI fe28f1b20 Merge pull request ComputationalRadiationPhysics#822 from psychocoderHPC/topic-supportExternQueues ad4d3cd9e github annotations 1b12af0c7 Merge pull request ComputationalRadiationPhysics#825 from BenjaminW3/topic-CI-versions 41ce889fe Add support for boost-1.71.0 ee43ce45b Add gcc 9 support to readme b0a40a118 Merge pull request ComputationalRadiationPhysics#824 from BenjaminW3/topic-#823 fc471e161 Enable types with alignemnt higher than defaultAlignment for static shared memory b4ffe419d Merge pull request ComputationalRadiationPhysics#821 from BenjaminW3/feature/benjamino/topic-clean-cuda-math-includes ca9d658e8 remove queue shared pointer specializations 61b1b0b80 add test case for a user defined queue 17554f54d support for queues defined outside of alpaka a903bfd6c Add missing header files to IDE projects 1567c4649 Clean up includes fce472be5 Remove unnecessary inconsistent use of ALPAKA_NO_HOST_ACC_WARNING for AcosCudaBuiltIn d9503ef20 Merge pull request ComputationalRadiationPhysics#814 from BenjaminW3/topic-reduce-test-includes b40a68cbc Suppress MSVC CUDA_ONLY_MODE warning 72b53ba3c Merge pull request ComputationalRadiationPhysics#818 from ax3l/fix-mandelbrotConst 3d963cd81 Merge pull request ComputationalRadiationPhysics#816 from tdd11235813/pr-hip-race-fix 00853f4af Mandelbrot: const inline member a236d4623 HIP/HCC non-blocking queue destructor waits for tasks. 925b03fc0 Reduces HIP wait-workaround sleep-timer from 100ms to 10ms e89a0be54 Fixes race-condition HIP/NVCC queue (unneeded workaround removed) 9c8b1760b Merge pull request ComputationalRadiationPhysics#813 from BenjaminW3/topic-gcc-9 b72ebcd1b Add gcc-9 to CI testing e2b43279a Clean up the unit test includes b0ca1fc8c Move definition of BOOST_COMP_CLANG_CUDA to BoostPredef.hpp 3779102a4 Merge pull request ComputationalRadiationPhysics#812 from jkelling/gcc9.1noexcept 123530422 Add noexcept to some ctors c64add43b Merge pull request ComputationalRadiationPhysics#809 from ax3l/topic-defTplDepth 4c30ca85d Template Depth: C++11 Default (1024) 58ea948c5 Merge pull request ComputationalRadiationPhysics#808 from tdd11235813/pr-logofix 653fb5f13 Fixes alpaka logo (removes white color in ear). fd301ce74 Merge pull request ComputationalRadiationPhysics#807 from BenjaminW3/topic-std-function-kernel e13547b15 Add unit test for nvstd::function as kernel 5b5676825 Merge pull request ComputationalRadiationPhysics#806 from BenjaminW3/topc_nvcc_flags_compile f60ad8d5c Add unit tests for std::function and std::bind kernels and remove from examples 0f408376a Merge pull request ComputationalRadiationPhysics#803 from tdd11235813/pr-atomics-accs 91d9e0d18 Fix EXPT_EXTENDED_LAMBDA and EXPT_RELAXED_CONSTEXPR usage 722eff132 Suppresses a strict-overflow warning for gcc7.4.0. e2523a075 No more disables atomics' tests in the CI. 297298a5a Atomics test reduced to 1D size_t accelerator. 01dfba843 Merge pull request ComputationalRadiationPhysics#804 from tdd11235813/pr-hiprand-fix 548dd8bab Fixes hiprand issue in travis CI. 6f43249c2 Merge pull request ComputationalRadiationPhysics#800 from tdd11235813/pr-hip-fixes 8988328a1 queue::detail ***Blocking -> ***BlockingImpl (CUDA, HIP). e8e5ccbbf Adds HIP nvcc9.0+ requirement. Fixes typo (build->built). d80cd6994 Makes enqueue thread-safe for Hip(HCC). abf6c5310 Renames QueueHipRt*Impl -> QueueHipRt*. 786966160 Fixes HIP_PLATFORM and travis issues, rocRAND install into run.sh. acdcb00e9 Re-enables use of numeric limits for HIP(HCC). bdb45186f Adds missing ALPAKA_FN_HOST_ACC attributes. e65ee1fd7 Updates information on required and tested HIP version. a9a5518ff Fixes HIP(HCC) warnings. e2c105bcf Replaces deprecated hipKernelLaunch. 300ae2467 Removes old AMD GPU target to fix HCC issue with time test. 9bdeb8574 Merge pull request ComputationalRadiationPhysics#580 from BenjaminW3/topic-separable-compilation ca3dc6f1f Add option to enable separable compilation for nvcc via ALPAKA_CUDA_NVCC_SEPARABLE_COMPILATION d437c3cee Merge pull request ComputationalRadiationPhysics#799 from BenjaminW3/topic-raise-minimum-CMake-version b647a54b0 Raise minimum supported CMake version 936b59e6c Merge pull request ComputationalRadiationPhysics#797 from psychocoderHPC/fix-blockingEnqueue2 776a66a80 Merge pull request ComputationalRadiationPhysics#798 from psychocoderHPC/fix-travisGobblingWarning aa5494028 fix BlockingQueue multi-thread support ab2c0c75f Merge pull request ComputationalRadiationPhysics#796 from psychocoderHPC/fix-cudaWarning b48df64ec travis: fix gobbling warning 9a944cda8 Merge pull request ComputationalRadiationPhysics#795 from BenjaminW3/topic-CI-version-updates 4c390a8f4 Add clang 8 + nvcc-10.1 support 5f308814f fix cuda warning 5b818aec6 Update CMake 3.14.0 to 3.14.4 4f53b4c05 Remove ESan build option as it has not been used and removed from clang 9.0 fe7b5d88e Update CUDA 10.1 to Update 1 and add clang 8 build ce5d60ea2 Merge pull request ComputationalRadiationPhysics#793 from psychocoderHPC/topic-queueRenaming 493e1c702 update source code comments 7b2fd9152 rename queues 210ef7239 fix cmake for tests c08e0df3e Merge pull request ComputationalRadiationPhysics#792 from psychocoderHPC/fix-cmake 064384863 fix cmake for tests git-subtree-dir: thirdParty/alpaka git-subtree-split: fbd1db4e83da3cb7b36a82bc3f1f8b89aa91a613
Formerly ionization was started from a
Particles
class member functionvoid ionize()
. This seems unnatural, though, since ionization should start from an ionization model and be performed on the various particle species.It was thus refactored and now allows for a more variable ionization routine. Different models can call kernels with or without loading random generators, for example.