Source code for ogstools.meshlib.refine_mesh

# Copyright (c) 2012-2024, OpenGeoSys Community (http://www.opengeosys.org)
#            Distributed under a Modified BSD License.
#            See accompanying file LICENSE.txt or
#            http://www.opengeosys.org/project/license
#

from .boundary import Layer
from .boundary_set import LayerSet


[docs] def refine(layerset: LayerSet, factor: int) -> LayerSet: """ Refine the provided LayerSet by increasing the number of subdivisions. This function takes a LayerSet and refines it by increasing the number of subdivisions in each layer. The factor parameter determines the degree of refinement. Args: layerset (LayerSet): The original LayerSet to be refined. factor (int): The refinement factor to increase the number of subdivisions. Returns: LayerSet: A new LayerSet with increased subdivisions for each layer. """ def refined_num_subsections(num_subsections: int, factor: int) -> int: return (num_subsections + 1) * factor - 1 out = [ Layer( layer.top, layer.bottom, material_id=layer.material_id, num_subdivisions=refined_num_subsections( layer.num_subdivisions, factor ), ) for layer in layerset.layers ] return LayerSet(layers=out)