From f8feb5d3d79f7738c98f8bbb7ece2826c1370504 Mon Sep 17 00:00:00 2001
From: Andreas Kloeckner <inform@tiker.net>
Date: Sun, 5 Jun 2016 21:51:20 -0500
Subject: [PATCH] Refiner: Comment code structure

---
 meshmode/mesh/refinement/__init__.py | 26 +++++++++++++++++++++++---
 1 file changed, 23 insertions(+), 3 deletions(-)

diff --git a/meshmode/mesh/refinement/__init__.py b/meshmode/mesh/refinement/__init__.py
index bd434653..0430ada9 100644
--- a/meshmode/mesh/refinement/__init__.py
+++ b/meshmode/mesh/refinement/__init__.py
@@ -1,6 +1,6 @@
 from __future__ import division, print_function
 
-__copyright__ = "Copyright (C) 2014 Andreas Kloeckner"
+__copyright__ = "Copyright (C) 2014-6 Shivam Gupta"
 
 __license__ = """
 Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -56,6 +56,9 @@ class TreeRayNode(object):
 
 
 class Refiner(object):
+
+    # {{{ constructor
+
     def __init__(self, mesh):
         from meshmode.mesh.tesselate import tesselatetet, tesselatetri
         self.lazy = False
@@ -177,6 +180,10 @@ class Refiner(object):
             ind += 1
         '''
 
+    # }}}
+
+    # {{{ helper routines
+
     def get_refine_base_index(self):
         if self.last_split_elements is None:
             return 0
@@ -312,9 +319,16 @@ class Refiner(object):
                 if to_add not in new_hanging_vertex_elements[node.right_vertex]:
                     new_hanging_vertex_elements[node.right_vertex].append(to_add)
 
-    #refine_flag tells you which elements to split as a numpy array of bools
+    # }}}
+
+    # {{{ refinement
+
     def refine(self, refine_flags):
-        import numpy as np
+        """
+        :arg refine_flags: a :class:`numpy.ndarray` of dtype bool of length ``mesh.nelements``
+            indicating which elements should be split.
+        """
+
         #vertices and groups for next generation
         nvertices = len(self.last_mesh.vertices[0])
 
@@ -647,6 +661,8 @@ class Refiner(object):
                 element_id_dtype=self.last_mesh.element_id_dtype)
         return self.last_mesh
 
+    # }}}
+
     def print_rays(self, ind):
         for i in range(len(self.last_mesh.groups[0].vertex_indices[ind])):
             for j in range(i+1, len(self.last_mesh.groups[0].vertex_indices[ind])):
@@ -680,6 +696,8 @@ class Refiner(object):
         for i in self.last_mesh.groups[0].vertex_indices[ind]:
             print("IND:", i, self.hanging_vertex_element[i])
 
+    # {{{ generate adjacency
+
     def generate_nodal_adjacency(self, nelements, nvertices, groups):
         # medium-term FIXME: make this an incremental update
         # rather than build-from-scratch
@@ -781,5 +799,7 @@ class Refiner(object):
         from meshmode.mesh import NodalAdjacency
         return NodalAdjacency(neighbor_starts=neighbors_starts, neighbors=neighbors)
 
+    # }}}
+
 
 # vim: foldmethod=marker
-- 
GitLab