{"action":"created","comment":{"url":"https://api.github.com/repos/ufz/ogs/pulls/comments/77821086","id":77821086,"diff_hunk":"@@ -0,0 +1,335 @@\n+/**\n+ * \\copyright\n+ * Copyright (c) 2012-2016, OpenGeoSys Community (http://www.opengeosys.org)\n+ *            Distributed under a Modified BSD License.\n+ *              See accompanying file LICENSE.txt or\n+ *              http://www.opengeosys.org/project/license\n+ *\n+ */\n+\n+#ifndef PROCESS_LIB_SMALLDEFORMATION_FEM_H_\n+#define PROCESS_LIB_SMALLDEFORMATION_FEM_H_\n+\n+#include <memory>\n+#include <vector>\n+\n+#include \"MaterialLib/SolidModels/LinearElasticIsotropic.h\"\n+#include \"NumLib/Extrapolation/ExtrapolatableElement.h\"\n+#include \"NumLib/Fem/FiniteElement/TemplateIsoparametric.h\"\n+#include \"NumLib/Fem/ShapeMatrixPolicy.h\"\n+#include \"ProcessLib/Deformation/BMatrixPolicy.h\"\n+#include \"ProcessLib/Deformation/LinearBMatrix.h\"\n+#include \"ProcessLib/LocalAssemblerInterface.h\"\n+#include \"ProcessLib/LocalAssemblerTraits.h\"\n+#include \"ProcessLib/Parameter/Parameter.h\"\n+#include \"ProcessLib/Utils/InitShapeMatrices.h\"\n+\n+#include \"SmallDeformationProcessData.h\"\n+\n+template <typename BMatricesType, int DisplacementDim>\n+struct IntegrationPointData final\n+{\n+    IntegrationPointData(Solids::MechanicsBase<DisplacementDim>& solid_material)\n+        : _solid_material(solid_material),\n+          _material_state_variables(\n+              _solid_material.createMaterialStateVariables())\n+    {\n+    }\n+\n+#if defined(_MSC_VER) && _MSC_VER < 1900\n+    // The default generated move-ctor is correctly generated for other\n+    // compilers.\n+    IntegrationPointData(IntegrationPointData&& other)\n+        : _b_matrices(std::move(other._b_matrices)),\n+          _sigma(std::move(other._sigma)),\n+          _sigma_prev(std::move(other._sigma_prev)),\n+          _eps(std::move(other._eps)),\n+          _eps_prev(std::move(other._eps_prev)),\n+          _solid_material(other._solid_material),\n+          _material_state_variables(std::move(other._material_state_variables)),\n+          _C(std::move(other._C)),\n+          _detJ(std::move(other._detJ))\n+    {\n+    }\n+#endif  // _MSC_VER\n+\n+    typename BMatricesType::BMatrixType _b_matrices;\n+    typename BMatricesType::KelvinVectorType _sigma, _sigma_prev;\n+    typename BMatricesType::KelvinVectorType _eps, _eps_prev;\n+\n+    Solids::MechanicsBase<DisplacementDim>& _solid_material;\n+    std::unique_ptr<\n+        typename Solids::MechanicsBase<DisplacementDim>::MaterialStateVariables>\n+        _material_state_variables;\n+\n+    typename BMatricesType::KelvinMatrixType _C;\n+    double _detJ;\n+\n+    void pushBackState()\n+    {\n+        _eps_prev = _eps;\n+        _sigma_prev = _sigma;\n+        _material_state_variables->pushBackState();\n+    }\n+};\n+\n+namespace ProcessLib\n+{\n+namespace SmallDeformation\n+{\n+\n+template <typename ShapeMatrixType>\n+struct SecondaryData\n+{\n+    std::vector<ShapeMatrixType> N;\n+    std::vector<double> _sigmaXX;\n+    std::vector<double> _sigmaYY;\n+    std::vector<double> _sigmaXY;\n+};\n+\n+struct SmallDeformationLocalAssemblerInterface\n+    : public ProcessLib::LocalAssemblerInterface,\n+      public NumLib::ExtrapolatableElement\n+{\n+    virtual std::vector<double> const& getIntPtSigmaXX(\n+        std::vector<double>& /*cache*/) const = 0;\n+\n+    virtual std::vector<double> const& getIntPtSigmaYY(\n+        std::vector<double>& /*cache*/) const = 0;\n+\n+    virtual std::vector<double> const& getIntPtSigmaXY(\n+        std::vector<double>& /*cache*/) const = 0;\n+};\n+\n+template <typename ShapeFunction, typename IntegrationMethod,\n+          unsigned DisplacementDim>\n+class SmallDeformationLocalAssembler\n+    : public SmallDeformationLocalAssemblerInterface\n+{\n+public:\n+    using ShapeMatricesType =\n+        ShapeMatrixPolicyType<ShapeFunction, DisplacementDim>;\n+    using NodalMatrixType = typename ShapeMatricesType::NodalMatrixType;\n+    using NodalVectorType = typename ShapeMatricesType::NodalVectorType;\n+    using ShapeMatrices = typename ShapeMatricesType::ShapeMatrices;\n+    using BMatricesType = BMatrixPolicyType<ShapeFunction, DisplacementDim>;\n+\n+    using BMatrixType = typename BMatricesType::BMatrixType;\n+    using StiffnessMatrixType = typename BMatricesType::StiffnessMatrixType;\n+    using NodalForceVectorType = typename BMatricesType::NodalForceVectorType;\n+    using NodalDisplacementVectorType =\n+        typename BMatricesType::NodalForceVectorType;\n+\n+    SmallDeformationLocalAssembler(SmallDeformationLocalAssembler const&) =\n+        delete;\n+    SmallDeformationLocalAssembler(SmallDeformationLocalAssembler&&) = delete;\n+\n+    SmallDeformationLocalAssembler(\n+        MeshLib::Element const& e,\n+        std::size_t const local_matrix_size,\n+        unsigned const integration_order,\n+        SmallDeformationProcessData<DisplacementDim>& process_data)\n+        : _process_data(process_data),\n+          _localA(local_matrix_size, local_matrix_size),\n+          _localRhs(local_matrix_size),\n+          _integration_method(integration_order),\n+          _element(e)\n+    {\n+        unsigned const n_integration_points =\n+            _integration_method.getNumberOfPoints();\n+\n+        _ip_data.reserve(n_integration_points);\n+\n+        _secondary_data.N.resize(n_integration_points);\n+        _secondary_data._sigmaXX.resize(n_integration_points);\n+        _secondary_data._sigmaYY.resize(n_integration_points);\n+        _secondary_data._sigmaXY.resize(n_integration_points);\n+\n+        auto const shape_matrices =\n+            initShapeMatrices<ShapeFunction, ShapeMatricesType,\n+                              IntegrationMethod, DisplacementDim>(\n+                e, _integration_method);\n+\n+        for (unsigned ip = 0; ip < n_integration_points; ip++)\n+        {\n+            _ip_data.emplace_back(*_process_data._material);\n+            auto& ip_data = _ip_data[ip];\n+            ip_data._detJ = shape_matrices[ip].detJ;\n+            ip_data._b_matrices.resize(\n+                KelvinVectorDimensions<DisplacementDim>::value,\n+                ShapeFunction::NPOINTS * DisplacementDim);\n+            LinearBMatrix::computeBMatrix<\n+                DisplacementDim, ShapeFunction::NPOINTS,\n+                typename ShapeMatricesType::GlobalDimNodalMatrixType,\n+                BMatrixType>(shape_matrices[ip].dNdx, ip_data._b_matrices);\n+\n+            ip_data._sigma.resize(\n+                KelvinVectorDimensions<DisplacementDim>::value);\n+            ip_data._sigma_prev.resize(\n+                KelvinVectorDimensions<DisplacementDim>::value);\n+            ip_data._eps.resize(KelvinVectorDimensions<DisplacementDim>::value);\n+            ip_data._eps_prev.resize(\n+                KelvinVectorDimensions<DisplacementDim>::value);\n+            ip_data._C.resize(KelvinVectorDimensions<DisplacementDim>::value,\n+                              KelvinVectorDimensions<DisplacementDim>::value);\n+\n+            _secondary_data.N[ip] = shape_matrices[ip].N;\n+        }\n+    }\n+\n+    void assembleConcrete(\n+        double const t, std::vector<double> const& local_x,\n+        NumLib::LocalToGlobalIndexMap::RowColumnIndices const& indices,\n+        GlobalMatrix& /*M*/, GlobalMatrix& /*K*/, GlobalVector& b) override\n+    {\n+        _localRhs.setZero();\n+\n+        unsigned const n_integration_points =\n+            _integration_method.getNumberOfPoints();\n+\n+        NodalDisplacementVectorType local_displacement(ShapeFunction::NPOINTS *\n+                                                       DisplacementDim);\n+\n+        SpatialPosition x_position;\n+        x_position.setElementID(_element.getID());\n+\n+        for (unsigned ip = 0; ip < n_integration_points; ip++)\n+        {\n+            x_position.setIntegrationPoint(ip);\n+            auto const& wp = _integration_method.getWeightedPoint(ip);\n+            auto const& detJ = _ip_data[ip]._detJ;\n+\n+            auto const& B = _ip_data[ip]._b_matrices;\n+            auto const& eps_prev = _ip_data[ip]._eps_prev;\n+            auto const& sigma_prev = _ip_data[ip]._sigma_prev;\n+\n+            auto& eps = _ip_data[ip]._eps;\n+            auto& sigma = _ip_data[ip]._sigma;\n+            auto& C = _ip_data[ip]._C;\n+            auto& material_state_variables =\n+                *_ip_data[ip]._material_state_variables;\n+\n+            eps.noalias() =\n+                B *\n+                Eigen::Map<typename BMatricesType::NodalForceVectorType const>(\n+                    local_x.data(), ShapeFunction::NPOINTS * DisplacementDim);\n+\n+            _ip_data[ip]._solid_material.computeConstitutiveRelation(\n+                t, x_position, _process_data.dt, eps_prev, eps, sigma_prev,\n+                sigma, C, material_state_variables);\n+\n+            _localRhs.noalias() -=","path":"ProcessLib/SmallDeformation/SmallDeformationFEM.h","position":224,"original_position":221,"commit_id":"ecf61b99115b6a97c69696e41f96dde49dc64dbb","original_commit_id":"66f172cdd5fb7e8066207a14048f9d75b8b3b7eb","user":{"login":"norihiro-w","id":800408,"avatar_url":"https://avatars.githubusercontent.com/u/800408?v=3","gravatar_id":"","url":"https://api.github.com/users/norihiro-w","html_url":"https://github.com/norihiro-w","followers_url":"https://api.github.com/users/norihiro-w/followers","following_url":"https://api.github.com/users/norihiro-w/following{/other_user}","gists_url":"https://api.github.com/users/norihiro-w/gists{/gist_id}","starred_url":"https://api.github.com/users/norihiro-w/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/norihiro-w/subscriptions","organizations_url":"https://api.github.com/users/norihiro-w/orgs","repos_url":"https://api.github.com/users/norihiro-w/repos","events_url":"https://api.github.com/users/norihiro-w/events{/privacy}","received_events_url":"https://api.github.com/users/norihiro-w/received_events","type":"User","site_admin":false},"body":"@nagelt What I don't understand is inconsistency of signs in residuals and Jacobian. if the residual is given as `r = external force - inner force`, Jacobian should be give as `J=dr/du=- d(inner force)/dt` with a negative sign. \r\n\r\nbut if `_localRhs` is actually used as `-r`, the expression here is correct. I thought the assembly should return `r` and not `-r`. ","created_at":"2016-09-07T13:28:05Z","updated_at":"2016-09-07T13:28:05Z","html_url":"https://github.com/ufz/ogs/pull/1340#discussion_r77821086","pull_request_url":"https://api.github.com/repos/ufz/ogs/pulls/1340","_links":{"self":{"href":"https://api.github.com/repos/ufz/ogs/pulls/comments/77821086"},"html":{"href":"https://github.com/ufz/ogs/pull/1340#discussion_r77821086"},"pull_request":{"href":"https://api.github.com/repos/ufz/ogs/pulls/1340"}}},"pull_request":{"url":"https://api.github.com/repos/ufz/ogs/pulls/1340","id":80446699,"html_url":"https://github.com/ufz/ogs/pull/1340","diff_url":"https://github.com/ufz/ogs/pull/1340.diff","patch_url":"https://github.com/ufz/ogs/pull/1340.patch","issue_url":"https://api.github.com/repos/ufz/ogs/issues/1340","number":1340,"state":"open","locked":false,"title":"Mechanics Process","user":{"login":"endJunction","id":329493,"avatar_url":"https://avatars.githubusercontent.com/u/329493?v=3","gravatar_id":"","url":"https://api.github.com/users/endJunction","html_url":"https://github.com/endJunction","followers_url":"https://api.github.com/users/endJunction/followers","following_url":"https://api.github.com/users/endJunction/following{/other_user}","gists_url":"https://api.github.com/users/endJunction/gists{/gist_id}","starred_url":"https://api.github.com/users/endJunction/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/endJunction/subscriptions","organizations_url":"https://api.github.com/users/endJunction/orgs","repos_url":"https://api.github.com/users/endJunction/repos","events_url":"https://api.github.com/users/endJunction/events{/privacy}","received_events_url":"https://api.github.com/users/endJunction/received_events","type":"User","site_admin":false},"body":"... including linear and Burger's materials.\r\n\r\nTodo:\r\n- [ ] Resolve circular deps SolidModels <-> ProcessLib; There is header file dependency because in SolidModels the ProcessLib::Parameters are requiered and the SolidModels are required by the Process itself. There are several ideas how to resolve this type of issues. To be discussed ASAP.\r\n\r\n- [ ] Documentation of benchmarks\r\n- [x] Code documentation, especially:\r\n - [x] Interface of the `SolidsBase`\r\n- [x] Update Traction and Displacement BCs (use Neumann and Dirichlet instead)\r\n- [x] Fix compilation issues.\r\n- [x] MathLib unit tests.\r\n- [x] Resolve Eigen/MSVC compilation issue.","created_at":"2016-08-08T13:00:41Z","updated_at":"2016-09-07T13:28:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"9d02c80b90d9a05cc3945b16786ac6088edde189","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/ufz/ogs/pulls/1340/commits","review_comments_url":"https://api.github.com/repos/ufz/ogs/pulls/1340/comments","review_comment_url":"https://api.github.com/repos/ufz/ogs/pulls/comments{/number}","comments_url":"https://api.github.com/repos/ufz/ogs/issues/1340/comments","statuses_url":"https://api.github.com/repos/ufz/ogs/statuses/ecf61b99115b6a97c69696e41f96dde49dc64dbb","head":{"label":"endJunction:M5","ref":"M5","sha":"ecf61b99115b6a97c69696e41f96dde49dc64dbb","user":{"login":"endJunction","id":329493,"avatar_url":"https://avatars.githubusercontent.com/u/329493?v=3","gravatar_id":"","url":"https://api.github.com/users/endJunction","html_url":"https://github.com/endJunction","followers_url":"https://api.github.com/users/endJunction/followers","following_url":"https://api.github.com/users/endJunction/following{/other_user}","gists_url":"https://api.github.com/users/endJunction/gists{/gist_id}","starred_url":"https://api.github.com/users/endJunction/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/endJunction/subscriptions","organizations_url":"https://api.github.com/users/endJunction/orgs","repos_url":"https://api.github.com/users/endJunction/repos","events_url":"https://api.github.com/users/endJunction/events{/privacy}","received_events_url":"https://api.github.com/users/endJunction/received_events","type":"User","site_admin":false},"repo":{"id":6429859,"name":"ogs","full_name":"endJunction/ogs","owner":{"login":"endJunction","id":329493,"avatar_url":"https://avatars.githubusercontent.com/u/329493?v=3","gravatar_id":"","url":"https://api.github.com/users/endJunction","html_url":"https://github.com/endJunction","followers_url":"https://api.github.com/users/endJunction/followers","following_url":"https://api.github.com/users/endJunction/following{/other_user}","gists_url":"https://api.github.com/users/endJunction/gists{/gist_id}","starred_url":"https://api.github.com/users/endJunction/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/endJunction/subscriptions","organizations_url":"https://api.github.com/users/endJunction/orgs","repos_url":"https://api.github.com/users/endJunction/repos","events_url":"https://api.github.com/users/endJunction/events{/privacy}","received_events_url":"https://api.github.com/users/endJunction/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/endJunction/ogs","description":"OGS source code","fork":true,"url":"https://api.github.com/repos/endJunction/ogs","forks_url":"https://api.github.com/repos/endJunction/ogs/forks","keys_url":"https://api.github.com/repos/endJunction/ogs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/endJunction/ogs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/endJunction/ogs/teams","hooks_url":"https://api.github.com/repos/endJunction/ogs/hooks","issue_events_url":"https://api.github.com/repos/endJunction/ogs/issues/events{/number}","events_url":"https://api.github.com/repos/endJunction/ogs/events","assignees_url":"https://api.github.com/repos/endJunction/ogs/assignees{/user}","branches_url":"https://api.github.com/repos/endJunction/ogs/branches{/branch}","tags_url":"https://api.github.com/repos/endJunction/ogs/tags","blobs_url":"https://api.github.com/repos/endJunction/ogs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/endJunction/ogs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/endJunction/ogs/git/refs{/sha}","trees_url":"https://api.github.com/repos/endJunction/ogs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/endJunction/ogs/statuses/{sha}","languages_url":"https://api.github.com/repos/endJunction/ogs/languages","stargazers_url":"https://api.github.com/repos/endJunction/ogs/stargazers","contributors_url":"https://api.github.com/repos/endJunction/ogs/contributors","subscribers_url":"https://api.github.com/repos/endJunction/ogs/subscribers","subscription_url":"https://api.github.com/repos/endJunction/ogs/subscription","commits_url":"https://api.github.com/repos/endJunction/ogs/commits{/sha}","git_commits_url":"https://api.github.com/repos/endJunction/ogs/git/commits{/sha}","comments_url":"https://api.github.com/repos/endJunction/ogs/comments{/number}","issue_comment_url":"https://api.github.com/repos/endJunction/ogs/issues/comments{/number}","contents_url":"https://api.github.com/repos/endJunction/ogs/contents/{+path}","compare_url":"https://api.github.com/repos/endJunction/ogs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/endJunction/ogs/merges","archive_url":"https://api.github.com/repos/endJunction/ogs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/endJunction/ogs/downloads","issues_url":"https://api.github.com/repos/endJunction/ogs/issues{/number}","pulls_url":"https://api.github.com/repos/endJunction/ogs/pulls{/number}","milestones_url":"https://api.github.com/repos/endJunction/ogs/milestones{/number}","notifications_url":"https://api.github.com/repos/endJunction/ogs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/endJunction/ogs/labels{/name}","releases_url":"https://api.github.com/repos/endJunction/ogs/releases{/id}","deployments_url":"https://api.github.com/repos/endJunction/ogs/deployments","created_at":"2012-10-28T17:18:48Z","updated_at":"2016-09-02T11:49:53Z","pushed_at":"2016-09-07T11:47:00Z","git_url":"git://github.com/endJunction/ogs.git","ssh_url":"git@github.com:endJunction/ogs.git","clone_url":"https://github.com/endJunction/ogs.git","svn_url":"https://github.com/endJunction/ogs","homepage":"www.opengeosys.net","size":322709,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":false,"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":"ufz:master","ref":"master","sha":"ba183be8cad0f6fcd745be7ad014fa5284c8fdea","user":{"login":"ufz","id":767517,"avatar_url":"https://avatars.githubusercontent.com/u/767517?v=3","gravatar_id":"","url":"https://api.github.com/users/ufz","html_url":"https://github.com/ufz","followers_url":"https://api.github.com/users/ufz/followers","following_url":"https://api.github.com/users/ufz/following{/other_user}","gists_url":"https://api.github.com/users/ufz/gists{/gist_id}","starred_url":"https://api.github.com/users/ufz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ufz/subscriptions","organizations_url":"https://api.github.com/users/ufz/orgs","repos_url":"https://api.github.com/users/ufz/repos","events_url":"https://api.github.com/users/ufz/events{/privacy}","received_events_url":"https://api.github.com/users/ufz/received_events","type":"Organization","site_admin":false},"repo":{"id":1701384,"name":"ogs","full_name":"ufz/ogs","owner":{"login":"ufz","id":767517,"avatar_url":"https://avatars.githubusercontent.com/u/767517?v=3","gravatar_id":"","url":"https://api.github.com/users/ufz","html_url":"https://github.com/ufz","followers_url":"https://api.github.com/users/ufz/followers","following_url":"https://api.github.com/users/ufz/following{/other_user}","gists_url":"https://api.github.com/users/ufz/gists{/gist_id}","starred_url":"https://api.github.com/users/ufz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ufz/subscriptions","organizations_url":"https://api.github.com/users/ufz/orgs","repos_url":"https://api.github.com/users/ufz/repos","events_url":"https://api.github.com/users/ufz/events{/privacy}","received_events_url":"https://api.github.com/users/ufz/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/ufz/ogs","description":"Experimental OGS-6 source code","fork":false,"url":"https://api.github.com/repos/ufz/ogs","forks_url":"https://api.github.com/repos/ufz/ogs/forks","keys_url":"https://api.github.com/repos/ufz/ogs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ufz/ogs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ufz/ogs/teams","hooks_url":"https://api.github.com/repos/ufz/ogs/hooks","issue_events_url":"https://api.github.com/repos/ufz/ogs/issues/events{/number}","events_url":"https://api.github.com/repos/ufz/ogs/events","assignees_url":"https://api.github.com/repos/ufz/ogs/assignees{/user}","branches_url":"https://api.github.com/repos/ufz/ogs/branches{/branch}","tags_url":"https://api.github.com/repos/ufz/ogs/tags","blobs_url":"https://api.github.com/repos/ufz/ogs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ufz/ogs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ufz/ogs/git/refs{/sha}","trees_url":"https://api.github.com/repos/ufz/ogs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ufz/ogs/statuses/{sha}","languages_url":"https://api.github.com/repos/ufz/ogs/languages","stargazers_url":"https://api.github.com/repos/ufz/ogs/stargazers","contributors_url":"https://api.github.com/repos/ufz/ogs/contributors","subscribers_url":"https://api.github.com/repos/ufz/ogs/subscribers","subscription_url":"https://api.github.com/repos/ufz/ogs/subscription","commits_url":"https://api.github.com/repos/ufz/ogs/commits{/sha}","git_commits_url":"https://api.github.com/repos/ufz/ogs/git/commits{/sha}","comments_url":"https://api.github.com/repos/ufz/ogs/comments{/number}","issue_comment_url":"https://api.github.com/repos/ufz/ogs/issues/comments{/number}","contents_url":"https://api.github.com/repos/ufz/ogs/contents/{+path}","compare_url":"https://api.github.com/repos/ufz/ogs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ufz/ogs/merges","archive_url":"https://api.github.com/repos/ufz/ogs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ufz/ogs/downloads","issues_url":"https://api.github.com/repos/ufz/ogs/issues{/number}","pulls_url":"https://api.github.com/repos/ufz/ogs/pulls{/number}","milestones_url":"https://api.github.com/repos/ufz/ogs/milestones{/number}","notifications_url":"https://api.github.com/repos/ufz/ogs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ufz/ogs/labels{/name}","releases_url":"https://api.github.com/repos/ufz/ogs/releases{/id}","deployments_url":"https://api.github.com/repos/ufz/ogs/deployments","created_at":"2011-05-04T14:09:57Z","updated_at":"2016-08-30T02:27:56Z","pushed_at":"2016-09-07T13:14:38Z","git_url":"git://github.com/ufz/ogs.git","ssh_url":"git@github.com:ufz/ogs.git","clone_url":"https://github.com/ufz/ogs.git","svn_url":"https://github.com/ufz/ogs","homepage":"www.opengeosys.org","size":19731,"stargazers_count":20,"watchers_count":20,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":51,"mirror_url":null,"open_issues_count":93,"forks":51,"open_issues":93,"watchers":20,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/ufz/ogs/pulls/1340"},"html":{"href":"https://github.com/ufz/ogs/pull/1340"},"issue":{"href":"https://api.github.com/repos/ufz/ogs/issues/1340"},"comments":{"href":"https://api.github.com/repos/ufz/ogs/issues/1340/comments"},"review_comments":{"href":"https://api.github.com/repos/ufz/ogs/pulls/1340/comments"},"review_comment":{"href":"https://api.github.com/repos/ufz/ogs/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/ufz/ogs/pulls/1340/commits"},"statuses":{"href":"https://api.github.com/repos/ufz/ogs/statuses/ecf61b99115b6a97c69696e41f96dde49dc64dbb"}}}}
{"actor":{"display_login":"norihiro-w"}}