{"action":"created","comment":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/comments/130312163","pull_request_review_id":53170225,"id":130312163,"diff_hunk":"@@ -19,93 +19,199 @@\n \n #pragma once\n \n-#include <pmacc/types.hpp>\n #include \"picongpu/simulation_defines.hpp\"\n+\n #include <pmacc/nvidia/atomic.hpp>\n #include <pmacc/memory/shared/Allocate.hpp>\n+#include <pmacc/mappings/threads/ForEachIdx.hpp>\n+#include <pmacc/mappings/threads/IdxConfig.hpp>\n+#include <pmacc/algorithms/ForEach.hpp>\n \n-namespace picongpu\n-{\n+#include <boost/mpl/range_c.hpp>\n+#include <boost/mpl/integral_c.hpp>\n \n-using namespace pmacc;\n \n-template<int pos, class BoxedMemory, class Mapping>\n-DINLINE void absorb(BoxedMemory field, uint32_t thickness, float_X absorber_strength, Mapping mapper, const DataSpace<simDim> &direction)\n+namespace picongpu\n+{\n+namespace detail\n {\n-    typedef typename MappingDesc::SuperCellSize SuperCellSize;\n-    const DataSpace<simDim> superCellIdx(mapper.getSuperCellIndex(DataSpace<simDim > (blockIdx)));\n-\n-\n-    const DataSpace<simDim > threadIndex(threadIdx);\n-    const int linearThreadIdx = DataSpaceOperations<simDim>::template map<SuperCellSize > (threadIndex);\n-\n-    DataSpace<simDim> cell(superCellIdx * SuperCellSize::toRT() + threadIndex);\n-    //cells in simulation\n-    const DataSpace<simDim> gCells = mapper.getGridSuperCells() * SuperCellSize::toRT();\n-\n-    PMACC_SMEM( finish, int );\n-\n-\n-    float_X factor = float_X(0.0);\n \n-    do\n+    /** damp each field component at exchange the border\n+     *\n+     * @tparam T_NumWorkers, boost::mpl::integral_c number of workers\n+     * @tparam T_Axis, boost::mpl::integral_c axis of the coordinate system\n+     *                 (0 = x, 1 = y, 2 = z)\n+     */\n+    template<\n+        typename T_NumWorkers,\n+        typename T_Axis\n+    >\n+    struct AbsorbInOneDirection\n     {\n-        cell[pos] = cell[pos] + (MappingDesc::SuperCellSize::toRT()[pos]*(direction[pos]*-1));\n-        if (linearThreadIdx == 0)\n-            finish = 0;\n-        __syncthreads();\n-\n-        if (direction[pos] != 0)\n+        /** absorb one direction\n+         *\n+         * The functor is only performed if `relExchangeDir[ T_Axis::value ] != 0`.\n+         *\n+         * @tparam T_BoxedMemory pmacc::DataBox, type of the field\n+         * @tparam T_Mapping mapper functor type\n+         *\n+         * @param field filed to manipulate\n+         * @param thickness the thickness of the absorber area (in cells)\n+         * @param absorberStrength strength of the absorber\n+         * @param mapper functor to map a block to a supercell\n+         * @param relExchangeDir relative direction for each dimension\n+         *        (-1 = negative; +1 = positive direction; 0 = direction not selected)\n+         */\n+        template<\n+            typename T_BoxedMemory,\n+            typename T_Mapping\n+        >\n+        DINLINE void operator()(\n+            T_BoxedMemory & field,\n+            uint32_t thickness,\n+            float_X absorberStrength,\n+            T_Mapping & mapper,\n+            DataSpace< simDim > const & relExchangeDir\n+        ) const\n         {\n-            if (direction[pos] < 0)\n-            {\n-                factor = (float_32) (MappingDesc::SuperCellSize::toRT()[pos] + thickness - cell[pos] - 1);\n-            }\n-            else\n-            {\n-                factor = (float_32) ((MappingDesc::SuperCellSize::toRT()[pos] + cell[pos]) - gCells[pos] + thickness);\n-            }\n+            using namespace mappings::threads;\n+\n+            constexpr int axis = T_Axis::value;\n+\n+            // return if axis is not selected\n+            if( relExchangeDir[ axis ] == 0 )\n+                return;\n+\n+            using SuperCellSize = typename T_Mapping::SuperCellSize;\n+            DataSpace< simDim > const superCellIdx(\n+                mapper.getSuperCellIndex( DataSpace< simDim >( blockIdx ) )\n+            );\n+\n+            constexpr uint32_t numWorkers = T_NumWorkers::value;\n+            constexpr uint32_t cellsPerSuperCell = pmacc::math::CT::volume< SuperCellSize >::type::value;\n+\n+            uint32_t const workerIdx = threadIdx.x;\n+\n+            // cell index of the supercell within the local domain (incl. the guards)\n+            DataSpace< simDim > const localDomainCells = mapper.getGridSuperCells() * SuperCellSize::toRT();\n+\n+            using SuperCellDomCfg = IdxConfig<\n+                cellsPerSuperCell,\n+                numWorkers\n+            >;\n+\n+            ForEachIdx<\n+                SuperCellDomCfg\n+            >{ workerIdx }(\n+                [&](\n+                    uint32_t const linearIdx,\n+                    uint32_t const\n+                )\n+                {\n+                    /* cell index within the superCell */\n+                    DataSpace< simDim > const cellIdx = DataSpaceOperations< simDim >::\n+                        template map< SuperCellSize >( linearIdx );\n+\n+                    DataSpace< simDim > cell( superCellIdx * SuperCellSize::toRT( ) + cellIdx);\n+\n+                    do\n+                    {\n+                        cell[ axis ] += SuperCellSize::toRT()[ axis ] * -1 * relExchangeDir[ axis ];\n+                        int factor(0);\n+\n+                        if( relExchangeDir[ axis ] < 0 )\n+                        {\n+                            factor = SuperCellSize::toRT()[ axis ] - cell[ axis ] +\n+                                thickness - 1;\n+                        }\n+                        else\n+                        {\n+                            factor = SuperCellSize::toRT()[ axis ] + cell[ axis ] -\n+                                localDomainCells[ axis ] + thickness;\n+                        }\n+\n+                        if( factor <= 0 )\n+                        {\n+                            break;\n+                        }\n+                        else\n+                        {\n+                            float_X const a = math::exp( -absorberStrength * float_X( factor ) );\n+                            field( cell ) = field( cell ) * a;\n+                        }\n+                    } while( true );\n+                }\n+            );\n \n         }\n+    };\n \n-        if (factor <= float_X(0.0))\n-        {\n-            factor = float_X(0.0);\n-            nvidia::atomicAllExch(&finish,1);\n-        }\n-        else\n+} // namespace detail\n+\n+    /** damp each field component at the one exchange border\n+     *\n+     * @tparam T_numWorkers number of workers\n+     */\n+    template< uint32_t T_numWorkers >\n+    struct KernelAbsorbBorder\n+    {\n+        /** damp a field at the border\n+         *\n+         * @tparam T_BoxedMemory pmacc::DataBox, type of the field\n+         * @tparam T_Mapping mapper functor type\n+         *\n+         * @param field filed to manipulate\n+         * @param thickness the thickness of the absorber area (in cells)\n+         * @param absorberStrength strength of the absorber\n+         * @param mapper functor to map a block to a supercell\n+         */\n+        template<\n+            typename T_BoxedMemory,\n+            typename T_Mapping\n+        >\n+        DINLINE void operator()(\n+            T_BoxedMemory field,","path":"include/picongpu/fields/FieldManipulator.kernel","position":197,"original_position":197,"commit_id":"0fbb6ebdf6ab8c9af6b45ed446f78c6302a4dc51","original_commit_id":"0fbb6ebdf6ab8c9af6b45ed446f78c6302a4dc51","user":{"login":"ax3l","id":1353258,"avatar_url":"https://avatars3.githubusercontent.com/u/1353258?v=4","gravatar_id":"","url":"https://api.github.com/users/ax3l","html_url":"https://github.com/ax3l","followers_url":"https://api.github.com/users/ax3l/followers","following_url":"https://api.github.com/users/ax3l/following{/other_user}","gists_url":"https://api.github.com/users/ax3l/gists{/gist_id}","starred_url":"https://api.github.com/users/ax3l/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ax3l/subscriptions","organizations_url":"https://api.github.com/users/ax3l/orgs","repos_url":"https://api.github.com/users/ax3l/repos","events_url":"https://api.github.com/users/ax3l/events{/privacy}","received_events_url":"https://api.github.com/users/ax3l/received_events","type":"User","site_admin":false},"body":"why not a ref here but above?","created_at":"2017-07-31T09:48:27Z","updated_at":"2017-07-31T09:50:41Z","html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/2160#discussion_r130312163","pull_request_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/2160","_links":{"self":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/comments/130312163"},"html":{"href":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/2160#discussion_r130312163"},"pull_request":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/2160"}}},"pull_request":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/2160","id":132986366,"html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/2160","diff_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/2160.diff","patch_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/2160.patch","issue_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/2160","number":2160,"state":"open","locked":false,"title":"lockstep refactoring `KernelAbsorbBorder`","user":{"login":"psychocoderHPC","id":4037125,"avatar_url":"https://avatars2.githubusercontent.com/u/4037125?v=4","gravatar_id":"","url":"https://api.github.com/users/psychocoderHPC","html_url":"https://github.com/psychocoderHPC","followers_url":"https://api.github.com/users/psychocoderHPC/followers","following_url":"https://api.github.com/users/psychocoderHPC/following{/other_user}","gists_url":"https://api.github.com/users/psychocoderHPC/gists{/gist_id}","starred_url":"https://api.github.com/users/psychocoderHPC/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/psychocoderHPC/subscriptions","organizations_url":"https://api.github.com/users/psychocoderHPC/orgs","repos_url":"https://api.github.com/users/psychocoderHPC/repos","events_url":"https://api.github.com/users/psychocoderHPC/events{/privacy}","received_events_url":"https://api.github.com/users/psychocoderHPC/received_events","type":"User","site_admin":false},"body":"- rewrite kernel with the lockstep programming model\r\n- add documentation\r\n- remove usage of the define `SIMDIM` to controll the algorithm\r\n\r\n[HowTo lockstep programming](http://picongpu.readthedocs.io/en/dev/prgpatterns/lockstep.html)\r\n\r\n# Tests\r\n\r\n- [x] Create a field with fieldBackground and propagate is in all directions. Check that the field is reduced at all borders.","created_at":"2017-07-28T14:52:40Z","updated_at":"2017-07-31T09:50:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"cbd10cda0da887ca631db25d95cc68fb8d28b239","assignee":{"login":"ax3l","id":1353258,"avatar_url":"https://avatars3.githubusercontent.com/u/1353258?v=4","gravatar_id":"","url":"https://api.github.com/users/ax3l","html_url":"https://github.com/ax3l","followers_url":"https://api.github.com/users/ax3l/followers","following_url":"https://api.github.com/users/ax3l/following{/other_user}","gists_url":"https://api.github.com/users/ax3l/gists{/gist_id}","starred_url":"https://api.github.com/users/ax3l/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ax3l/subscriptions","organizations_url":"https://api.github.com/users/ax3l/orgs","repos_url":"https://api.github.com/users/ax3l/repos","events_url":"https://api.github.com/users/ax3l/events{/privacy}","received_events_url":"https://api.github.com/users/ax3l/received_events","type":"User","site_admin":false},"assignees":[{"login":"ax3l","id":1353258,"avatar_url":"https://avatars3.githubusercontent.com/u/1353258?v=4","gravatar_id":"","url":"https://api.github.com/users/ax3l","html_url":"https://github.com/ax3l","followers_url":"https://api.github.com/users/ax3l/followers","following_url":"https://api.github.com/users/ax3l/following{/other_user}","gists_url":"https://api.github.com/users/ax3l/gists{/gist_id}","starred_url":"https://api.github.com/users/ax3l/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ax3l/subscriptions","organizations_url":"https://api.github.com/users/ax3l/orgs","repos_url":"https://api.github.com/users/ax3l/repos","events_url":"https://api.github.com/users/ax3l/events{/privacy}","received_events_url":"https://api.github.com/users/ax3l/received_events","type":"User","site_admin":false}],"requested_reviewers":[],"milestone":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/milestones/10","html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/milestone/10","labels_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/milestones/10/labels","id":2455699,"number":10,"title":"0.4.0 / 1.0.0: Next Stable","description":"Possible topics:\r\n- finalize central parts of the Sphinx docs & migrate most of the wiki\r\n- official cupla (alpaka) support\r\n- particle merging","creator":{"login":"ax3l","id":1353258,"avatar_url":"https://avatars3.githubusercontent.com/u/1353258?v=4","gravatar_id":"","url":"https://api.github.com/users/ax3l","html_url":"https://github.com/ax3l","followers_url":"https://api.github.com/users/ax3l/followers","following_url":"https://api.github.com/users/ax3l/following{/other_user}","gists_url":"https://api.github.com/users/ax3l/gists{/gist_id}","starred_url":"https://api.github.com/users/ax3l/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ax3l/subscriptions","organizations_url":"https://api.github.com/users/ax3l/orgs","repos_url":"https://api.github.com/users/ax3l/repos","events_url":"https://api.github.com/users/ax3l/events{/privacy}","received_events_url":"https://api.github.com/users/ax3l/received_events","type":"User","site_admin":false},"open_issues":14,"closed_issues":109,"state":"open","created_at":"2017-04-13T15:44:52Z","updated_at":"2017-07-31T09:19:53Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/2160/commits","review_comments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/2160/comments","review_comment_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/2160/comments","statuses_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/statuses/0fbb6ebdf6ab8c9af6b45ed446f78c6302a4dc51","head":{"label":"psychocoderHPC:topic-lockstepAbsorber","ref":"topic-lockstepAbsorber","sha":"0fbb6ebdf6ab8c9af6b45ed446f78c6302a4dc51","user":{"login":"psychocoderHPC","id":4037125,"avatar_url":"https://avatars2.githubusercontent.com/u/4037125?v=4","gravatar_id":"","url":"https://api.github.com/users/psychocoderHPC","html_url":"https://github.com/psychocoderHPC","followers_url":"https://api.github.com/users/psychocoderHPC/followers","following_url":"https://api.github.com/users/psychocoderHPC/following{/other_user}","gists_url":"https://api.github.com/users/psychocoderHPC/gists{/gist_id}","starred_url":"https://api.github.com/users/psychocoderHPC/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/psychocoderHPC/subscriptions","organizations_url":"https://api.github.com/users/psychocoderHPC/orgs","repos_url":"https://api.github.com/users/psychocoderHPC/repos","events_url":"https://api.github.com/users/psychocoderHPC/events{/privacy}","received_events_url":"https://api.github.com/users/psychocoderHPC/received_events","type":"User","site_admin":false},"repo":{"id":12103789,"name":"picongpu","full_name":"psychocoderHPC/picongpu","owner":{"login":"psychocoderHPC","id":4037125,"avatar_url":"https://avatars2.githubusercontent.com/u/4037125?v=4","gravatar_id":"","url":"https://api.github.com/users/psychocoderHPC","html_url":"https://github.com/psychocoderHPC","followers_url":"https://api.github.com/users/psychocoderHPC/followers","following_url":"https://api.github.com/users/psychocoderHPC/following{/other_user}","gists_url":"https://api.github.com/users/psychocoderHPC/gists{/gist_id}","starred_url":"https://api.github.com/users/psychocoderHPC/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/psychocoderHPC/subscriptions","organizations_url":"https://api.github.com/users/psychocoderHPC/orgs","repos_url":"https://api.github.com/users/psychocoderHPC/repos","events_url":"https://api.github.com/users/psychocoderHPC/events{/privacy}","received_events_url":"https://api.github.com/users/psychocoderHPC/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/psychocoderHPC/picongpu","description":"PIConGPU - A particle-in-cell code for GPGPUs","fork":true,"url":"https://api.github.com/repos/psychocoderHPC/picongpu","forks_url":"https://api.github.com/repos/psychocoderHPC/picongpu/forks","keys_url":"https://api.github.com/repos/psychocoderHPC/picongpu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/psychocoderHPC/picongpu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/psychocoderHPC/picongpu/teams","hooks_url":"https://api.github.com/repos/psychocoderHPC/picongpu/hooks","issue_events_url":"https://api.github.com/repos/psychocoderHPC/picongpu/issues/events{/number}","events_url":"https://api.github.com/repos/psychocoderHPC/picongpu/events","assignees_url":"https://api.github.com/repos/psychocoderHPC/picongpu/assignees{/user}","branches_url":"https://api.github.com/repos/psychocoderHPC/picongpu/branches{/branch}","tags_url":"https://api.github.com/repos/psychocoderHPC/picongpu/tags","blobs_url":"https://api.github.com/repos/psychocoderHPC/picongpu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/psychocoderHPC/picongpu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/psychocoderHPC/picongpu/git/refs{/sha}","trees_url":"https://api.github.com/repos/psychocoderHPC/picongpu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/psychocoderHPC/picongpu/statuses/{sha}","languages_url":"https://api.github.com/repos/psychocoderHPC/picongpu/languages","stargazers_url":"https://api.github.com/repos/psychocoderHPC/picongpu/stargazers","contributors_url":"https://api.github.com/repos/psychocoderHPC/picongpu/contributors","subscribers_url":"https://api.github.com/repos/psychocoderHPC/picongpu/subscribers","subscription_url":"https://api.github.com/repos/psychocoderHPC/picongpu/subscription","commits_url":"https://api.github.com/repos/psychocoderHPC/picongpu/commits{/sha}","git_commits_url":"https://api.github.com/repos/psychocoderHPC/picongpu/git/commits{/sha}","comments_url":"https://api.github.com/repos/psychocoderHPC/picongpu/comments{/number}","issue_comment_url":"https://api.github.com/repos/psychocoderHPC/picongpu/issues/comments{/number}","contents_url":"https://api.github.com/repos/psychocoderHPC/picongpu/contents/{+path}","compare_url":"https://api.github.com/repos/psychocoderHPC/picongpu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/psychocoderHPC/picongpu/merges","archive_url":"https://api.github.com/repos/psychocoderHPC/picongpu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/psychocoderHPC/picongpu/downloads","issues_url":"https://api.github.com/repos/psychocoderHPC/picongpu/issues{/number}","pulls_url":"https://api.github.com/repos/psychocoderHPC/picongpu/pulls{/number}","milestones_url":"https://api.github.com/repos/psychocoderHPC/picongpu/milestones{/number}","notifications_url":"https://api.github.com/repos/psychocoderHPC/picongpu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/psychocoderHPC/picongpu/labels{/name}","releases_url":"https://api.github.com/repos/psychocoderHPC/picongpu/releases{/id}","deployments_url":"https://api.github.com/repos/psychocoderHPC/picongpu/deployments","created_at":"2013-08-14T08:23:46Z","updated_at":"2015-10-14T10:57:17Z","pushed_at":"2017-07-28T15:10:46Z","git_url":"git://github.com/psychocoderHPC/picongpu.git","ssh_url":"git@github.com:psychocoderHPC/picongpu.git","clone_url":"https://github.com/psychocoderHPC/picongpu.git","svn_url":"https://github.com/psychocoderHPC/picongpu","homepage":"http://picongpu.hzdr.de","size":71832,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":1,"default_branch":"dev"}},"base":{"label":"ComputationalRadiationPhysics:dev","ref":"dev","sha":"02ec0126fe934454c8dfd455b48d95faa8cdcbdd","user":{"login":"ComputationalRadiationPhysics","id":5120388,"avatar_url":"https://avatars0.githubusercontent.com/u/5120388?v=4","gravatar_id":"","url":"https://api.github.com/users/ComputationalRadiationPhysics","html_url":"https://github.com/ComputationalRadiationPhysics","followers_url":"https://api.github.com/users/ComputationalRadiationPhysics/followers","following_url":"https://api.github.com/users/ComputationalRadiationPhysics/following{/other_user}","gists_url":"https://api.github.com/users/ComputationalRadiationPhysics/gists{/gist_id}","starred_url":"https://api.github.com/users/ComputationalRadiationPhysics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ComputationalRadiationPhysics/subscriptions","organizations_url":"https://api.github.com/users/ComputationalRadiationPhysics/orgs","repos_url":"https://api.github.com/users/ComputationalRadiationPhysics/repos","events_url":"https://api.github.com/users/ComputationalRadiationPhysics/events{/privacy}","received_events_url":"https://api.github.com/users/ComputationalRadiationPhysics/received_events","type":"Organization","site_admin":false},"repo":{"id":11764461,"name":"picongpu","full_name":"ComputationalRadiationPhysics/picongpu","owner":{"login":"ComputationalRadiationPhysics","id":5120388,"avatar_url":"https://avatars0.githubusercontent.com/u/5120388?v=4","gravatar_id":"","url":"https://api.github.com/users/ComputationalRadiationPhysics","html_url":"https://github.com/ComputationalRadiationPhysics","followers_url":"https://api.github.com/users/ComputationalRadiationPhysics/followers","following_url":"https://api.github.com/users/ComputationalRadiationPhysics/following{/other_user}","gists_url":"https://api.github.com/users/ComputationalRadiationPhysics/gists{/gist_id}","starred_url":"https://api.github.com/users/ComputationalRadiationPhysics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ComputationalRadiationPhysics/subscriptions","organizations_url":"https://api.github.com/users/ComputationalRadiationPhysics/orgs","repos_url":"https://api.github.com/users/ComputationalRadiationPhysics/repos","events_url":"https://api.github.com/users/ComputationalRadiationPhysics/events{/privacy}","received_events_url":"https://api.github.com/users/ComputationalRadiationPhysics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ComputationalRadiationPhysics/picongpu","description":"A particle-in-cell code for GPGPUs :sparkles:","fork":false,"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu","forks_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/forks","keys_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/teams","hooks_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/hooks","issue_events_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/events{/number}","events_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/events","assignees_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/assignees{/user}","branches_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/branches{/branch}","tags_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/tags","blobs_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/git/refs{/sha}","trees_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/statuses/{sha}","languages_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/languages","stargazers_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/stargazers","contributors_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/contributors","subscribers_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/subscribers","subscription_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/subscription","commits_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/commits{/sha}","git_commits_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/git/commits{/sha}","comments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/comments{/number}","issue_comment_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/comments{/number}","contents_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/contents/{+path}","compare_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/merges","archive_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/downloads","issues_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues{/number}","pulls_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls{/number}","milestones_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/milestones{/number}","notifications_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/labels{/name}","releases_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/releases{/id}","deployments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/deployments","created_at":"2013-07-30T12:28:20Z","updated_at":"2017-07-31T03:24:40Z","pushed_at":"2017-07-31T09:17:27Z","git_url":"git://github.com/ComputationalRadiationPhysics/picongpu.git","ssh_url":"git@github.com:ComputationalRadiationPhysics/picongpu.git","clone_url":"https://github.com/ComputationalRadiationPhysics/picongpu.git","svn_url":"https://github.com/ComputationalRadiationPhysics/picongpu","homepage":"https://picongpu.readthedocs.io","size":14949,"stargazers_count":245,"watchers_count":245,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":112,"mirror_url":null,"open_issues_count":275,"forks":112,"open_issues":275,"watchers":245,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/2160"},"html":{"href":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/2160"},"issue":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/2160"},"comments":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/2160/comments"},"review_comments":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/2160/comments"},"review_comment":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/2160/commits"},"statuses":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/statuses/0fbb6ebdf6ab8c9af6b45ed446f78c6302a4dc51"}}}}
{"actor":{"display_login":"ax3l"}}