{"action":"created","comment":{"url":"https://api.github.com/repos/dealii/dealii/pulls/comments/137263063","pull_request_review_id":60905619,"id":137263063,"diff_hunk":"@@ -0,0 +1,476 @@\n+//-----------------------------------------------------------\n+//\n+//    Copyright (C) 2017 by the deal.II authors\n+//\n+//    This file is part of the deal.II library.\n+//\n+//    The deal.II library is free software; you can use it, redistribute\n+//    it, and/or modify it under the terms of the GNU Lesser General\n+//    Public License as published by the Free Software Foundation; either\n+//    version 2.1 of the License, or (at your option) any later version.\n+//    The full text of the license can be found in the file LICENSE at\n+//    the top level of the deal.II distribution.\n+//\n+//---------------------------------------------------------------\n+\n+#ifndef dealii_sundials_ida_interface_h\n+#define dealii_sundials_ida_interface_h\n+\n+#include <deal.II/base/config.h>\n+#ifdef DEAL_II_WITH_SUNDIALS\n+\n+#include <deal.II/base/logstream.h>\n+#include <deal.II/base/exceptions.h>\n+#include <deal.II/base/parameter_handler.h>\n+#include <deal.II/base/conditional_ostream.h>\n+#include <deal.II/base/mpi.h>\n+#include <deal.II/lac/vector.h>\n+#include <deal.II/lac/vector_view.h>\n+\n+\n+#include <ida/ida.h>\n+#include <ida/ida_spils.h>\n+#include <ida/ida_spgmr.h>\n+#include <ida/ida_spbcgs.h>\n+#include <ida/ida_sptfqmr.h>\n+#include <nvector/nvector_serial.h>\n+#include <sundials/sundials_math.h>\n+#include <sundials/sundials_types.h>\n+\n+#include <memory>\n+\n+\n+DEAL_II_NAMESPACE_OPEN\n+\n+namespace SUNDIALS\n+{\n+\n+  /** Interface to SUNDIALS IDA library.\n+   *\n+   * The class IDAInterface is a wrapper to the Implicit\n+   * Differential-Algebraic solver which is a general purpose solver for\n+   * systems of Differential-Algebraic Equations (DAEs).\n+   *\n+   * The user has to provide the implmentation of the following std::functions:\n+   *  - create_new_vector;\n+   *  - residual;\n+   *  - setup_jacobian;\n+   *  - solve_jacobian_system;\n+   *  - output_step;\n+   *  - solver_should_restart;\n+   *  - differential_components.\n+   *\n+   * Citing from the SUNDIALS documentation:\n+   *\n+   *   Consider a system of Differential-Algebraic Equations written in the\n+   *   general form\n+   *\n+   * \\f[\n+   *   \\begin{cases}\n+   *       F(t,y,\\dot y) = 0\\, , \\\\\n+   *       y(t_0) = y_0\\, , \\\\\n+   *       \\dot y (t_0) = \\dot y_0\\, .\n+   *   \\end{cases}\n+   * \\f]\n+   *\n+   * where \\f$y,\\dot y\\f$ are vectors in \\f$\\R^n\\f$, \\f$t\\f$ is often the time (but can\n+   * also be a parametric quantity), and\n+   * \\f$F:\\R\\times\\R^n\\times\\R^n\\rightarrow\\R^n\\f$. Such problem is solved\n+   * using Newton iteration augmented with a line search global\n+   * strategy. The integration method used in ida is the variable-order,\n+   * variable-coefficient BDF (Backward Differentiation Formula), in\n+   * fixed-leading-coefficient. The method order ranges from 1 to 5, with\n+   * the BDF of order \\f$q\\f$ given by the multistep formula\n+   *\n+   * \\f[\n+   *   \\sum\\limits_{i=0}^q \\alpha_{n,i}\\,y_{n-i}=h_n\\,\\dot y_n\\, ,\n+   *   \\label{eq:bdf}\n+   * \\f]\n+   *\n+   * where \\f$y_n\\f$ and \\f$\\dot y_n\\f$ are the computed approximations of \\f$y(t_n)\\f$\n+   * and \\f$\\dot y(t_n)\\f$, respectively, and the step size is\n+   * \\f$h_n=t_n-t_{n-1}\\f$. The coefficients \\f$\\alpha_{n,i}\\f$ are uniquely\n+   * determined by the order \\f$q\\f$, and the history of the step sizes. The\n+   * application of the BDF method to the DAE system results in a nonlinear algebraic\n+   * system to be solved at each time step:\n+   *\n+   * \\f[\n+   *   G(y_n)\\equiv F\\left(t_n,y_n,\\dfrac{1}{h_n}\\sum\\limits_{i=0}^q \\alpha_{n,i}\\,y_{n-i}\\right)=0\\, .\n+   *   \\label{eq:nonlinear}\n+   * \\end{equation}\n+   * The Newton method leads to a linear system of the form\n+   * \\begin{equation}\n+   *   J[y_{n(m+1)}-y_{n(m)}]=-G(y_{n(m)})\\, ,\n+   *   \\label{eq:linear}\n+   * \\f]\n+   *\n+   * where \\f$y_{n(m)}\\f$ is the \\f$m\\f$-th approximation to \\f$y_n\\f$, \\f$J\\f$ is the approximation of the system Jacobian\n+   *\n+   * \\f[\n+   *   J=\\dfrac{\\partial G}{\\partial y} = \\dfrac{\\partial F}{\\partial y} + \\alpha \\dfrac{\\partial F}{\\partial \\dot y}\\, ,\n+   *   \\label{eq:jacobian}\n+   * \\f]\n+   *\n+   * and \\f$\\alpha = \\alpha_{n,0}/h_n\\f$. It is worthing metioning that the\n+   * scalar \\f$\\alpha\\f$ changes whenever the step size or method order\n+   * changes.\n+   *\n+   * @author Luca Heltai, Alberto Sartori, 2017.\n+   */\n+  template<typename VectorType=Vector<double> >\n+  class IDAInterface\n+  {\n+  public:\n+\n+    /**\n+     * Constructor. It is possible to fine tune the SUNDIALS IDA solver by tweaking some of\n+     * the input parameters.\n+     *\n+     * IDA is a Differential Algebraic solver. As such, it requires initial conditions also for\n+     * the first order derivatives. If you do not provide consistent initial conditions, (i.e.,\n+     * conditions for which F(y_dot(0), y(0), 0) = 0), you can ask SUNDIALS to compute initial\n+     * conditions for you by using the `ic_type` parameter at construction time.\n+     *\n+     * You have three options\n+     * -  none: do not try to make initial conditions consistent.\n+     * -  use_y_diff: compute the algebraic components of y and differential\n+     *    components of y_dot, given the differential components of y.\n+     *    This option requires that the user specifies differential and\n+     *    algebraic components in the function get_differential_components.\n+     * -  use_y_dot: compute all components of y, given y_dot.\n+     *\n+     * Notice that a Newton solver is used for this computation. The Newton solver parameters\n+     * can be tweaked by acting on `ic_alpha` and `ic_max_iter`.\n+     *\n+     * If you reset the solver at some point, you may want to select a different computation\n+     * for the initial conditions after reset. Say, for example, that you have refined a grid,\n+     * and after transferring the solution to the new grid, the initial conditions are no longer\n+     * consistent. Then you can choose how these are made consistent, using the same three\n+     * options that you used for the initial conditions in `reset_type`.\n+     *\n+     * @param mpi_comm MPI communicator\n+     * @param initial_time Initial time\n+     * @param final_time Final time\n+     * @param initial_step_size Initial step size\n+     * @param min_step_size Minimum step size\n+     * @param abs_tol Absolute error tolerance\n+     * @param rel_tol Relative error tolerance\n+     * @param max_order Maximum BDF order\n+     * @param output_period Time interval between each output\n+     * @param ignore_algebraic_terms_for_errors Ignore algebraic terms for error computations\n+     * @param ic_type Initial condition type\n+     * @param reset_type Initial condition type after restart\n+     * @param ic_alpha Initial condition Newton parameter\n+     * @param ic_max_iter Initial condition Newton max iterations\n+     * @param max_non_linear_iterations Maximum number of nonlinear iterations\n+     * @param verbose Show output of time steps\n+     * @param use_local_tolerances Use local tolerances\n+     */\n+    IDAInterface(const MPI_Comm mpi_comm = MPI_COMM_WORLD,\n+                 const double &initial_time = 0.0,\n+                 const double &final_time = 1.0,\n+                 const double &initial_step_size = 1e-4,\n+                 const double &min_step_size = 1e-6,\n+                 const double &abs_tol = 1e-6,\n+                 const double &rel_tol = 1e-5,\n+                 const unsigned int &max_order = 5,\n+                 const double &output_period = .1,\n+                 const bool &ignore_algebraic_terms_for_errors = true,\n+                 const std::string &ic_type = \"use_y_diff\",\n+                 const std::string &reset_type = \"use_y_dot\",\n+                 const double &ic_alpha = .33,\n+                 const unsigned int &ic_max_iter = 5,\n+                 const unsigned int &max_non_linear_iterations = 10,\n+                 const bool &verbose = true,\n+                 const bool &use_local_tolerances = false);\n+\n+    /**\n+     * House cleaning.\n+     */\n+    ~IDAInterface();\n+\n+    /**\n+     * Add all internal parameters to the given ParameterHandler object. When\n+     * the paramaters are parsed from a file, the internal parameters are automatically\n+     * updated.\n+     *\n+     * The following parameters are declared:\n+     *\n+     * @code\n+     * set Absolute error tolerance                      = 0.000001\n+     * set Final time                                    = 1.000000\n+     * set Ignore algebraic terms for error computations = true\n+     * set Initial condition Newton max iterations       = 5\n+     * set Initial condition Newton parameter            = 0.330000\n+     * set Initial condition type                        = use_y_diff\n+     * set Initial condition type after restart          = use_y_dot\n+     * set Initial step size                             = 0.000100\n+     * set Initial time                                  = 0.000000\n+     * set Maximum number of nonlinear iterations        = 10\n+     * set Maximum order of BDF                          = 5\n+     * set Min step size                                 = 0.000001\n+     * set Relative error tolerance                      = 0.000010\n+     * set Show output of time steps                     = true\n+     * set Time units between each output                = 0.05\n+     * set Use local tolerances                          = false\n+     * @endcode\n+     *\n+     * These are one-to-one with the options you can pass at construction time.\n+     *\n+     * Those options are set as default value in the ParameterHandler object\n+     * `prm`.\n+     */\n+    virtual void add_parameters(ParameterHandler &prm);","path":"include/deal.II/sundials/ida_interface.h","position":null,"original_position":223,"commit_id":"977e5222f52a687c01569727474d9508ca5f9acb","original_commit_id":"b37ff1aa5632b111c1280336b9b4a58fbf80df98","user":{"login":"bangerth","id":7504421,"avatar_url":"https://avatars2.githubusercontent.com/u/7504421?v=4","gravatar_id":"","url":"https://api.github.com/users/bangerth","html_url":"https://github.com/bangerth","followers_url":"https://api.github.com/users/bangerth/followers","following_url":"https://api.github.com/users/bangerth/following{/other_user}","gists_url":"https://api.github.com/users/bangerth/gists{/gist_id}","starred_url":"https://api.github.com/users/bangerth/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bangerth/subscriptions","organizations_url":"https://api.github.com/users/bangerth/orgs","repos_url":"https://api.github.com/users/bangerth/repos","events_url":"https://api.github.com/users/bangerth/events{/privacy}","received_events_url":"https://api.github.com/users/bangerth/received_events","type":"User","site_admin":false},"body":"Oh, I misread (or didn't read at all) the documentation. I thought you were setting the parameters of the current object. But you were really setting the parameters of the current class *in the parameter handler object*.\r\n\r\nThat's the equivalent of the `declare_parameters()` function we describe in the documentation of `ParameterHandler`.","created_at":"2017-09-06T13:17:12Z","updated_at":"2017-09-06T13:17:12Z","html_url":"https://github.com/dealii/dealii/pull/4852#discussion_r137263063","pull_request_url":"https://api.github.com/repos/dealii/dealii/pulls/4852","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/dealii/dealii/pulls/comments/137263063"},"html":{"href":"https://github.com/dealii/dealii/pull/4852#discussion_r137263063"},"pull_request":{"href":"https://api.github.com/repos/dealii/dealii/pulls/4852"}},"in_reply_to_id":137092533},"pull_request":{"url":"https://api.github.com/repos/dealii/dealii/pulls/4852","id":135714126,"html_url":"https://github.com/dealii/dealii/pull/4852","diff_url":"https://github.com/dealii/dealii/pull/4852.diff","patch_url":"https://github.com/dealii/dealii/pull/4852.patch","issue_url":"https://api.github.com/repos/dealii/dealii/issues/4852","number":4852,"state":"open","locked":false,"title":"IDAInterface","user":{"login":"luca-heltai","id":2919756,"avatar_url":"https://avatars1.githubusercontent.com/u/2919756?v=4","gravatar_id":"","url":"https://api.github.com/users/luca-heltai","html_url":"https://github.com/luca-heltai","followers_url":"https://api.github.com/users/luca-heltai/followers","following_url":"https://api.github.com/users/luca-heltai/following{/other_user}","gists_url":"https://api.github.com/users/luca-heltai/gists{/gist_id}","starred_url":"https://api.github.com/users/luca-heltai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luca-heltai/subscriptions","organizations_url":"https://api.github.com/users/luca-heltai/orgs","repos_url":"https://api.github.com/users/luca-heltai/repos","events_url":"https://api.github.com/users/luca-heltai/events{/privacy}","received_events_url":"https://api.github.com/users/luca-heltai/received_events","type":"User","site_admin":false},"body":"#4704 ","created_at":"2017-08-15T00:27:03Z","updated_at":"2017-09-06T13:17:12Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7c8d0e5e1a9f000078d8e7b80fbab3045a04912b","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/dealii/dealii/pulls/4852/commits","review_comments_url":"https://api.github.com/repos/dealii/dealii/pulls/4852/comments","review_comment_url":"https://api.github.com/repos/dealii/dealii/pulls/comments{/number}","comments_url":"https://api.github.com/repos/dealii/dealii/issues/4852/comments","statuses_url":"https://api.github.com/repos/dealii/dealii/statuses/977e5222f52a687c01569727474d9508ca5f9acb","head":{"label":"luca-heltai:ida-interface","ref":"ida-interface","sha":"977e5222f52a687c01569727474d9508ca5f9acb","user":{"login":"luca-heltai","id":2919756,"avatar_url":"https://avatars1.githubusercontent.com/u/2919756?v=4","gravatar_id":"","url":"https://api.github.com/users/luca-heltai","html_url":"https://github.com/luca-heltai","followers_url":"https://api.github.com/users/luca-heltai/followers","following_url":"https://api.github.com/users/luca-heltai/following{/other_user}","gists_url":"https://api.github.com/users/luca-heltai/gists{/gist_id}","starred_url":"https://api.github.com/users/luca-heltai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luca-heltai/subscriptions","organizations_url":"https://api.github.com/users/luca-heltai/orgs","repos_url":"https://api.github.com/users/luca-heltai/repos","events_url":"https://api.github.com/users/luca-heltai/events{/privacy}","received_events_url":"https://api.github.com/users/luca-heltai/received_events","type":"User","site_admin":false},"repo":{"id":22053864,"name":"dealii","full_name":"luca-heltai/dealii","owner":{"login":"luca-heltai","id":2919756,"avatar_url":"https://avatars1.githubusercontent.com/u/2919756?v=4","gravatar_id":"","url":"https://api.github.com/users/luca-heltai","html_url":"https://github.com/luca-heltai","followers_url":"https://api.github.com/users/luca-heltai/followers","following_url":"https://api.github.com/users/luca-heltai/following{/other_user}","gists_url":"https://api.github.com/users/luca-heltai/gists{/gist_id}","starred_url":"https://api.github.com/users/luca-heltai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/luca-heltai/subscriptions","organizations_url":"https://api.github.com/users/luca-heltai/orgs","repos_url":"https://api.github.com/users/luca-heltai/repos","events_url":"https://api.github.com/users/luca-heltai/events{/privacy}","received_events_url":"https://api.github.com/users/luca-heltai/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/luca-heltai/dealii","description":null,"fork":true,"url":"https://api.github.com/repos/luca-heltai/dealii","forks_url":"https://api.github.com/repos/luca-heltai/dealii/forks","keys_url":"https://api.github.com/repos/luca-heltai/dealii/keys{/key_id}","collaborators_url":"https://api.github.com/repos/luca-heltai/dealii/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/luca-heltai/dealii/teams","hooks_url":"https://api.github.com/repos/luca-heltai/dealii/hooks","issue_events_url":"https://api.github.com/repos/luca-heltai/dealii/issues/events{/number}","events_url":"https://api.github.com/repos/luca-heltai/dealii/events","assignees_url":"https://api.github.com/repos/luca-heltai/dealii/assignees{/user}","branches_url":"https://api.github.com/repos/luca-heltai/dealii/branches{/branch}","tags_url":"https://api.github.com/repos/luca-heltai/dealii/tags","blobs_url":"https://api.github.com/repos/luca-heltai/dealii/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/luca-heltai/dealii/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/luca-heltai/dealii/git/refs{/sha}","trees_url":"https://api.github.com/repos/luca-heltai/dealii/git/trees{/sha}","statuses_url":"https://api.github.com/repos/luca-heltai/dealii/statuses/{sha}","languages_url":"https://api.github.com/repos/luca-heltai/dealii/languages","stargazers_url":"https://api.github.com/repos/luca-heltai/dealii/stargazers","contributors_url":"https://api.github.com/repos/luca-heltai/dealii/contributors","subscribers_url":"https://api.github.com/repos/luca-heltai/dealii/subscribers","subscription_url":"https://api.github.com/repos/luca-heltai/dealii/subscription","commits_url":"https://api.github.com/repos/luca-heltai/dealii/commits{/sha}","git_commits_url":"https://api.github.com/repos/luca-heltai/dealii/git/commits{/sha}","comments_url":"https://api.github.com/repos/luca-heltai/dealii/comments{/number}","issue_comment_url":"https://api.github.com/repos/luca-heltai/dealii/issues/comments{/number}","contents_url":"https://api.github.com/repos/luca-heltai/dealii/contents/{+path}","compare_url":"https://api.github.com/repos/luca-heltai/dealii/compare/{base}...{head}","merges_url":"https://api.github.com/repos/luca-heltai/dealii/merges","archive_url":"https://api.github.com/repos/luca-heltai/dealii/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/luca-heltai/dealii/downloads","issues_url":"https://api.github.com/repos/luca-heltai/dealii/issues{/number}","pulls_url":"https://api.github.com/repos/luca-heltai/dealii/pulls{/number}","milestones_url":"https://api.github.com/repos/luca-heltai/dealii/milestones{/number}","notifications_url":"https://api.github.com/repos/luca-heltai/dealii/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/luca-heltai/dealii/labels{/name}","releases_url":"https://api.github.com/repos/luca-heltai/dealii/releases{/id}","deployments_url":"https://api.github.com/repos/luca-heltai/dealii/deployments","created_at":"2014-07-21T06:17:40Z","updated_at":"2017-03-24T13:15:21Z","pushed_at":"2017-09-06T13:15:25Z","git_url":"git://github.com/luca-heltai/dealii.git","ssh_url":"git@github.com:luca-heltai/dealii.git","clone_url":"https://github.com/luca-heltai/dealii.git","svn_url":"https://github.com/luca-heltai/dealii","homepage":null,"size":169053,"stargazers_count":2,"watchers_count":2,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":1,"forks":2,"open_issues":1,"watchers":2,"default_branch":"master"}},"base":{"label":"dealii:master","ref":"master","sha":"03194ca29965bcc104973095cb80391e93945cd8","user":{"login":"dealii","id":7506070,"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,"name":"dealii","full_name":"dealii/dealii","owner":{"login":"dealii","id":7506070,"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":"2017-09-03T05:13:42Z","pushed_at":"2017-09-06T13:15:27Z","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":168445,"stargazers_count":255,"watchers_count":255,"language":"C++","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":241,"mirror_url":null,"open_issues_count":217,"forks":241,"open_issues":217,"watchers":255,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dealii/dealii/pulls/4852"},"html":{"href":"https://github.com/dealii/dealii/pull/4852"},"issue":{"href":"https://api.github.com/repos/dealii/dealii/issues/4852"},"comments":{"href":"https://api.github.com/repos/dealii/dealii/issues/4852/comments"},"review_comments":{"href":"https://api.github.com/repos/dealii/dealii/pulls/4852/comments"},"review_comment":{"href":"https://api.github.com/repos/dealii/dealii/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/dealii/dealii/pulls/4852/commits"},"statuses":{"href":"https://api.github.com/repos/dealii/dealii/statuses/977e5222f52a687c01569727474d9508ca5f9acb"}},"author_association":"MEMBER"}}
{"actor":{"display_login":"bangerth"}}