feat(BHE): add the feature of depth-dependent BHE parameters Part 1/3

The branch adds 6 commits, all BHE-related. Main change is that borehole and pipe geometry are now per-element ParameterLib::Parameter values instead of single doubles, with the surrounding plumbing that requires.

  • Per-element parameter evaluation (9c0f2654): BoreholeGeometry.diameter and Pipe.wall_thermal_conductivity are now Parameter const&, sampled at each element's SpatialPosition during assembly. Allows spatially varying borehole diameters and pipe wall TC.
  • Geometry validation (207791ca): sampleStrictPositive plus explicit guards on D > d_outer (1P), D > sqrt(2)·d0 (1U chi), D > 2·d0 (2U chi), and acosh domain s ≥ d0. NaN / Inf / zero / negative diameters now produce named OGS_FATAL errors.
  • Tilted-BHE advection fix (b1e86ec0): new flowLegs(pos) returns signed per-leg velocities; pipeAdvectionVectors multiplies by elem_direction for all BHE types (1U/2U previously hard-coded (0,0,±v), silently breaking tilted boreholes).
  • BC endpoints from element ordering (855ee6a7): single source of truth for inlet/outlet — line-element node-0→node-1 ordering, via new findBHEEndpointsFromElementOrdering helper that rejects branched, disconnected, or reversed-interior chains. Replaces the z-coordinate sort that disagreed with the advection direction for bottom-up-meshed or tilted BHEs.
  • Element-wise properties unit tests (f6d2d852): new TestBHEElementWiseProperties.cpp covering geometry validation, tilted advection, and endpoint detection.
  • Docs (860781b4): describe per-element evaluation; state that the node-ordering→flow-direction convention applies to all BHE types (was previously documented only for CXA/CXC).
  1. Tests covering your feature were added?
  2. Any new feature or behaviour change was documented?
Edited by HBShaoUFZ

Merge request reports

Loading
Loading