def __init__(self, mesh_hierarchy, layers, kernel=None, layer_height=None, extrusion_type='uniform', gdim=None): """Build a hierarchy of extruded meshes by extruded a hierarchy of meshes. :arg mesh_hierarchy: the :class:`MeshHierarchy` to extruded See :func:`~.ExtrudedMesh` for the meaning of the remaining parameters. """ self._base_hierarchy = mesh_hierarchy hierarchy = [ set_level( mesh.ExtrudedMesh(m, layers, kernel=kernel, layer_height=layer_height, extrusion_type=extrusion_type, gdim=gdim), self, lvl) for lvl, m in enumerate(mesh_hierarchy) ] self._hierarchy = tuple(hierarchy) self._cells_vperm = self._base_hierarchy._cells_vperm
def __init__(self, mesh_hierarchy, layers, kernel=None, layer_height=None, extrusion_type='uniform', gdim=None): """Build a hierarchy of extruded meshes by extruded a hierarchy of meshes. :arg mesh_hierarchy: the :class:`MeshHierarchy` to extruded See :func:`~.ExtrudedMesh` for the meaning of the remaining parameters. """ self.comm = mesh_hierarchy.comm self._base_hierarchy = mesh_hierarchy hierarchy = [ mesh.ExtrudedMesh(m, layers, kernel=kernel, layer_height=layer_height, extrusion_type=extrusion_type, gdim=gdim) for m in mesh_hierarchy._unskipped_hierarchy ] self._unskipped_hierarchy = tuple(hierarchy) self._hierarchy = tuple( hierarchy[::mesh_hierarchy.refinements_per_level]) self._cells_vperm = self._base_hierarchy._cells_vperm for level, m in enumerate(self): set_level(m, self, level) # Attach fractional levels to skipped parts for level, m in enumerate(hierarchy): if level % mesh_hierarchy.refinements_per_level == 0: continue set_level(m, self, Fraction(level, mesh_hierarchy.refinements_per_level)) self.refinements_per_level = mesh_hierarchy.refinements_per_level