ogstools.meshlib.gmsh_meshing module#

ogstools.meshlib.gmsh_meshing.rect(lengths=1.0, n_edge_cells=1, structured_grid=True, order=1, out_name=Path('unit_square.msh'), msh_version=None)[source]#
Parameters:
  • lengths (float | list[float])

  • n_edge_cells (int | list[int])

  • structured_grid (bool)

  • order (int)

  • out_name (Path)

  • msh_version (float | None)

Return type:

None

ogstools.meshlib.gmsh_meshing.cuboid(lengths=1.0, n_edge_cells=1, structured_grid=True, order=1, out_name=Path('unit_cube.msh'), msh_version=None)[source]#
Parameters:
  • lengths (float | list[float])

  • n_edge_cells (int | list[int])

  • structured_grid (bool)

  • order (int)

  • out_name (Path)

  • msh_version (float | None)

Return type:

None

class ogstools.meshlib.gmsh_meshing.Groundwater[source]#

Bases: object

Groundwater(begin: float = -30, isolation_layer_id: int = 1, flow_direction: str = ‘+x’)

begin: float = -30#

depth of groundwater begin (negative) in m

isolation_layer_id: int = 1#

number of the groundwater isolation layer (count starts with 0)

flow_direction: str = '+x'#

groundwater inflow direction as string - supported ‘+x’, ‘-x’, ‘-y’, ‘+y’

__init__(begin=-30, isolation_layer_id=1, flow_direction='+x')#
Parameters:
  • begin (float)

  • isolation_layer_id (int)

  • flow_direction (str)

Return type:

None

class ogstools.meshlib.gmsh_meshing.BHE[source]#

Bases: object

(B)orehole (H)eat (E)xchanger

x: float = 50.0#

x-coordinate of the BHE in m

y: float = 50.0#

y-coordinate of the BHE in m

__init__(x=50.0, y=50.0, z_begin=-1.0, z_end=-60.0, borehole_radius=0.076)#
Parameters:
  • x (float)

  • y (float)

  • z_begin (float)

  • z_end (float)

  • borehole_radius (float)

Return type:

None

z_begin: float = -1.0#

BHE begin depth (zero or negative) in m

z_end: float = -60.0#

BHE end depth (zero or negative) in m

borehole_radius: float = 0.076#

borehole radius in m

ogstools.meshlib.gmsh_meshing.gen_bhe_mesh_gmsh(length, width, layer, groundwater, BHE_Array, target_z_size_coarse=7.5, target_z_size_fine=1.5, n_refinement_layers=2, meshing_type='structured', dist_box_x=5.0, dist_box_y=10.0, inner_mesh_size=5.0, outer_mesh_size=10.0, propagation=1.1, order=1, out_name=Path('bhe_mesh.msh'))[source]#

Create a generic BHE mesh for the Heat_Transport_BHE-Process with additionally submeshes at the top, at the bottom and the groundwater inflow, which is exported in the Gmsh .msh format. For the usage in OGS, a mesh conversion with msh2vtu with dim-Tags [1,3] is needed. The mesh is defined by multiple input parameters. Refinement layers are placed at the BHE-begin, the BHE-end and the groundwater start/end. See detailed description of the parameters below:

Parameters:
  • length (float) – Length of the model area in m (x-dimension)

  • width (float) – Width of the model area in m (y-dimension)

  • layer (float | list[float]) – List of the soil layer thickness in m

  • groundwater (Groundwater | list[Groundwater]) – List of groundwater layers, where every is specified by a tuple of three entries: [depth of groundwater begin (negative), number of the groundwater isolation layer (count starts with 0), groundwater inflow direction as string - supported ‘+x’, ‘-x’, ‘-y’, ‘+y’], empty list [] for no groundwater flow

  • BHE_Array (BHE | list[BHE]) – List of BHEs, where every BHE is specified by a tuple of five floats: [x-coordinate BHE, y-coordinate BHE, BHE begin depth (zero or negative), BHE end depth (negative), borehole radius in m]

  • target_z_size_coarse (float) – maximum edge length of the elements in m in z-direction, if no refinemnt needed

  • target_z_size_fine (float) – maximum edge length of the elements in the refinement zone in m in z-direction

  • n_refinement_layers (int) – number of refinement layers which are evenly set above and beneath the refinemnt depths (see general description above)

  • meshing_type (str) – ‘structured’ and ‘prism’ are supported

  • dist_box_x (float) – distance in m in x-direction of the refinemnt box according to the BHE’s

  • dist_box_y (float) – distance in m in y-direction of the refinemnt box according to the BHE’s

  • inner_mesh_size (float) – mesh size inside the refinement box in m

  • outer_mesh_size (float) – mesh size outside of the refinement box in m

  • propagation (float) – growth of the outer_mesh_size, only supported by meshing_type ‘structured’

  • order (int) – Define the order of the mesh: 1 for linear finite elements / 2 for quadratic finite elements

  • out_name (Path) – name of the exported mesh, must end with .msh

Returns:

a gmsh .msh file

Return type:

None

ogstools.meshlib.gmsh_meshing.gen_bhe_mesh(length, width, layer, groundwater, BHE_Array, target_z_size_coarse=7.5, target_z_size_fine=1.5, n_refinement_layers=2, meshing_type='structured', dist_box_x=5.0, dist_box_y=10.0, inner_mesh_size=5.0, outer_mesh_size=10.0, propagation=1.1, order=1, out_name=Path('bhe_mesh.vtu'))[source]#

Create a generic BHE mesh for the Heat_Transport_BHE-Process with additionally submeshes at the top, at the bottom and the groundwater inflow, which is exported in the OGS readable .vtu format. Refinement layers are placed at the BHE-begin, the BHE-end and the groundwater start/end. See detailed description of the parameters below:

Parameters:
  • length (float) – Length of the model area in m (x-dimension)

  • width (float) – Width of the model area in m (y-dimension)

  • layer (float | list[float]) – List of the soil layer thickness in m

  • groundwater (Groundwater | list[Groundwater]) – List of groundwater layers, where every is specified by a tuple of three entries: [depth of groundwater begin (negative), number of the groundwater isolation layer (count starts with 0), groundwater inflow direction, as string - supported ‘+x’, ‘-x’, ‘-y’, ‘+y’], empty list [] for no groundwater flow

  • BHE_Array (BHE | list[BHE]) – List of BHEs, where every BHE is specified by a tuple of five floats: [x-coordinate BHE, y-coordinate BHE, BHE begin depth (zero or negative), BHE end depth (negative), borehole radius in m]

  • target_z_size_coarse (float) – maximum edge length of the elements in m in z-direction, if no refinemnt needed

  • target_z_size_fine (float) – maximum edge length of the elements in the refinement zone in m in z-direction

  • n_refinement_layers (int) – number of refinement layers which are evenly set above and beneath the refinemnt depths (see general description above)

  • meshing_type (str) – ‘structured’ and ‘prism’ are supported

  • dist_box_x (float) – distance in m in x-direction of the refinemnt box according to the BHE’s

  • dist_box_y (float) – distance in m in y-direction of the refinemnt box according to the BHE’s

  • inner_mesh_size (float) – mesh size inside the refinement box in m

  • outer_mesh_size (float) – mesh size outside of the refinement box in m

  • propagation (float) – growth of the outer_mesh_size, only supported by meshing_type ‘structured’

  • order (int) – Define the order of the mesh: 1 for linear finite elements / 2 for quadratic finite elements

  • out_name (Path) – name of the exported mesh, must end with .vtu

Returns:

list of filenames of the created vtu mesh files

Return type:

list[str]