GitHub PullRequestReviewCommentEvent at 2014-09-25 23:12:31
Repository: dealii
Actor: bangerth
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/dealii/dealii/pulls/comments/18066355","id":18066355,"diff_hunk":"@@ -0,0 +1,309 @@\n+// ---------------------------------------------------------------------\n+// $Id$\n+//\n+// Copyright (C) 2014 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+\n+#ifndef __deal2__occ_utilities_h\n+#define __deal2__occ_utilities_h\n+\n+#include <deal.II/base/config.h>\n+\n+#ifdef DEAL_II_WITH_OPENCASCADE\n+\n+#include <deal.II/grid/tria.h>\n+\n+#include <string>\n+#include <TopoDS_Shape.hxx>\n+#include <TopoDS_Face.hxx>\n+#include <TopoDS_Edge.hxx>\n+#include <TopoDS_Vertex.hxx>\n+#include <TopoDS_Compound.hxx>\n+#include <TopoDS_CompSolid.hxx>\n+#include <TopoDS_Solid.hxx>\n+#include <TopoDS_Shell.hxx>\n+#include <TopoDS_Wire.hxx>\n+#include <IFSelect_ReturnStatus.hxx>\n+#include <gp_Pnt.hxx>\n+\n+#include <deal.II/base/point.h>\n+\n+\n+DEAL_II_NAMESPACE_OPEN\n+\n+/**\n+ * @addtogroup OpenCASCADE\n+ * @{\n+ * We collect in this namespace all utilities which operate on\n+ * OpenCASCADE entities. OpenCASCADE splits every object into a\n+ * topological description and a geometrical entity. The basic\n+ * topological description is a TopoDS_Shape. TopoDS_Shapes are light\n+ * objects, and can be copied around. The closest deal.II analog is a\n+ * TriaIterator.\n+ *\n+ * The OpenCASCADE topology is designed with reference to the STEP\n+ * standard ISO-10303-42.  The structure is an oriented one-way graph,\n+ * where parents refer to their children, and there are no back\n+ * references. Abstract structure is implemented as C++ classes from\n+ * the TopoDS package. A TopoDS_Shape is manipulated by value and\n+ * contains 3 fields: location, orientation and a myTShape handle (of\n+ * the TopoDS_TShape type). According to OpenCASCADE documentation,\n+ * myTShape and Location are used to share data between various shapes\n+ * to save memory. For example, an edge belonging to two faces has\n+ * equal Locations and myTShape fields but different Orientations\n+ * (Forward in context of one face and Reversed in one of the other).\n+ *\n+ * Valid shapes include collection of other shapes, solids, faces,\n+ * edges, vertices, etc.\n+ *\n+ * Once a topological description is available, if a concrete\n+ * geometrical object can be created, the BRep classes allow one to\n+ * extract the actual geometrical information from a shape.\n+ *\n+ * This is done by inheriting abstract topology classes from the\n+ * TopoDS package by those implementing a boundary representation\n+ * model (from the BRep package). Only 3 types of topological objects\n+ * have geometric representations – vertex, edge, and face.\n+ *\n+ * Every TopoDS_Shape can be queried to figure out what type of shape\n+ * it is, and actual geometrical objects, like surfaces, curves or\n+ * points, can be extracted using BRepTools.\n+ *\n+ * In this namespace we provide readers and writers that read standard\n+ * CAD files, and return a TopoDS_Shape, or that write a CAD file,\n+ * given a TopoDS_Shape. Most of the functions in the OpenCASCADE\n+ * namespace deal with TopoDS_Shapes of one type or another, and\n+ * provide interfaces to common deal.II objects, like Triangulation,\n+ * Manifold, and so on.\n+ *\n+ * Notice that these tools are only useful when spacedim is equal to\n+ * three, since OpenCASCADE only operates in three-dimensional mode.\n+ *\n+ * @author Luca Heltai, Andrea Mola, 2011--2014.\n+ */\n+namespace OpenCASCADE\n+{\n+  /**\n+   * Count the subobjects of a shape. This function is useful to\n+   * gather information about the TopoDS_Shape passed as argument. It\n+   * counts the number of faces, edges and vertices (the only\n+   * topological entities associated with actual geometries) which are\n+   * contained in the given shape.\n+   */\n+  void count_elements(const TopoDS_Shape &shape,\n+                      unsigned int &n_faces,\n+                      unsigned int &n_edges,\n+                      unsigned int &n_vertices);\n+\n+  /**\n+   * Read IGES files and translate their content into openCascade\n+   * topological entities. The option scale_factor is used to\n+   * compensate for different units being used in the IGES files and\n+   * in the target application. The standard unit for IGES files is\n+   * millimiters. The return object is a TopoDS_Shape which contains\n+   * all objects from the file.\n+   */\n+  TopoDS_Shape read_IGES(const std::string &filename,\n+                         const double scale_factor=1e-3);\n+\n+  /**\n+    * Write the given topological shape into an IGES file.\n+    */\n+  void write_IGES(const TopoDS_Shape &shape,\n+                  const std::string &filename);\n+\n+\n+\n+  /**\n+   * Perform the intersection of the given topological shape with the\n+   * plane $c_x x + c_y y + c_z z +c = 0$. The returned topological\n+   * shape will contain as few bsplines as possible. An exception is\n+   * thrown if the intersection produces an empty shape.\n+   */\n+  TopoDS_Shape  intersect_plane(const TopoDS_Shape &in_shape,\n+                                const double c_x,\n+                                const double c_y,\n+                                const double c_z,\n+                                const double c,\n+                                const double tolerance=1e-7);\n+\n+  /**\n+   * Try to join all edges contained in the given TopoDS_Shape into a\n+   * single TopoDS_Edge, containing as few BSPlines as possible. If\n+   * the input shape contains faces, they will be ignored by this\n+   * function. If the contained edges cannot be joined into a single\n+   * one, i.e., they form disconnected curves, an exception will be\n+   * thrown.\n+   */\n+  TopoDS_Edge join_edges(const TopoDS_Shape &in_shape,\n+                         const double tolerance=1e-7);\n+\n+  /**\n+   * Creates a 3D smooth BSpline curve passing through the points in\n+   * the assigned vector, and store it in the returned TopoDS_Shape\n+   * (which is of type TopoDS_Edge). The points are reordered\n+   * internally according to their scalar product with the direction,\n+   * if direction is different from zero, otherwise they are used as\n+   * passed. Notice that this function changes the input points if\n+   * required by the algorithm.\n+   *\n+   * This class is used to interpolate a BsplineCurve passing through\n+   * an array of points, with a C2 Continuity. If the optional\n+   * parameter @p closed is set to true, then the curve will be C2 at\n+   * all points execpt the first (where only C1 continuity will be","path":"include/deal.II/opencascade/utilities.h","position":164,"original_position":164,"commit_id":"1ee31854e27255d1fced118f3393656e0e7ce257","original_commit_id":"1ee31854e27255d1fced118f3393656e0e7ce257","user":{"login":"bangerth","id":7504421,"avatar_url":"https://avatars.githubusercontent.com/u/7504421?v=2","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":"execpt -> except","created_at":"2014-09-25T23:12:31Z","updated_at":"2014-09-25T23:12:31Z","html_url":"https://github.com/dealii/dealii/pull/166#discussion_r18066355","pull_request_url":"https://api.github.com/repos/dealii/dealii/pulls/166","_links":{"self":{"href":"https://api.github.com/repos/dealii/dealii/pulls/comments/18066355"},"html":{"href":"https://github.com/dealii/dealii/pull/166#discussion_r18066355"},"pull_request":{"href":"https://api.github.com/repos/dealii/dealii/pulls/166"}}},"pull_request":{"url":"https://api.github.com/repos/dealii/dealii/pulls/166","id":21539948,"html_url":"https://github.com/dealii/dealii/pull/166","diff_url":"https://github.com/dealii/dealii/pull/166.diff","patch_url":"https://github.com/dealii/dealii/pull/166.patch","issue_url":"https://api.github.com/repos/dealii/dealii/issues/166","number":166,"state":"open","locked":false,"title":"Added support for OpenCASCADE (IGES boundary descriptors)","user":{"login":"luca-heltai","id":2919756,"avatar_url":"https://avatars.githubusercontent.com/u/2919756?v=2","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":"This PR is not intended to be final. It contains quite a big set of changes, and I'll squash most of them before merging. Before I do this, I'd like some feedback from other developers. We have some more classes that could be added to the OpenCASCADE namespace, but we'll proceed with those once this first set is completed.\r\n\r\nIf you have OpenCASCADE (www.opencascade.org) installed (either because you have SALOME, which comes with OpenCASCADE internally, or because you installed OCE, OpenCASCADE Community Edition), this PR allows you to enable it at configure time, and gives you access to NURBS based surface geometries (for the moment only interfaces to IGES files or direct interface to OpenCASCADE `TopoDS_Shape` objects are supported, but STEP and BREP formats are just a few lines of C++ away). This set of changes has been developed in collaboration with @andreamola, in the framework of project OpenSHIP (www.openship.it), and allows us to work daily with CAD files of ships and boats, like the one you see here (DTMB 5415):\r\n\r\n![barehullzoom](https://cloud.githubusercontent.com/assets/2919756/4346143/fbd64a4a-40ef-11e4-9f04-9309fe8b4946.png)\r\n\r\nwhich, using these classes, can be refined as shown in the picture (with curvature based adaptive refinement)\r\n\r\n![initialmeshboat_6](https://cloud.githubusercontent.com/assets/2919756/4346140/eb71a064-40ef-11e4-8025-71260b032604.png)\r\n\r\nAnother example below:\r\n\r\n![kriso_kvlcc2m](https://cloud.githubusercontent.com/assets/2919756/4346147/420abdc0-40f0-11e4-9e56-e51aba5ba670.png)\r\n\r\nWith a detailed view of the Stern refinement:\r\n\r\n![kvlcc2m_mesh_stern](https://cloud.githubusercontent.com/assets/2919756/4346145/23ff8072-40f0-11e4-8b26-83e58125e97c.png)\r\n","created_at":"2014-09-20T18:05:59Z","updated_at":"2014-09-25T23:12:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ed5dd86ab370e8f9f8cff7dbadc345a93fc7db30","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/dealii/dealii/pulls/166/commits","review_comments_url":"https://api.github.com/repos/dealii/dealii/pulls/166/comments","review_comment_url":"https://api.github.com/repos/dealii/dealii/pulls/comments/{number}","comments_url":"https://api.github.com/repos/dealii/dealii/issues/166/comments","statuses_url":"https://api.github.com/repos/dealii/dealii/statuses/1ee31854e27255d1fced118f3393656e0e7ce257","head":{"label":"luca-heltai:open_cascade","ref":"open_cascade","sha":"1ee31854e27255d1fced118f3393656e0e7ce257","user":{"login":"luca-heltai","id":2919756,"avatar_url":"https://avatars.githubusercontent.com/u/2919756?v=2","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://avatars.githubusercontent.com/u/2919756?v=2","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":"","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}","created_at":"2014-07-21T06:17:40Z","updated_at":"2014-07-24T22:48:35Z","pushed_at":"2014-09-24T16:50:28Z","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":97608,"stargazers_count":1,"watchers_count":1,"language":"C++","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1,"mirror_url":null,"open_issues_count":1,"forks":1,"open_issues":1,"watchers":1,"default_branch":"master"}},"base":{"label":"dealii:master","ref":"master","sha":"37196d0dc84dca8b405b6b7eae923d47a2bccc3e","user":{"login":"dealii","id":7506070,"avatar_url":"https://avatars.githubusercontent.com/u/7506070?v=2","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://avatars.githubusercontent.com/u/7506070?v=2","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}","created_at":"2014-07-17T14:00:26Z","updated_at":"2014-09-21T09:38:24Z","pushed_at":"2014-09-25T20:20:10Z","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":127914,"stargazers_count":19,"watchers_count":19,"language":"C++","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":28,"mirror_url":null,"open_issues_count":10,"forks":28,"open_issues":10,"watchers":19,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/dealii/dealii/pulls/166"},"html":{"href":"https://github.com/dealii/dealii/pull/166"},"issue":{"href":"https://api.github.com/repos/dealii/dealii/issues/166"},"comments":{"href":"https://api.github.com/repos/dealii/dealii/issues/166/comments"},"review_comments":{"href":"https://api.github.com/repos/dealii/dealii/pulls/166/comments"},"review_comment":{"href":"https://api.github.com/repos/dealii/dealii/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/dealii/dealii/pulls/166/commits"},"statuses":{"href":"https://api.github.com/repos/dealii/dealii/statuses/1ee31854e27255d1fced118f3393656e0e7ce257"}}}}