{"action":"created","comment":{"url":"https://api.github.com/repos/dealii/dealii/pulls/comments/214511642","pull_request_review_id":151591286,"id":214511642,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxNDUxMTY0Mg==","diff_hunk":"@@ -709,13 +731,344 @@ namespace Differentiation\n        */\n       static unsigned int n_helpers;\n \n+      //@}\n+\n     }; // class ADHelperBase\n \n \n+\n+    /**\n+     * A general helper class that facilitates the evaluation of a vector of\n+     * functions, as well as its first derivatives (their Jacobian).\n+     * This class would typically be used to compute the linearization of a\n+     * set of local nonlinear equations, but can also be used as the basis of\n+     * the linearization of the residual vector defined on the level of a finite\n+     * element.\n+     *\n+     * @note When using the cell-level taped AD methods in 3d and/or with higher\n+     * order elements, it is incredibly easy to exceed the tape buffer size.\n+     * These buffer variables dictate the amount of memory allocated to a tape\n+     * before it is written to file (at a significant performance loss).\n+     * Therefore for ADOL-C taped AD numbers, it may be desirable to\n+     * create a file \".adolcrc\" in the program run directory and set the buffer\n+     * size therein (as is suggested by the ADOL-C manual). For example, the\n+     * following settings increase the default buffer size by 128 times:\n+     * @code\n+     * \"OBUFSIZE\" \"67108864\"\n+     * \"LBUFSIZE\" \"67108864\"\n+     * \"VBUFSIZE\" \"67108864\"\n+     * \"TBUFSIZE\" \"67108864\"\n+     * @endcode\n+     * Note that the quotation marks are mandatory.\n+     * An alternative approach that allows for run-time decision making is to\n+     * use the set_tape_buffer_sizes() function before starting taping (as\n+     * done via the start_recording_operations() function).\n+     *\n+     * @warning ADOL-C does not support the standard threading models used by\n+     * deal.II, so this class should @b not be embedded within a multithreaded\n+     * function when using ADOL-C number types. It is, however, suitable for use\n+     * in both serial and MPI routines.\n+     *\n+     * @author Jean-Paul Pelteret, 2016, 2017, 2018\n+     */\n+    template <enum AD::NumberTypes ADNumberTypeCode,\n+              typename ScalarType = double>\n+    class ADHelperCellLevelBase\n+      : public ADHelperBase<ADNumberTypeCode, ScalarType>\n+    {\n+    public:\n+      /**\n+       * Type definition for the floating point number type that are used in,\n+       * and result from, all computations.\n+       */\n+      using scalar_type =\n+        typename ADHelperBase<ADNumberTypeCode, ScalarType>::scalar_type;\n+\n+      /**\n+       * Type definition for the auto-differentiation number type that is used\n+       * in all computations.\n+       */\n+      using ad_type =\n+        typename ADHelperBase<ADNumberTypeCode, ScalarType>::ad_type;\n+\n+      /**\n+       * @name Constructor / destructor\n+       */\n+      //@{\n+\n+      /**\n+       * The constructor for the class.\n+       *\n+       * @param[in] n_independent_variables The number of independent variables\n+       * that will be used in the definition of the functions that it is\n+       * desired to compute the sensitivities of. In the computation of\n+       * $\\mathbf{f}(\\mathbf{X})$, this will be the number of inputs\n+       * $\\mathbf{X}$, i.e. the dimension of the range space.\n+       * @param[in] n_dependent_variables The number of scalar functions to be\n+       * defined that will have a sensitivity to the given independent\n+       * variables. In the computation of $\\mathbf{f}(\\mathbf{X})$, this will\n+       * be the number of outputs $\\mathbf{f}$, i.e. the dimension of the\n+       * domain or image space.\n+       */\n+      ADHelperCellLevelBase(const unsigned int n_independent_variables,\n+                            const unsigned int n_dependent_variables);\n+\n+      /**\n+       * Destructor\n+       */\n+      virtual ~ADHelperCellLevelBase();\n+\n+      //@}\n+\n+      /**\n+       * @name Independent variables\n+       */\n+      //@{\n+\n+      /**\n+       * Register the complete set of independent variables $\\mathbf{X}$ that\n+       * represent the local degree-of-freedom values.\n+       *\n+       * @param[in] dof_values A vector field associated with local\n+       * degree-of-freedom values on the current finite element. These define\n+       * the values of all independent variables. When considering taped AD\n+       * numbers with branching functions, to avoid potential issues with branch\n+       * switching it may be a good idea to choose these values close to those\n+       * that will be later evaluated and linearized around.\n+       *\n+       * @note The input value type must correspond to this class's number type.\n+       * So if this class is templated on type double then the number type\n+       * associated with value must also be of type double.\n+       *\n+       * @note For taped AD numbers, this operation is only valid in recording mode.\n+       */\n+      void\n+      register_dof_values(const std::vector<scalar_type> &dof_values);\n+\n+      /**\n+       * Register the complete set of independent variables $\\mathbf{X}$ that\n+       * represent the local degree-of-freedom values.\n+       *\n+       * @param[in] values A global field from which the values of all\n+       * independent variables will be extracted. This typically will be the\n+       * solution vector around at which point a residual vector is to be\n+       * computed and around which linearization is to occur.\n+       * When considering taped AD numbers with branching functions, to avoid\n+       * potential issues with branch switching it may be a good idea to choose\n+       * these values close to those that will be later evaluated and linearized\n+       * around.\n+       * @param[in] local_dof_indices A vector of degree-of-freedom indices from\n+       * which to extract the local degree-of-freedom values.\n+       *\n+       * @note For taped AD numbers, this operation is only valid in recording mode.\n+       */\n+      template <typename VectorType>\n+      void\n+      register_dof_values(\n+        const VectorType &                                  values,\n+        const std::vector<dealii::types::global_dof_index> &local_dof_indices);\n+\n+      /**\n+       * Returns the complete set of degree-of-freedom values as represented by\n+       * auto-differentiable numbers. These are the independent\n+       * variables $\\mathbf{X}$ about which the solution is linearized.\n+       *\n+       * It is indicated to the AD library that operations performed with these\n+       * numbers are to be tracked, so they are considered \"sensitive\"\n+       * variables. The values of the components of the returned object are\n+       * initialized to the values set with register_independent_variable().\n+       *\n+       * @return An object of auto-differentiable type numbers representing the\n+       * local degree-of-freedom values.\n+       *\n+       * @note For taped AD numbers, this operation is only valid in recording mode.\n+       */\n+      const std::vector<ad_type> &\n+      get_sensitive_dof_values();\n+\n+      //@}\n+\n+      /**\n+       * @name Post-processing\n+       */\n+      //@{\n+\n+      /*\n+       * Returns the complete set of degree-of-freedom values of\n+       * auto-differentiable number type. These store the same scalar values as\n+       * the independent variables $\\mathbf{X}$ about which the solution is\n+       * linearized.\n+       *\n+       * Operations performed with these numbers are not tracked by the AD,\n+       * libraries so they are considered \"non-sensitive\" variables.\n+       * The values of the components of the returned object are initialized to\n+       * the values set with register_dof_values().\n+       *\n+       * @return An object of auto-differentiable type numbers representing the\n+       * local degree-of-freedom values.\n+       *\n+       * @note This function is not typically used within the context of automatic\n+       * differentation computations, but can make performing substutitions in\n+       * other post-processing computations more straight forward.\n+       *\n+       * @note For taped AD numbers, this operation is only valid outside recording mode.\n+       */\n+      std::vector<ad_type>\n+      get_non_sensitive_dof_values() const;\n+\n+      //@}\n+\n+      /**\n+       * @name Operations specific to taped mode: Reusing tapes\n+       */\n+      //@{\n+\n+      /**\n+       * Set the values for the independent variables $\\mathbf{X}$, i.e. the\n+       * linearization point.\n+       *\n+       * @param[in] dof_values A vector field associated with local\n+       * degree-of-freedom values on the current finite element. These define\n+       * the values of all independent variables.\n+       *\n+       * @note The input value type must correspond to this class's number type.\n+       * So if this class is templated on type double then the number type\n+       * associated with value must also be of type double.\n+       *\n+       * @note If the keep flag has been set when start_recording_operations() is\n+       * called then the tape is immediately usable after creation, and the\n+       * values of the independent variables set by register_dof_values() are\n+       * those at which the function is to be evaluated. In this case, a call to\n+       * this function is not strictly necessary.\n+       */\n+      void\n+      set_dof_values(const std::vector<scalar_type> &dof_values);\n+\n+      /**\n+       * Set the values for the independent variables $\\mathbf{X}$, i.e. the\n+       * linearization point.\n+       *\n+       * @param[in] values A vector field from which the values of all\n+       * independent variables is to be extracted.\n+       * @param[in] local_dof_indices A vector of degree-of-freedom indices from\n+       * which to extract the local degree-of-freedom values.\n+       *\n+       * @note If the keep flag has been set when start_recording_operations() is\n+       * called then the tape is immediately usable after creation, and the\n+       * values of the independent variables set by register_dof_values() are\n+       * those at which the function is to be evaluated. In this case, a call to\n+       * this function is not strictly necessary.\n+       */\n+      template <typename VectorType>\n+      void\n+      set_dof_values(\n+        const VectorType &                                  values,\n+        const std::vector<dealii::types::global_dof_index> &local_dof_indices);\n+\n+      //@}\n+\n+      /**\n+       * @name Dependent variables\n+       */\n+      //@{\n+\n+      /**\n+       * Computes the value of the residual vector field\n+       * $\\mathbf{r}(\\mathbf{X})$.","path":"include/deal.II/differentiation/ad/ad_helpers.h","position":330,"original_position":330,"commit_id":"9e779a1807e38e38b2031abb5452c1ff0f87dc67","original_commit_id":"9e779a1807e38e38b2031abb5452c1ff0f87dc67","user":{"login":"jppelteret","id":10460610,"node_id":"MDQ6VXNlcjEwNDYwNjEw","avatar_url":"https://avatars0.githubusercontent.com/u/10460610?v=4","gravatar_id":"","url":"https://api.github.com/users/jppelteret","html_url":"https://github.com/jppelteret","followers_url":"https://api.github.com/users/jppelteret/followers","following_url":"https://api.github.com/users/jppelteret/following{/other_user}","gists_url":"https://api.github.com/users/jppelteret/gists{/gist_id}","starred_url":"https://api.github.com/users/jppelteret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jppelteret/subscriptions","organizations_url":"https://api.github.com/users/jppelteret/orgs","repos_url":"https://api.github.com/users/jppelteret/repos","events_url":"https://api.github.com/users/jppelteret/events{/privacy}","received_events_url":"https://api.github.com/users/jppelteret/received_events","type":"User","site_admin":false},"body":"Actually, I'm not happy with making this change with the current class interface. \r\n\r\nThe problem is that the size of the returned objects (for `ADHelperVariationalFormulation` and `ADHelperResidualLinearisation`) differ. For the former, the residual vector has length `n_independent_variables` (because its the first derivative of a scalar function, the only dependent variable) and the latter has length `n_dependent_variables` . \r\n\r\nThe only way I see this working (i.e. having the output passed as an argument) is if we have another set of virtual functions that return the expected sizes of these objects. If you like this idea then do you have a suggestion for a name (I think something like `m()` and `n()` is not descriptive, and maybe `n_rows_residual`, `n_rows_linearization` and `n_cols_linearization` is too verbose.","created_at":"2018-09-01T11:40:24Z","updated_at":"2018-09-01T11:40:25Z","html_url":"https://github.com/dealii/dealii/pull/6976#discussion_r214511642","pull_request_url":"https://api.github.com/repos/dealii/dealii/pulls/6976","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/dealii/dealii/pulls/comments/214511642"},"html":{"href":"https://github.com/dealii/dealii/pull/6976#discussion_r214511642"},"pull_request":{"href":"https://api.github.com/repos/dealii/dealii/pulls/6976"}},"in_reply_to_id":214192962},"pull_request":{"url":"https://api.github.com/repos/dealii/dealii/pulls/6976","id":203979385,"node_id":"MDExOlB1bGxSZXF1ZXN0MjAzOTc5Mzg1","html_url":"https://github.com/dealii/dealii/pull/6976","diff_url":"https://github.com/dealii/dealii/pull/6976.diff","patch_url":"https://github.com/dealii/dealii/pull/6976.patch","issue_url":"https://api.github.com/repos/dealii/dealii/issues/6976","number":6976,"state":"open","locked":false,"title":"AD Helpers: Introduce base class for cell-level AD helper classes","user":{"login":"jppelteret","id":10460610,"node_id":"MDQ6VXNlcjEwNDYwNjEw","avatar_url":"https://avatars0.githubusercontent.com/u/10460610?v=4","gravatar_id":"","url":"https://api.github.com/users/jppelteret","html_url":"https://github.com/jppelteret","followers_url":"https://api.github.com/users/jppelteret/followers","following_url":"https://api.github.com/users/jppelteret/following{/other_user}","gists_url":"https://api.github.com/users/jppelteret/gists{/gist_id}","starred_url":"https://api.github.com/users/jppelteret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jppelteret/subscriptions","organizations_url":"https://api.github.com/users/jppelteret/orgs","repos_url":"https://api.github.com/users/jppelteret/repos","events_url":"https://api.github.com/users/jppelteret/events{/privacy}","received_events_url":"https://api.github.com/users/jppelteret/received_events","type":"User","site_admin":false},"body":"Blocked by #6975\r\n\r\n**TODO**:\r\n- [x] Update documentation (headers)\r\n- [x] Update documentation (source)\r\n- [x] Check validity of discussions wrt. both `ADOL-C` and `Sacado`\r\n- [x] Proofread","created_at":"2018-07-25T22:19:18Z","updated_at":"2018-09-01T11:40:25Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a9f9f2618967a7ba079b8db78dbe1fed36968540","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1001198468,"node_id":"MDU6TGFiZWwxMDAxMTk4NDY4","url":"https://api.github.com/repos/dealii/dealii/labels/6th%20deal.II%20Workshop","name":"6th deal.II Workshop","color":"8ca5f2","default":false},{"id":667919354,"node_id":"MDU6TGFiZWw2Njc5MTkzNTQ=","url":"https://api.github.com/repos/dealii/dealii/labels/Automatic%20/%20Symbolic%20Differentiation","name":"Automatic / Symbolic Differentiation","color":"f9c0ca","default":false},{"id":252577276,"node_id":"MDU6TGFiZWwyNTI1NzcyNzY=","url":"https://api.github.com/repos/dealii/dealii/labels/RFC","name":"RFC","color":"829ce0","default":false}],"milestone":{"url":"https://api.github.com/repos/dealii/dealii/milestones/6","html_url":"https://github.com/dealii/dealii/milestone/6","labels_url":"https://api.github.com/repos/dealii/dealii/milestones/6/labels","id":2986356,"node_id":"MDk6TWlsZXN0b25lMjk4NjM1Ng==","number":6,"title":"Release 9.1","description":null,"creator":{"login":"kronbichler","id":8276200,"node_id":"MDQ6VXNlcjgyNzYyMDA=","avatar_url":"https://avatars0.githubusercontent.com/u/8276200?v=4","gravatar_id":"","url":"https://api.github.com/users/kronbichler","html_url":"https://github.com/kronbichler","followers_url":"https://api.github.com/users/kronbichler/followers","following_url":"https://api.github.com/users/kronbichler/following{/other_user}","gists_url":"https://api.github.com/users/kronbichler/gists{/gist_id}","starred_url":"https://api.github.com/users/kronbichler/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kronbichler/subscriptions","organizations_url":"https://api.github.com/users/kronbichler/orgs","repos_url":"https://api.github.com/users/kronbichler/repos","events_url":"https://api.github.com/users/kronbichler/events{/privacy}","received_events_url":"https://api.github.com/users/kronbichler/received_events","type":"User","site_admin":false},"open_issues":68,"closed_issues":35,"state":"open","created_at":"2017-12-18T14:02:58Z","updated_at":"2018-08-27T03:10:36Z","due_on":null,"closed_at":null},"commits_url":"https://api.github.com/repos/dealii/dealii/pulls/6976/commits","review_comments_url":"https://api.github.com/repos/dealii/dealii/pulls/6976/comments","review_comment_url":"https://api.github.com/repos/dealii/dealii/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dealii/dealii/issues/6976/comments","statuses_url":"https://api.github.com/repos/dealii/dealii/statuses/9e779a1807e38e38b2031abb5452c1ff0f87dc67","head":{"label":"jppelteret:ad-helpers_02","ref":"ad-helpers_02","sha":"9e779a1807e38e38b2031abb5452c1ff0f87dc67","user":{"login":"jppelteret","id":10460610,"node_id":"MDQ6VXNlcjEwNDYwNjEw","avatar_url":"https://avatars0.githubusercontent.com/u/10460610?v=4","gravatar_id":"","url":"https://api.github.com/users/jppelteret","html_url":"https://github.com/jppelteret","followers_url":"https://api.github.com/users/jppelteret/followers","following_url":"https://api.github.com/users/jppelteret/following{/other_user}","gists_url":"https://api.github.com/users/jppelteret/gists{/gist_id}","starred_url":"https://api.github.com/users/jppelteret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jppelteret/subscriptions","organizations_url":"https://api.github.com/users/jppelteret/orgs","repos_url":"https://api.github.com/users/jppelteret/repos","events_url":"https://api.github.com/users/jppelteret/events{/privacy}","received_events_url":"https://api.github.com/users/jppelteret/received_events","type":"User","site_admin":false},"repo":{"id":40106037,"node_id":"MDEwOlJlcG9zaXRvcnk0MDEwNjAzNw==","name":"dealii","full_name":"jppelteret/dealii","owner":{"login":"jppelteret","id":10460610,"node_id":"MDQ6VXNlcjEwNDYwNjEw","avatar_url":"https://avatars0.githubusercontent.com/u/10460610?v=4","gravatar_id":"","url":"https://api.github.com/users/jppelteret","html_url":"https://github.com/jppelteret","followers_url":"https://api.github.com/users/jppelteret/followers","following_url":"https://api.github.com/users/jppelteret/following{/other_user}","gists_url":"https://api.github.com/users/jppelteret/gists{/gist_id}","starred_url":"https://api.github.com/users/jppelteret/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jppelteret/subscriptions","organizations_url":"https://api.github.com/users/jppelteret/orgs","repos_url":"https://api.github.com/users/jppelteret/repos","events_url":"https://api.github.com/users/jppelteret/events{/privacy}","received_events_url":"https://api.github.com/users/jppelteret/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jppelteret/dealii","description":"The development repository for the deal.II finite element library.","fork":true,"url":"https://api.github.com/repos/jppelteret/dealii","forks_url":"https://api.github.com/repos/jppelteret/dealii/forks","keys_url":"https://api.github.com/repos/jppelteret/dealii/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jppelteret/dealii/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jppelteret/dealii/teams","hooks_url":"https://api.github.com/repos/jppelteret/dealii/hooks","issue_events_url":"https://api.github.com/repos/jppelteret/dealii/issues/events{/number}","events_url":"https://api.github.com/repos/jppelteret/dealii/events","assignees_url":"https://api.github.com/repos/jppelteret/dealii/assignees{/user}","branches_url":"https://api.github.com/repos/jppelteret/dealii/branches{/branch}","tags_url":"https://api.github.com/repos/jppelteret/dealii/tags","blobs_url":"https://api.github.com/repos/jppelteret/dealii/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jppelteret/dealii/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jppelteret/dealii/git/refs{/sha}","trees_url":"https://api.github.com/repos/jppelteret/dealii/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jppelteret/dealii/statuses/{sha}","languages_url":"https://api.github.com/repos/jppelteret/dealii/languages","stargazers_url":"https://api.github.com/repos/jppelteret/dealii/stargazers","contributors_url":"https://api.github.com/repos/jppelteret/dealii/contributors","subscribers_url":"https://api.github.com/repos/jppelteret/dealii/subscribers","subscription_url":"https://api.github.com/repos/jppelteret/dealii/subscription","commits_url":"https://api.github.com/repos/jppelteret/dealii/commits{/sha}","git_commits_url":"https://api.github.com/repos/jppelteret/dealii/git/commits{/sha}","comments_url":"https://api.github.com/repos/jppelteret/dealii/comments{/number}","issue_comment_url":"https://api.github.com/repos/jppelteret/dealii/issues/comments{/number}","contents_url":"https://api.github.com/repos/jppelteret/dealii/contents/{+path}","compare_url":"https://api.github.com/repos/jppelteret/dealii/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jppelteret/dealii/merges","archive_url":"https://api.github.com/repos/jppelteret/dealii/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jppelteret/dealii/downloads","issues_url":"https://api.github.com/repos/jppelteret/dealii/issues{/number}","pulls_url":"https://api.github.com/repos/jppelteret/dealii/pulls{/number}","milestones_url":"https://api.github.com/repos/jppelteret/dealii/milestones{/number}","notifications_url":"https://api.github.com/repos/jppelteret/dealii/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jppelteret/dealii/labels{/name}","releases_url":"https://api.github.com/repos/jppelteret/dealii/releases{/id}","deployments_url":"https://api.github.com/repos/jppelteret/dealii/deployments","created_at":"2015-08-03T05:08:52Z","updated_at":"2018-08-30T14:31:30Z","pushed_at":"2018-08-30T14:31:25Z","git_url":"git://github.com/jppelteret/dealii.git","ssh_url":"git@github.com:jppelteret/dealii.git","clone_url":"https://github.com/jppelteret/dealii.git","svn_url":"https://github.com/jppelteret/dealii","homepage":"http://www.dealii.org/","size":201040,"stargazers_count":0,"watchers_count":0,"language":"C++","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"dealii:master","ref":"master","sha":"6fcfe3f5989a8564d72a00abf576226d496b56b0","user":{"login":"dealii","id":7506070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc1MDYwNzA=","avatar_url":"https://avatars3.githubusercontent.com/u/7506070?v=4","gravatar_id":"","url":"https://api.github.com/users/dealii","html_url":"https://github.com/dealii","followers_url":"https://api.github.com/users/dealii/followers","following_url":"https://api.github.com/users/dealii/following{/other_user}","gists_url":"https://api.github.com/users/dealii/gists{/gist_id}","starred_url":"https://api.github.com/users/dealii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dealii/subscriptions","organizations_url":"https://api.github.com/users/dealii/orgs","repos_url":"https://api.github.com/users/dealii/repos","events_url":"https://api.github.com/users/dealii/events{/privacy}","received_events_url":"https://api.github.com/users/dealii/received_events","type":"Organization","site_admin":false},"repo":{"id":21943980,"node_id":"MDEwOlJlcG9zaXRvcnkyMTk0Mzk4MA==","name":"dealii","full_name":"dealii/dealii","owner":{"login":"dealii","id":7506070,"node_id":"MDEyOk9yZ2FuaXphdGlvbjc1MDYwNzA=","avatar_url":"https://avatars3.githubusercontent.com/u/7506070?v=4","gravatar_id":"","url":"https://api.github.com/users/dealii","html_url":"https://github.com/dealii","followers_url":"https://api.github.com/users/dealii/followers","following_url":"https://api.github.com/users/dealii/following{/other_user}","gists_url":"https://api.github.com/users/dealii/gists{/gist_id}","starred_url":"https://api.github.com/users/dealii/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dealii/subscriptions","organizations_url":"https://api.github.com/users/dealii/orgs","repos_url":"https://api.github.com/users/dealii/repos","events_url":"https://api.github.com/users/dealii/events{/privacy}","received_events_url":"https://api.github.com/users/dealii/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/dealii/dealii","description":"The development repository for the deal.II finite element library.","fork":false,"url":"https://api.github.com/repos/dealii/dealii","forks_url":"https://api.github.com/repos/dealii/dealii/forks","keys_url":"https://api.github.com/repos/dealii/dealii/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dealii/dealii/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dealii/dealii/teams","hooks_url":"https://api.github.com/repos/dealii/dealii/hooks","issue_events_url":"https://api.github.com/repos/dealii/dealii/issues/events{/number}","events_url":"https://api.github.com/repos/dealii/dealii/events","assignees_url":"https://api.github.com/repos/dealii/dealii/assignees{/user}","branches_url":"https://api.github.com/repos/dealii/dealii/branches{/branch}","tags_url":"https://api.github.com/repos/dealii/dealii/tags","blobs_url":"https://api.github.com/repos/dealii/dealii/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dealii/dealii/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dealii/dealii/git/refs{/sha}","trees_url":"https://api.github.com/repos/dealii/dealii/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dealii/dealii/statuses/{sha}","languages_url":"https://api.github.com/repos/dealii/dealii/languages","stargazers_url":"https://api.github.com/repos/dealii/dealii/stargazers","contributors_url":"https://api.github.com/repos/dealii/dealii/contributors","subscribers_url":"https://api.github.com/repos/dealii/dealii/subscribers","subscription_url":"https://api.github.com/repos/dealii/dealii/subscription","commits_url":"https://api.github.com/repos/dealii/dealii/commits{/sha}","git_commits_url":"https://api.github.com/repos/dealii/dealii/git/commits{/sha}","comments_url":"https://api.github.com/repos/dealii/dealii/comments{/number}","issue_comment_url":"https://api.github.com/repos/dealii/dealii/issues/comments{/number}","contents_url":"https://api.github.com/repos/dealii/dealii/contents/{+path}","compare_url":"https://api.github.com/repos/dealii/dealii/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dealii/dealii/merges","archive_url":"https://api.github.com/repos/dealii/dealii/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dealii/dealii/downloads","issues_url":"https://api.github.com/repos/dealii/dealii/issues{/number}","pulls_url":"https://api.github.com/repos/dealii/dealii/pulls{/number}","milestones_url":"https://api.github.com/repos/dealii/dealii/milestones{/number}","notifications_url":"https://api.github.com/repos/dealii/dealii/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dealii/dealii/labels{/name}","releases_url":"https://api.github.com/repos/dealii/dealii/releases{/id}","deployments_url":"https://api.github.com/repos/dealii/dealii/deployments","created_at":"2014-07-17T14:00:26Z","updated_at":"2018-09-01T00:04:40Z","pushed_at":"2018-09-01T04:43:55Z","git_url":"git://github.com/dealii/dealii.git","ssh_url":"git@github.com:dealii/dealii.git","clone_url":"https://github.com/dealii/dealii.git","svn_url":"https://github.com/dealii/dealii","homepage":"http://www.dealii.org/","size":201079,"stargazers_count":365,"watchers_count":365,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":318,"mirror_url":null,"archived":false,"open_issues_count":296,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":318,"open_issues":296,"watchers":365,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dealii/dealii/pulls/6976"},"html":{"href":"https://github.com/dealii/dealii/pull/6976"},"issue":{"href":"https://api.github.com/repos/dealii/dealii/issues/6976"},"comments":{"href":"https://api.github.com/repos/dealii/dealii/issues/6976/comments"},"review_comments":{"href":"https://api.github.com/repos/dealii/dealii/pulls/6976/comments"},"review_comment":{"href":"https://api.github.com/repos/dealii/dealii/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dealii/dealii/pulls/6976/commits"},"statuses":{"href":"https://api.github.com/repos/dealii/dealii/statuses/9e779a1807e38e38b2031abb5452c1ff0f87dc67"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"jppelteret"}}