{"action":"created","comment":{"url":"https://api.github.com/repos/geodynamics/aspect/pulls/comments/31252293","id":31252293,"diff_hunk":"@@ -0,0 +1,416 @@\n+/*\n+  Copyright (C) 2011 - 2015 by the authors of the ASPECT code.\n+\n+  This file is part of ASPECT.\n+\n+  ASPECT is free software; you can redistribute it and/or modify\n+  it under the terms of the GNU General Public License as published by\n+  the Free Software Foundation; either version 2, or (at your option)\n+  any later version.\n+\n+  ASPECT is distributed in the hope that it will be useful,\n+  but WITHOUT ANY WARRANTY; without even the implied warranty of\n+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n+  GNU General Public License for more details.\n+\n+  You should have received a copy of the GNU General Public License\n+  along with ASPECT; see the file doc/COPYING.  If not see\n+  <http://www.gnu.org/licenses/>.\n+*/\n+\n+\n+#include <aspect/geometry_model/spherical_chunk.h>\n+\n+#include <deal.II/grid/grid_generator.h>\n+#include <deal.II/grid/tria_iterator.h>\n+#include <deal.II/grid/tria_accessor.h>\n+#include <deal.II/grid/grid_tools.h>\n+#include <deal.II/grid/tria_boundary_lib.h>\n+#include <deal.II/grid/manifold_lib.h>\n+\n+namespace\n+{\n+  using namespace dealii;\n+\n+  template <int dim>\n+  Point<dim>\n+  SphericalChunkGeometry<dim>::\n+  push_forward(const Point<dim> &input_vertex) const\n+  {\n+    Point<dim> output_vertex;\n+    switch (dim)\n+      {\n+        case 2:\n+        {\n+          output_vertex[0] = input_vertex[1]*std::sin(input_vertex[0]);\n+          output_vertex[1] = input_vertex[1]*std::cos(input_vertex[0]);\n+          break;\n+        }\n+        case 3:\n+        {\n+          output_vertex[0] = input_vertex[2]*std::cos(input_vertex[1])*std::sin(input_vertex[0]);\n+          output_vertex[1] = input_vertex[2]*std::sin(input_vertex[1]);\n+          output_vertex[2] = input_vertex[2]*std::cos(input_vertex[1])*std::cos(input_vertex[0]);\n+          break;\n+        }\n+        default:\n+          Assert (false, ExcNotImplemented ());\n+      }\n+    return output_vertex;\n+  }\n+\n+  template <int dim>\n+  Point<dim>\n+  SphericalChunkGeometry<dim>::\n+  pull_back(const Point<dim> &v) const\n+  {\n+    Point<dim> output_vertex;\n+    switch (dim)\n+      {\n+        case 2:\n+        {\n+          output_vertex[0] = std::atan2(v[0], v[1]);\n+          output_vertex[1] = std::sqrt(v[0]*v[0] + v[1]*v[1]);\n+          break;\n+        }\n+        case 3:\n+        {\n+          double radius=std::sqrt(v[0]*v[0] + v[1]*v[1] + v[2]*v[2]);\n+          output_vertex[0] = std::atan2(v[0], v[2]);\n+          output_vertex[1] = std::asin(v[1]/radius);\n+          output_vertex[2] = radius;\n+          break;\n+        }\n+        default:\n+          Assert (false, ExcNotImplemented ());\n+      }\n+    return output_vertex;\n+  }\n+\n+}\n+\n+\n+namespace aspect\n+{\n+  namespace GeometryModel\n+  {\n+\n+    template <int dim>\n+    void\n+    SphericalChunk<dim>::\n+    create_coarse_mesh (parallel::distributed::Triangulation<dim> &coarse_grid) const\n+    {\n+      std::vector<unsigned int> rep_vec(repetitions, repetitions+dim);\n+      GridGenerator::subdivided_hyper_rectangle (coarse_grid,\n+                                                 rep_vec,\n+                                                 point1,\n+                                                 point2,\n+                                                 true);\n+\n+      //Tell p4est about the periodicity of the mesh.\n+      std::vector<GridTools::PeriodicFacePair<typename parallel::distributed::Triangulation<dim>::cell_iterator> >\n+      periodicity_vector;\n+      if (periodic)\n+        GridTools::collect_periodic_faces\n+        ( coarse_grid, /*b_id1*/ 0, /*b_id2*/ 1,\n+          /*direction*/ 0, periodicity_vector);\n+\n+      if (periodicity_vector.size() > 0)\n+        coarse_grid.add_periodicity (periodicity_vector);\n+\n+\n+      // Transform box into spherical chunk\n+      GridTools::transform (std_cxx11::bind(&SphericalChunkGeometry<dim>::push_forward,\n+                                            std_cxx11::cref(manifold),\n+                                            std_cxx11::_1),\n+                            coarse_grid);\n+\n+      // Deal with a curved mesh\n+      // Loop over cells,faces and set boundary indicators\n+      for (typename Triangulation<dim>::active_cell_iterator cell = coarse_grid.begin_active();\n+           cell != coarse_grid.end(); ++cell)\n+        for (unsigned int f = 0; f < GeometryInfo<dim>::faces_per_cell; ++f)\n+          if (cell->face(f)->at_boundary())\n+            cell->face(f)->set_all_boundary_indicators(f);\n+\n+      // Attach the real manifold to slot 15. we won't use it\n+      // during regular operation, but we set manifold_ids for all\n+      // cells, faces and edges immediately before refinement and\n+      // clear it again afterwards\n+      coarse_grid.set_manifold (15, manifold);\n+\n+      coarse_grid.signals.pre_refinement.connect (std_cxx11::bind (&set_manifold_ids,\n+                                                                   std_cxx11::ref(coarse_grid)));\n+      coarse_grid.signals.post_refinement.connect (std_cxx11::bind (&clear_manifold_ids,\n+                                                                    std_cxx11::ref(coarse_grid)));\n+\n+    }\n+\n+    template <int dim>\n+    std::set<types::boundary_id>\n+    SphericalChunk<dim>::\n+    get_used_boundary_indicators () const\n+    {\n+      // boundary indicators are zero through 2*dim-1\n+      std::set<types::boundary_id> s;\n+      for (unsigned int i=0; i<2*dim; ++i)\n+        s.insert (i);\n+      return s;\n+    }\n+\n+\n+\n+    template <int dim>\n+    std::map<std::string,types::boundary_id>\n+    SphericalChunk<dim>::\n+    get_symbolic_boundary_names_map () const\n+    {\n+      switch (dim)\n+        {\n+          case 2:\n+          {\n+            static const std::pair<std::string,types::boundary_id> mapping[]\n+              = { std::pair<std::string,types::boundary_id>(\"left\",   0),\n+                  std::pair<std::string,types::boundary_id>(\"right\",  1),\n+                  std::pair<std::string,types::boundary_id>(\"bottom\", 2),\n+                  std::pair<std::string,types::boundary_id>(\"top\",    3)\n+                };\n+\n+            return std::map<std::string,types::boundary_id> (&mapping[0],\n+                                                             &mapping[sizeof(mapping)/sizeof(mapping[0])]);\n+          }\n+\n+          case 3:\n+          {\n+            static const std::pair<std::string,types::boundary_id> mapping[]\n+              = { std::pair<std::string,types::boundary_id>(\"left\",   0),\n+                  std::pair<std::string,types::boundary_id>(\"right\",  1),\n+                  std::pair<std::string,types::boundary_id>(\"front\",  2),\n+                  std::pair<std::string,types::boundary_id>(\"back\",   3),\n+                  std::pair<std::string,types::boundary_id>(\"bottom\", 4),\n+                  std::pair<std::string,types::boundary_id>(\"top\",    5)\n+                };\n+\n+            return std::map<std::string,types::boundary_id> (&mapping[0],\n+                                                             &mapping[sizeof(mapping)/sizeof(mapping[0])]);\n+          }\n+        }\n+\n+      Assert (false, ExcNotImplemented());\n+      return std::map<std::string,types::boundary_id>();\n+    }\n+\n+\n+\n+    template <int dim>\n+    std::set< std::pair< std::pair<types::boundary_id, types::boundary_id>, unsigned int> >\n+    SphericalChunk<dim>::\n+    get_periodic_boundary_pairs () const\n+    {\n+      std::set< std::pair< std::pair<types::boundary_id, types::boundary_id>, unsigned int> > periodic_boundaries;\n+      if (periodic)\n+        periodic_boundaries.insert( std::make_pair( std::pair<types::boundary_id, types::boundary_id>(0, 1), 0) );\n+      return periodic_boundaries;\n+    }\n+\n+\n+\n+    template <int dim>\n+    double\n+    SphericalChunk<dim>::\n+    length_scale () const\n+    {\n+      // as described in the first ASPECT paper, a length scale of\n+      // 10km = 1e4m works well for the pressure scaling for earth\n+      // sized spherical shells. use a length scale that\n+      // yields this value for the R0,R1 corresponding to earth\n+      // but otherwise scales like (R1-R0)\n+      return 1e4 * maximal_depth() / (6336000.-3481000.);\n+    }\n+\n+\n+    template <int dim>\n+    double\n+    SphericalChunk<dim>::depth(const Point<dim> &position) const\n+    {\n+      return std::min (std::max (point2[dim-1]-position.norm(), 0.), maximal_depth());\n+    }\n+\n+\n+    template <int dim>\n+    Point<dim>\n+    SphericalChunk<dim>::representative_point(const double depth) const // NOT DONE YET XXXX\n+    {\n+      Assert (depth >= 0,\n+              ExcMessage (\"Given depth must be positive or zero.\"));\n+      Assert (depth <= maximal_depth(),\n+              ExcMessage (\"Given depth must be less than or equal to the maximal depth of this geometry.\"));\n+\n+      // choose a point on the center axis of the domain at a depth beneath the top surface\n+      Point<dim> p = 0.5*(point2+point1);\n+      p[dim-1] = point2[dim-1]-depth;\n+\n+      return p;\n+    }\n+\n+\n+\n+    template <int dim>\n+    double\n+    SphericalChunk<dim>::maximal_depth() const\n+    {\n+      return point2[dim-1]-point1[dim-1];\n+    }\n+\n+    template <int dim>\n+    double\n+    SphericalChunk<dim>::inner_radius () const\n+    {\n+      return point1[dim-1];\n+    }\n+\n+\n+\n+    template <int dim>\n+    double\n+    SphericalChunk<dim>::outer_radius () const\n+    {\n+      return point2[dim-1];\n+    }\n+\n+    template <int dim>\n+    bool\n+    SphericalChunk<dim>::has_curved_elements() const\n+    {\n+      return true;\n+    }\n+\n+    template <int dim>\n+    void\n+    SphericalChunk<dim>::\n+    declare_parameters (ParameterHandler &prm)\n+    {\n+      prm.enter_subsection(\"Geometry model\");\n+      {\n+        prm.enter_subsection(\"Chunk\");\n+        {\n+          prm.declare_entry (\"Chunk bottom radius\", \"0\",\n+                             Patterns::Double (0),\n+                             \"Radius at the bottom surface of the chunk. Units: m.\");\n+          prm.declare_entry (\"Chunk top radius\", \"1\",\n+                             Patterns::Double (0),\n+                             \"Radius at the top surface of the chunk. Units: m.\");\n+\n+          prm.declare_entry (\"Chunk minimum longitude\", \"0\",\n+                             Patterns::Double (-180, 180),\n+                             \"Minimum longitude of the chunk. Units: m.\");\n+          prm.declare_entry (\"Chunk maximum longitude\", \"1\",\n+                             Patterns::Double (-180, 180),\n+                             \"Maximum longitude of the chunk. Units: m.\");\n+\n+          prm.declare_entry (\"Chunk minimum latitude\", \"0\",\n+                             Patterns::Double (-90, 90),\n+                             \"Minimum latitude of the chunk. This value is ignored \"\n+                             \"if the simulation is in 2d. Units: m.\");\n+          prm.declare_entry (\"Chunk maximum latitude\", \"1\",\n+                             Patterns::Double (-90, 90),\n+                             \"Maximum latitude of the chunk. This value is ignored \"\n+                             \"if the simulation is in 2d. Units: m.\");\n+\n+          prm.declare_entry (\"Radius repetitions\", \"1\",\n+                             Patterns::Integer (1),\n+                             \"Number of cells in radius.\");\n+          prm.declare_entry (\"Longitude repetitions\", \"1\",\n+                             Patterns::Integer (1),\n+                             \"Number of cells in longitude.\");\n+          prm.declare_entry (\"Latitude repetitions\", \"1\",\n+                             Patterns::Integer (1),\n+                             \"Number of cells in latitude. This value is ignored \"\n+                             \"if the simulation is in 2d\");\n+\n+          prm.declare_entry (\"Longitude periodic\", \"false\",\n+                             Patterns::Bool (),\n+                             \"Whether the box should be periodic in longitude.\");\n+\n+        }\n+        prm.leave_subsection();\n+      }\n+      prm.leave_subsection();\n+    }\n+\n+\n+\n+    template <int dim>\n+    void\n+    SphericalChunk<dim>::parse_parameters (ParameterHandler &prm)\n+    {\n+      prm.enter_subsection(\"Geometry model\");\n+      {\n+        prm.enter_subsection(\"Spherical chunk\");\n+        {\n+\n+          const double degtorad = dealii::numbers::PI/180;\n+\n+          Assert (dim >= 1, ExcInternalError());\n+          Assert (dim <= 3, ExcInternalError());\n+\n+          if (dim == 1)\n+            {\n+              point1[0] = prm.get_double (\"Chunk bottom radius\");\n+              point2[0] = prm.get_double (\"Chunk top radius\");\n+              repetitions[0] = prm.get_integer (\"Radius repetitions\");\n+            }\n+\n+          if (dim == 2)\n+            {\n+              periodic = prm.get_bool (\"Longitude periodic\");\n+              point1[0] = prm.get_double (\"Chunk minimum longitude\") * degtorad;\n+              point2[0] = prm.get_double (\"Chunk maximum longitude\") * degtorad;\n+              repetitions[0] = prm.get_integer (\"Longitude repetitions\");\n+              point1[1] = prm.get_double (\"Chunk bottom radius\");\n+              point2[1] = prm.get_double (\"Chunk top radius\");\n+              repetitions[1] = prm.get_integer (\"Radius repetitions\");\n+            }\n+\n+          if (dim == 3)\n+            {\n+              periodic = prm.get_bool (\"Longitude periodic\");\n+              point1[0] = prm.get_double (\"Chunk minimum longitude\") * degtorad;\n+              point2[0] = prm.get_double (\"Chunk maximum longitude\") * degtorad;\n+              repetitions[0] = prm.get_integer (\"Longitude repetitions\");\n+              point1[1] = prm.get_double (\"Chunk minimum latitude\") * degtorad;\n+              point2[1] = prm.get_double (\"Chunk maximum latitude\") * degtorad;\n+              repetitions[1] = prm.get_integer (\"Latitude repetitions\");\n+              point1[2] = prm.get_double (\"Chunk bottom radius\");\n+              point2[2] = prm.get_double (\"Chunk top radius\");\n+              repetitions[2] = prm.get_integer (\"Radius repetitions\");\n+            }\n+","path":"source/geometry_model/spherical_chunk.cc","position":388,"original_position":388,"commit_id":"f9c08d45e78a7a62b49ed751cecdbd5b7713c5a9","original_commit_id":"52993e7737c3ef3fa708359eeb432029ca6292a6","user":{"login":"tjhei","id":1531285,"avatar_url":"https://avatars.githubusercontent.com/u/1531285?v=3","gravatar_id":"","url":"https://api.github.com/users/tjhei","html_url":"https://github.com/tjhei","followers_url":"https://api.github.com/users/tjhei/followers","following_url":"https://api.github.com/users/tjhei/following{/other_user}","gists_url":"https://api.github.com/users/tjhei/gists{/gist_id}","starred_url":"https://api.github.com/users/tjhei/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tjhei/subscriptions","organizations_url":"https://api.github.com/users/tjhei/orgs","repos_url":"https://api.github.com/users/tjhei/repos","events_url":"https://api.github.com/users/tjhei/events{/privacy}","received_events_url":"https://api.github.com/users/tjhei/received_events","type":"User","site_admin":false},"body":"can you add some checks that min(long or lat) < max(long or lat) please?","created_at":"2015-05-28T16:33:08Z","updated_at":"2015-05-28T16:33:08Z","html_url":"https://github.com/geodynamics/aspect/pull/466#discussion_r31252293","pull_request_url":"https://api.github.com/repos/geodynamics/aspect/pulls/466","_links":{"self":{"href":"https://api.github.com/repos/geodynamics/aspect/pulls/comments/31252293"},"html":{"href":"https://github.com/geodynamics/aspect/pull/466#discussion_r31252293"},"pull_request":{"href":"https://api.github.com/repos/geodynamics/aspect/pulls/466"}}},"pull_request":{"url":"https://api.github.com/repos/geodynamics/aspect/pulls/466","id":36382262,"html_url":"https://github.com/geodynamics/aspect/pull/466","diff_url":"https://github.com/geodynamics/aspect/pull/466.diff","patch_url":"https://github.com/geodynamics/aspect/pull/466.patch","issue_url":"https://api.github.com/repos/geodynamics/aspect/issues/466","number":466,"state":"open","locked":false,"title":"Spherical chunk geometrical model","user":{"login":"bobmyhill","id":8144905,"avatar_url":"https://avatars.githubusercontent.com/u/8144905?v=3","gravatar_id":"","url":"https://api.github.com/users/bobmyhill","html_url":"https://github.com/bobmyhill","followers_url":"https://api.github.com/users/bobmyhill/followers","following_url":"https://api.github.com/users/bobmyhill/following{/other_user}","gists_url":"https://api.github.com/users/bobmyhill/gists{/gist_id}","starred_url":"https://api.github.com/users/bobmyhill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobmyhill/subscriptions","organizations_url":"https://api.github.com/users/bobmyhill/orgs","repos_url":"https://api.github.com/users/bobmyhill/repos","events_url":"https://api.github.com/users/bobmyhill/events{/privacy}","received_events_url":"https://api.github.com/users/bobmyhill/received_events","type":"User","site_admin":false},"body":"Opened for comments. \r\nPlan to add oblateness (to an ellipsoidal chunk model). \r\n\r\nStill need to add output for tests.","created_at":"2015-05-28T08:23:18Z","updated_at":"2015-05-28T16:33:08Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3fb8be64af7505de3aa5661a9f5241ece6816221","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/geodynamics/aspect/pulls/466/commits","review_comments_url":"https://api.github.com/repos/geodynamics/aspect/pulls/466/comments","review_comment_url":"https://api.github.com/repos/geodynamics/aspect/pulls/comments{/number}","comments_url":"https://api.github.com/repos/geodynamics/aspect/issues/466/comments","statuses_url":"https://api.github.com/repos/geodynamics/aspect/statuses/f9c08d45e78a7a62b49ed751cecdbd5b7713c5a9","head":{"label":"bobmyhill:chunk","ref":"chunk","sha":"f9c08d45e78a7a62b49ed751cecdbd5b7713c5a9","user":{"login":"bobmyhill","id":8144905,"avatar_url":"https://avatars.githubusercontent.com/u/8144905?v=3","gravatar_id":"","url":"https://api.github.com/users/bobmyhill","html_url":"https://github.com/bobmyhill","followers_url":"https://api.github.com/users/bobmyhill/followers","following_url":"https://api.github.com/users/bobmyhill/following{/other_user}","gists_url":"https://api.github.com/users/bobmyhill/gists{/gist_id}","starred_url":"https://api.github.com/users/bobmyhill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobmyhill/subscriptions","organizations_url":"https://api.github.com/users/bobmyhill/orgs","repos_url":"https://api.github.com/users/bobmyhill/repos","events_url":"https://api.github.com/users/bobmyhill/events{/privacy}","received_events_url":"https://api.github.com/users/bobmyhill/received_events","type":"User","site_admin":false},"repo":{"id":35962924,"name":"aspect","full_name":"bobmyhill/aspect","owner":{"login":"bobmyhill","id":8144905,"avatar_url":"https://avatars.githubusercontent.com/u/8144905?v=3","gravatar_id":"","url":"https://api.github.com/users/bobmyhill","html_url":"https://github.com/bobmyhill","followers_url":"https://api.github.com/users/bobmyhill/followers","following_url":"https://api.github.com/users/bobmyhill/following{/other_user}","gists_url":"https://api.github.com/users/bobmyhill/gists{/gist_id}","starred_url":"https://api.github.com/users/bobmyhill/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobmyhill/subscriptions","organizations_url":"https://api.github.com/users/bobmyhill/orgs","repos_url":"https://api.github.com/users/bobmyhill/repos","events_url":"https://api.github.com/users/bobmyhill/events{/privacy}","received_events_url":"https://api.github.com/users/bobmyhill/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bobmyhill/aspect","description":"A parallel, extendible finite element code to simulate thermal convection in both 2D and 3D models.","fork":true,"url":"https://api.github.com/repos/bobmyhill/aspect","forks_url":"https://api.github.com/repos/bobmyhill/aspect/forks","keys_url":"https://api.github.com/repos/bobmyhill/aspect/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bobmyhill/aspect/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bobmyhill/aspect/teams","hooks_url":"https://api.github.com/repos/bobmyhill/aspect/hooks","issue_events_url":"https://api.github.com/repos/bobmyhill/aspect/issues/events{/number}","events_url":"https://api.github.com/repos/bobmyhill/aspect/events","assignees_url":"https://api.github.com/repos/bobmyhill/aspect/assignees{/user}","branches_url":"https://api.github.com/repos/bobmyhill/aspect/branches{/branch}","tags_url":"https://api.github.com/repos/bobmyhill/aspect/tags","blobs_url":"https://api.github.com/repos/bobmyhill/aspect/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bobmyhill/aspect/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bobmyhill/aspect/git/refs{/sha}","trees_url":"https://api.github.com/repos/bobmyhill/aspect/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bobmyhill/aspect/statuses/{sha}","languages_url":"https://api.github.com/repos/bobmyhill/aspect/languages","stargazers_url":"https://api.github.com/repos/bobmyhill/aspect/stargazers","contributors_url":"https://api.github.com/repos/bobmyhill/aspect/contributors","subscribers_url":"https://api.github.com/repos/bobmyhill/aspect/subscribers","subscription_url":"https://api.github.com/repos/bobmyhill/aspect/subscription","commits_url":"https://api.github.com/repos/bobmyhill/aspect/commits{/sha}","git_commits_url":"https://api.github.com/repos/bobmyhill/aspect/git/commits{/sha}","comments_url":"https://api.github.com/repos/bobmyhill/aspect/comments{/number}","issue_comment_url":"https://api.github.com/repos/bobmyhill/aspect/issues/comments{/number}","contents_url":"https://api.github.com/repos/bobmyhill/aspect/contents/{+path}","compare_url":"https://api.github.com/repos/bobmyhill/aspect/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bobmyhill/aspect/merges","archive_url":"https://api.github.com/repos/bobmyhill/aspect/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bobmyhill/aspect/downloads","issues_url":"https://api.github.com/repos/bobmyhill/aspect/issues{/number}","pulls_url":"https://api.github.com/repos/bobmyhill/aspect/pulls{/number}","milestones_url":"https://api.github.com/repos/bobmyhill/aspect/milestones{/number}","notifications_url":"https://api.github.com/repos/bobmyhill/aspect/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bobmyhill/aspect/labels{/name}","releases_url":"https://api.github.com/repos/bobmyhill/aspect/releases{/id}","created_at":"2015-05-20T17:24:00Z","updated_at":"2015-05-20T17:24:06Z","pushed_at":"2015-05-28T16:20:00Z","git_url":"git://github.com/bobmyhill/aspect.git","ssh_url":"git@github.com:bobmyhill/aspect.git","clone_url":"https://github.com/bobmyhill/aspect.git","svn_url":"https://github.com/bobmyhill/aspect","homepage":"http://aspect.dealii.org/","size":109313,"stargazers_count":0,"watchers_count":0,"language":"Gnuplot","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"geodynamics:master","ref":"master","sha":"069b397d7f63edd2565f25d06eab728c2c1b27f8","user":{"login":"geodynamics","id":4052461,"avatar_url":"https://avatars.githubusercontent.com/u/4052461?v=3","gravatar_id":"","url":"https://api.github.com/users/geodynamics","html_url":"https://github.com/geodynamics","followers_url":"https://api.github.com/users/geodynamics/followers","following_url":"https://api.github.com/users/geodynamics/following{/other_user}","gists_url":"https://api.github.com/users/geodynamics/gists{/gist_id}","starred_url":"https://api.github.com/users/geodynamics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geodynamics/subscriptions","organizations_url":"https://api.github.com/users/geodynamics/orgs","repos_url":"https://api.github.com/users/geodynamics/repos","events_url":"https://api.github.com/users/geodynamics/events{/privacy}","received_events_url":"https://api.github.com/users/geodynamics/received_events","type":"Organization","site_admin":false},"repo":{"id":19502452,"name":"aspect","full_name":"geodynamics/aspect","owner":{"login":"geodynamics","id":4052461,"avatar_url":"https://avatars.githubusercontent.com/u/4052461?v=3","gravatar_id":"","url":"https://api.github.com/users/geodynamics","html_url":"https://github.com/geodynamics","followers_url":"https://api.github.com/users/geodynamics/followers","following_url":"https://api.github.com/users/geodynamics/following{/other_user}","gists_url":"https://api.github.com/users/geodynamics/gists{/gist_id}","starred_url":"https://api.github.com/users/geodynamics/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/geodynamics/subscriptions","organizations_url":"https://api.github.com/users/geodynamics/orgs","repos_url":"https://api.github.com/users/geodynamics/repos","events_url":"https://api.github.com/users/geodynamics/events{/privacy}","received_events_url":"https://api.github.com/users/geodynamics/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/geodynamics/aspect","description":"A parallel, extendible finite element code to simulate thermal convection in both 2D and 3D models.","fork":false,"url":"https://api.github.com/repos/geodynamics/aspect","forks_url":"https://api.github.com/repos/geodynamics/aspect/forks","keys_url":"https://api.github.com/repos/geodynamics/aspect/keys{/key_id}","collaborators_url":"https://api.github.com/repos/geodynamics/aspect/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/geodynamics/aspect/teams","hooks_url":"https://api.github.com/repos/geodynamics/aspect/hooks","issue_events_url":"https://api.github.com/repos/geodynamics/aspect/issues/events{/number}","events_url":"https://api.github.com/repos/geodynamics/aspect/events","assignees_url":"https://api.github.com/repos/geodynamics/aspect/assignees{/user}","branches_url":"https://api.github.com/repos/geodynamics/aspect/branches{/branch}","tags_url":"https://api.github.com/repos/geodynamics/aspect/tags","blobs_url":"https://api.github.com/repos/geodynamics/aspect/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/geodynamics/aspect/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/geodynamics/aspect/git/refs{/sha}","trees_url":"https://api.github.com/repos/geodynamics/aspect/git/trees{/sha}","statuses_url":"https://api.github.com/repos/geodynamics/aspect/statuses/{sha}","languages_url":"https://api.github.com/repos/geodynamics/aspect/languages","stargazers_url":"https://api.github.com/repos/geodynamics/aspect/stargazers","contributors_url":"https://api.github.com/repos/geodynamics/aspect/contributors","subscribers_url":"https://api.github.com/repos/geodynamics/aspect/subscribers","subscription_url":"https://api.github.com/repos/geodynamics/aspect/subscription","commits_url":"https://api.github.com/repos/geodynamics/aspect/commits{/sha}","git_commits_url":"https://api.github.com/repos/geodynamics/aspect/git/commits{/sha}","comments_url":"https://api.github.com/repos/geodynamics/aspect/comments{/number}","issue_comment_url":"https://api.github.com/repos/geodynamics/aspect/issues/comments{/number}","contents_url":"https://api.github.com/repos/geodynamics/aspect/contents/{+path}","compare_url":"https://api.github.com/repos/geodynamics/aspect/compare/{base}...{head}","merges_url":"https://api.github.com/repos/geodynamics/aspect/merges","archive_url":"https://api.github.com/repos/geodynamics/aspect/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/geodynamics/aspect/downloads","issues_url":"https://api.github.com/repos/geodynamics/aspect/issues{/number}","pulls_url":"https://api.github.com/repos/geodynamics/aspect/pulls{/number}","milestones_url":"https://api.github.com/repos/geodynamics/aspect/milestones{/number}","notifications_url":"https://api.github.com/repos/geodynamics/aspect/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/geodynamics/aspect/labels{/name}","releases_url":"https://api.github.com/repos/geodynamics/aspect/releases{/id}","created_at":"2014-05-06T16:47:18Z","updated_at":"2015-05-28T08:02:50Z","pushed_at":"2015-05-28T16:29:19Z","git_url":"git://github.com/geodynamics/aspect.git","ssh_url":"git@github.com:geodynamics/aspect.git","clone_url":"https://github.com/geodynamics/aspect.git","svn_url":"https://github.com/geodynamics/aspect","homepage":"http://aspect.dealii.org/","size":124744,"stargazers_count":12,"watchers_count":12,"language":"Gnuplot","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":34,"mirror_url":null,"open_issues_count":58,"forks":34,"open_issues":58,"watchers":12,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/geodynamics/aspect/pulls/466"},"html":{"href":"https://github.com/geodynamics/aspect/pull/466"},"issue":{"href":"https://api.github.com/repos/geodynamics/aspect/issues/466"},"comments":{"href":"https://api.github.com/repos/geodynamics/aspect/issues/466/comments"},"review_comments":{"href":"https://api.github.com/repos/geodynamics/aspect/pulls/466/comments"},"review_comment":{"href":"https://api.github.com/repos/geodynamics/aspect/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/geodynamics/aspect/pulls/466/commits"},"statuses":{"href":"https://api.github.com/repos/geodynamics/aspect/statuses/f9c08d45e78a7a62b49ed751cecdbd5b7713c5a9"}}}}