{"action":"created","comment":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/comments/44388753","id":44388753,"diff_hunk":"@@ -0,0 +1,218 @@\n+/**\n+ * Copyright 2013-2015 Axel Huebl, Heiko Burau, Rene Widera, Felix Schmitt\n+ *\n+ * This file is part of PIConGPU.\n+ *\n+ * PIConGPU is free software: you can redistribute it and/or modify\n+ * it under the terms of the GNU General Public License as published by\n+ * the Free Software Foundation, either version 3 of the License, or\n+ * (at your option) any later version.\n+ *\n+ * PIConGPU is distributed in the hope that it will be useful,\n+ * but WITHOUT ANY WARRANTY; without even the implied warranty of\n+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+ * GNU General Public License for more details.\n+ *\n+ * You should have received a copy of the GNU General Public License\n+ * along with PIConGPU.\n+ * If not, see <http://www.gnu.org/licenses/>.\n+ */\n+\n+#include \"math/vector/Int.hpp\"\n+#include \"math/vector/Float.hpp\"\n+#include \"math/vector/Size_t.hpp\"\n+#include \"math/vector/math_functor/abs.hpp\"\n+#include \"math/vector/math_functor/max.hpp\"\n+#include \"cuSTL/container/PseudoBuffer.hpp\"\n+#include \"dataManagement/DataConnector.hpp\"\n+#include \"fields/FieldJ.hpp\"\n+#include \"math/Vector.hpp\"\n+#include \"cuSTL/algorithm/mpi/Gather.hpp\"\n+#include \"cuSTL/algorithm/mpi/Reduce.hpp\"\n+#include \"cuSTL/container/DeviceBuffer.hpp\"\n+#include \"cuSTL/container/HostBuffer.hpp\"\n+#include \"cuSTL/algorithm/kernel/Foreach.hpp\"\n+#include \"cuSTL/algorithm/host/Foreach.hpp\"\n+#include \"cuSTL/cursor/NestedCursor.hpp\"\n+#include \"lambda/Expression.hpp\"\n+#include <sstream>\n+#include \"algorithms/ForEach.hpp\"\n+#include \"cuSTL/algorithm/kernel/Reduce.hpp\"\n+#include \"nvidia/functors/Add.hpp\"\n+#include \"common/txtFileHandling.hpp\"\n+\n+namespace picongpu\n+{\n+\n+ChargeConservation::ChargeConservation()\n+    : name(\"ChargeConservation: Print the maximum charge deviation between particles and div E to textfile 'chargeConservation.dat'\"),\n+      prefix(\"chargeConservation\"), filename(\"chargeConservation.dat\")\n+{\n+    Environment<>::get().PluginConnector().registerPlugin(this);\n+}\n+\n+void ChargeConservation::pluginRegisterHelp(po::options_description& desc)\n+{\n+    desc.add_options()\n+        ((this->prefix + \".period\").c_str(),\n+        po::value<uint32_t > (&this->notifyPeriod)->default_value(0), \"enable plugin [for each n-th step]\");\n+}\n+\n+std::string ChargeConservation::pluginGetName() const {return this->name;}\n+\n+void ChargeConservation::pluginLoad()\n+{\n+    Environment<>::get().PluginConnector().setNotificationPeriod(this, this->notifyPeriod);\n+\n+    this->output_file.open(this->filename.c_str(), std::ofstream::out | std::ostream::trunc);\n+    this->output_file << \"#timestep max-charge-deviation unit[As]\" << std::endl;\n+}\n+\n+void ChargeConservation::restart(uint32_t restartStep, const std::string restartDirectory)\n+{\n+    restoreTxtFile( this->output_file,\n+                    this->filename,\n+                    restartStep,\n+                    restartDirectory );\n+}\n+\n+void ChargeConservation::checkpoint(uint32_t currentStep, const std::string checkpointDirectory)\n+{\n+    checkpointTxtFile( this->output_file,\n+                       this->filename,\n+                       currentStep,\n+                       checkpointDirectory );\n+}\n+\n+namespace detail\n+{\n+\n+/**\n+ * @class Div\n+ * @brief divergence functor for 2D and 3D\n+ *\n+ * NOTE: This functor uses a Yee-cell stencil.\n+ */\n+template<int dim, typename ValueType>\n+struct Div;\n+\n+template<typename ValueType>\n+struct Div<DIM3, ValueType>\n+{\n+    typedef ValueType result_type;\n+\n+    template<typename Field>\n+    HDINLINE ValueType operator()(Field field) const\n+    {\n+        const ValueType reciWidth = float_X(1.0) / cellSize.x();\n+        const ValueType reciHeight = float_X(1.0) / cellSize.y();\n+        const ValueType reciDepth = float_X(1.0) / cellSize.z();\n+        return ((*field).x() - (*field(-1,0,0)).x()) * reciWidth +\n+               ((*field).y() - (*field(0,-1,0)).y()) * reciHeight +\n+               ((*field).z() - (*field(0,0,-1)).z()) * reciDepth;\n+    }\n+};\n+\n+template<typename ValueType>\n+struct Div<DIM2, ValueType>\n+{\n+    typedef ValueType result_type;\n+\n+    template<typename Field>\n+    HDINLINE ValueType operator()(Field field) const\n+    {\n+        const ValueType reciWidth = float_X(1.0) / cellSize.x();\n+        const ValueType reciHeight = float_X(1.0) / cellSize.y();\n+        return ((*field).x() - (*field(-1,0)).x()) * reciWidth +\n+               ((*field).y() - (*field(0,-1)).y()) * reciHeight;\n+    }\n+};\n+\n+// functor for all species to calculate density\n+template<typename T_SpeciesName, typename T_Area>\n+struct ComputeChargeDensity\n+{\n+    typedef typename T_SpeciesName::type SpeciesName;\n+    static const uint32_t area = T_Area::value;\n+\n+    HINLINE void operator()( FieldTmp* fieldTmp,\n+                             const uint32_t currentStep) const\n+    {\n+        DataConnector &dc = Environment<>::get().DataConnector();\n+\n+        /* load species without copying the particle data to the host */\n+        SpeciesName* speciesTmp = &(dc.getData<SpeciesName >(SpeciesName::FrameType::getName(), true));\n+\n+        /* run algorithm */\n+        typedef typename CreateDensityOperation<SpeciesName>::type::Solver ChargeDensitySolver;\n+        fieldTmp->computeValue < area, ChargeDensitySolver > (*speciesTmp, currentStep);\n+        dc.releaseData(SpeciesName::FrameType::getName());\n+    }\n+};\n+\n+} // namespace detail\n+\n+void ChargeConservation::notify(uint32_t currentStep)\n+{\n+    typedef SuperCellSize BlockDim;\n+\n+    DataConnector &dc = Environment<>::get().DataConnector();\n+\n+    /* load FieldTmp without copy data to host */\n+    FieldTmp* fieldTmp = &(dc.getData<FieldTmp > (FieldTmp::getName(), true));\n+    /* reset density values to zero */\n+    fieldTmp->getGridBuffer().getDeviceBuffer().setValue(FieldTmp::ValueType(0.0));\n+\n+    /* calculate and add the charge density values from all species in FieldTmp */\n+    ForEach<VectorAllSpecies, picongpu::detail::ComputeChargeDensity<bmpl::_1,bmpl::int_<CORE + BORDER> >, MakeIdentifier<bmpl::_1> > computeChargeDensity;\n+    computeChargeDensity(forward(fieldTmp), currentStep);\n+\n+    /* add results of all species that are still in GUARD to next GPUs BORDER */\n+    EventTask fieldTmpEvent = fieldTmp->asyncCommunication(__getTransactionEvent());\n+    __setTransactionEvent(fieldTmpEvent);\n+\n+    /* cast libPMacc Buffer to cuSTL Buffer */\n+    BOOST_AUTO(fieldTmp_coreBorder,\n+                 fieldTmp->getGridBuffer().\n+                 getDeviceBuffer().cartBuffer().\n+                 view(BlockDim::toRT(), -BlockDim::toRT()));\n+\n+    /* cast libPMacc Buffer to cuSTL Buffer */\n+    BOOST_AUTO(fieldE_coreBorder,\n+                 dc.getData<FieldE > (FieldE::getName(), true).getGridBuffer().\n+                 getDeviceBuffer().cartBuffer().\n+                 view(BlockDim::toRT(), -BlockDim::toRT()));\n+\n+    /* run calculation: fieldTmp = | div E * eps_0 - rho | */\n+    using namespace lambda;\n+    using namespace PMacc::math::math_functor;\n+    typedef picongpu::detail::Div<simDim, typename FieldTmp::ValueType> myDiv;\n+    algorithm::kernel::Foreach<BlockDim>()\n+        (fieldTmp_coreBorder.zone(), fieldTmp_coreBorder.origin(),\n+        cursor::make_NestedCursor(fieldE_coreBorder.origin()),\n+            _1 = _abs(expr(myDiv())(_2) * EPS0 - _1));\n+\n+    /* reduce charge derivation (fieldTmp) to get the maximum value */\n+    typename FieldTmp::ValueType maxChargeDiff =\n+        algorithm::kernel::Reduce()\n+            (fieldTmp_coreBorder.origin(), fieldTmp_coreBorder.zone(), PMacc::nvidia::functors::Max());\n+\n+    /* reduce again across mpi cluster */\n+    container::HostBuffer<typename FieldTmp::ValueType, 1> maxChargeDiff_host(1);","path":"src/picongpu/include/plugins/ChargeConservation.tpp","position":201,"original_position":201,"commit_id":"a4ad538dd99f85318a1793a6c6565836d00d3921","original_commit_id":"a4ad538dd99f85318a1793a6c6565836d00d3921","user":{"login":"psychocoderHPC","id":4037125,"avatar_url":"https://avatars.githubusercontent.com/u/4037125?v=3","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":"You need a `__getTransactionEvent().waitForFisnished();` before this line, because CuSTL assign is set no event system hints and is not race condition save.\r\n","created_at":"2015-11-10T10:07:18Z","updated_at":"2015-11-10T10:07:18Z","html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/790#discussion_r44388753","pull_request_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/790","_links":{"self":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/comments/44388753"},"html":{"href":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/790#discussion_r44388753"},"pull_request":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/790"}}},"pull_request":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/790","id":32435560,"html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/790","diff_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/790.diff","patch_url":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/790.patch","issue_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/790","number":790,"state":"open","locked":false,"title":"add charge conservation plugin","user":{"login":"Heikman","id":5159590,"avatar_url":"https://avatars.githubusercontent.com/u/5159590?v=3","gravatar_id":"","url":"https://api.github.com/users/Heikman","html_url":"https://github.com/Heikman","followers_url":"https://api.github.com/users/Heikman/followers","following_url":"https://api.github.com/users/Heikman/following{/other_user}","gists_url":"https://api.github.com/users/Heikman/gists{/gist_id}","starred_url":"https://api.github.com/users/Heikman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Heikman/subscriptions","organizations_url":"https://api.github.com/users/Heikman/orgs","repos_url":"https://api.github.com/users/Heikman/repos","events_url":"https://api.github.com/users/Heikman/events{/privacy}","received_events_url":"https://api.github.com/users/Heikman/received_events","type":"User","site_admin":false},"body":"adding --chargeConservation.period <frequency> option to picongpu now returns the maximum charge deviation between particles and div E in a separate output file chargeConservation.dat:\r\n```\r\n#timestep max-charge-deviation unit[As]\r\n0 7.59718e-06 5.23234e-17\r\n100 8.99187e-05 5.23234e-17\r\n200 0.000113926 5.23234e-17\r\n300 0.00014836 5.23234e-17\r\n400 0.000154502 5.23234e-17\r\n500 0.000164952 5.23234e-17\r\n```\r\n### To Do\r\n\r\n- [x] update the `TBG_macros.cfg`\r\n- [x] provide easily gnuplot-able output format (e.g., write a `# header for the columns`)\r\n- [x] use common plugin syntax on cmd line (e.g., `name.period`)\r\n- [x] prefer structured variables over single consts: `cellSize` over 3x `CELL_...`\r\n- [x] update the [wiki](https://github.com/ComputationalRadiationPhysics/picongpu/wiki/Plugin%3A-ChargeConservation)","created_at":"2015-04-01T16:26:03Z","updated_at":"2015-11-10T10:07:18Z","closed_at":null,"merged_at":null,"merge_commit_sha":"08d0d534f4cd72ed00a1ac62863f894af610a8a2","assignee":{"login":"PrometheusPi","id":5121158,"avatar_url":"https://avatars.githubusercontent.com/u/5121158?v=3","gravatar_id":"","url":"https://api.github.com/users/PrometheusPi","html_url":"https://github.com/PrometheusPi","followers_url":"https://api.github.com/users/PrometheusPi/followers","following_url":"https://api.github.com/users/PrometheusPi/following{/other_user}","gists_url":"https://api.github.com/users/PrometheusPi/gists{/gist_id}","starred_url":"https://api.github.com/users/PrometheusPi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PrometheusPi/subscriptions","organizations_url":"https://api.github.com/users/PrometheusPi/orgs","repos_url":"https://api.github.com/users/PrometheusPi/repos","events_url":"https://api.github.com/users/PrometheusPi/events{/privacy}","received_events_url":"https://api.github.com/users/PrometheusPi/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/milestones/2","html_url":"https://github.com/ComputationalRadiationPhysics/picongpu/milestones/Open%20Beta","labels_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/milestones/2/labels","id":395839,"number":2,"title":"Open Beta","description":"Tasks to complete until the release of our open beta (version 0.1)\r\n\r\nThe [beta](https://en.wikipedia.org/wiki/Software_release_life_cycle#Beta) release shall be useful for *physicist* that used a Particle-in-Cell code *before*. Experience with *compiling libraries from source* and a *good Linux knowledge* is required for the initial installation.\r\n","creator":{"login":"ax3l","id":1353258,"avatar_url":"https://avatars.githubusercontent.com/u/1353258?v=3","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":150,"closed_issues":991,"state":"open","created_at":"2013-08-06T16:38:57Z","updated_at":"2015-11-09T16:13:30Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/790/commits","review_comments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/790/comments","review_comment_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/790/comments","statuses_url":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/statuses/a4ad538dd99f85318a1793a6c6565836d00d3921","head":{"label":"Heikman:chargeConservation","ref":"chargeConservation","sha":"a4ad538dd99f85318a1793a6c6565836d00d3921","user":{"login":"Heikman","id":5159590,"avatar_url":"https://avatars.githubusercontent.com/u/5159590?v=3","gravatar_id":"","url":"https://api.github.com/users/Heikman","html_url":"https://github.com/Heikman","followers_url":"https://api.github.com/users/Heikman/followers","following_url":"https://api.github.com/users/Heikman/following{/other_user}","gists_url":"https://api.github.com/users/Heikman/gists{/gist_id}","starred_url":"https://api.github.com/users/Heikman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Heikman/subscriptions","organizations_url":"https://api.github.com/users/Heikman/orgs","repos_url":"https://api.github.com/users/Heikman/repos","events_url":"https://api.github.com/users/Heikman/events{/privacy}","received_events_url":"https://api.github.com/users/Heikman/received_events","type":"User","site_admin":false},"repo":{"id":12133878,"name":"picongpu","full_name":"Heikman/picongpu","owner":{"login":"Heikman","id":5159590,"avatar_url":"https://avatars.githubusercontent.com/u/5159590?v=3","gravatar_id":"","url":"https://api.github.com/users/Heikman","html_url":"https://github.com/Heikman","followers_url":"https://api.github.com/users/Heikman/followers","following_url":"https://api.github.com/users/Heikman/following{/other_user}","gists_url":"https://api.github.com/users/Heikman/gists{/gist_id}","starred_url":"https://api.github.com/users/Heikman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Heikman/subscriptions","organizations_url":"https://api.github.com/users/Heikman/orgs","repos_url":"https://api.github.com/users/Heikman/repos","events_url":"https://api.github.com/users/Heikman/events{/privacy}","received_events_url":"https://api.github.com/users/Heikman/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Heikman/picongpu","description":"PIConGPU - A particle-in-cell code for GPGPUs","fork":true,"url":"https://api.github.com/repos/Heikman/picongpu","forks_url":"https://api.github.com/repos/Heikman/picongpu/forks","keys_url":"https://api.github.com/repos/Heikman/picongpu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Heikman/picongpu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Heikman/picongpu/teams","hooks_url":"https://api.github.com/repos/Heikman/picongpu/hooks","issue_events_url":"https://api.github.com/repos/Heikman/picongpu/issues/events{/number}","events_url":"https://api.github.com/repos/Heikman/picongpu/events","assignees_url":"https://api.github.com/repos/Heikman/picongpu/assignees{/user}","branches_url":"https://api.github.com/repos/Heikman/picongpu/branches{/branch}","tags_url":"https://api.github.com/repos/Heikman/picongpu/tags","blobs_url":"https://api.github.com/repos/Heikman/picongpu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Heikman/picongpu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Heikman/picongpu/git/refs{/sha}","trees_url":"https://api.github.com/repos/Heikman/picongpu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Heikman/picongpu/statuses/{sha}","languages_url":"https://api.github.com/repos/Heikman/picongpu/languages","stargazers_url":"https://api.github.com/repos/Heikman/picongpu/stargazers","contributors_url":"https://api.github.com/repos/Heikman/picongpu/contributors","subscribers_url":"https://api.github.com/repos/Heikman/picongpu/subscribers","subscription_url":"https://api.github.com/repos/Heikman/picongpu/subscription","commits_url":"https://api.github.com/repos/Heikman/picongpu/commits{/sha}","git_commits_url":"https://api.github.com/repos/Heikman/picongpu/git/commits{/sha}","comments_url":"https://api.github.com/repos/Heikman/picongpu/comments{/number}","issue_comment_url":"https://api.github.com/repos/Heikman/picongpu/issues/comments{/number}","contents_url":"https://api.github.com/repos/Heikman/picongpu/contents/{+path}","compare_url":"https://api.github.com/repos/Heikman/picongpu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Heikman/picongpu/merges","archive_url":"https://api.github.com/repos/Heikman/picongpu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Heikman/picongpu/downloads","issues_url":"https://api.github.com/repos/Heikman/picongpu/issues{/number}","pulls_url":"https://api.github.com/repos/Heikman/picongpu/pulls{/number}","milestones_url":"https://api.github.com/repos/Heikman/picongpu/milestones{/number}","notifications_url":"https://api.github.com/repos/Heikman/picongpu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Heikman/picongpu/labels{/name}","releases_url":"https://api.github.com/repos/Heikman/picongpu/releases{/id}","created_at":"2013-08-15T12:28:22Z","updated_at":"2014-06-12T11:22:44Z","pushed_at":"2015-11-09T13:08:31Z","git_url":"git://github.com/Heikman/picongpu.git","ssh_url":"git@github.com:Heikman/picongpu.git","clone_url":"https://github.com/Heikman/picongpu.git","svn_url":"https://github.com/Heikman/picongpu","homepage":"http://picongpu.hzdr.de","size":10051,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"ComputationalRadiationPhysics:dev","ref":"dev","sha":"cc264a920dae9cd3f7effd45728ad8d448b24811","user":{"login":"ComputationalRadiationPhysics","id":5120388,"avatar_url":"https://avatars.githubusercontent.com/u/5120388?v=3","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://avatars.githubusercontent.com/u/5120388?v=3","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":"PIConGPU - A particle-in-cell code for GPGPUs","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}","created_at":"2013-07-30T12:28:20Z","updated_at":"2015-11-06T15:01:23Z","pushed_at":"2015-11-09T16:13:30Z","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":"http://picongpu.hzdr.de","size":18081,"stargazers_count":132,"watchers_count":132,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":73,"mirror_url":null,"open_issues_count":212,"forks":73,"open_issues":212,"watchers":132,"default_branch":"release-0.1.1"}},"_links":{"self":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/790"},"html":{"href":"https://github.com/ComputationalRadiationPhysics/picongpu/pull/790"},"issue":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/790"},"comments":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/issues/790/comments"},"review_comments":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/790/comments"},"review_comment":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/pulls/790/commits"},"statuses":{"href":"https://api.github.com/repos/ComputationalRadiationPhysics/picongpu/statuses/a4ad538dd99f85318a1793a6c6565836d00d3921"}}}}