refactor(domains): Darcy, heat, and thermo-elastic kernels

Align primal Darcy and heat kernels with Pass~1 updates; extend thermo_elastic kernel; document new poroelastic/THM folders in domains README.
This commit is contained in:
Jukka Aho
2026-05-11 02:23:05 +03:00
parent 799c4d6a0f
commit eac97e0b19
4 changed files with 12 additions and 5 deletions
+7
View File
@@ -1,3 +1,8 @@
<!--
SPDX-FileCopyrightText: 2015-2026 Jukka Aho
SPDX-License-Identifier: MIT
-->
# src/domains/
Physics kernels that plug into the shared assembler infrastructure. Each
@@ -17,6 +22,8 @@ same checkout.
| `heat/` | `HeatKernel` | `test/domains/heat/` |
| `darcy/` | `DarcyPotentialKernel` (primal potential); `DarcyMixedRT0P0Kernel` (Tet4 RT₀–P₀ H(div)) | `test/domains/darcy/` |
| `thermo_elastic/` | `ThermoElasticKernel` (multi-field `u` + `T`) | `test/domains/thermo_elastic/` |
| `poroelastic/` | `BiotPoroelasticKernel` (multi-field `u` + pore pressure `p`) | `test/domains/poroelastic/` |
| `thermo_poroelastic/` | `ThermoPoroelasticKernel` (`u` + `T` + `p`; optional `kappa_tp`, `zeta_tp`, `heat_capacity`, `density` for `M_uu`). Module notes: `thermo_poroelastic/README.md`. | `test/domains/thermo_poroelastic/` (incl. column thermal decay vs Fourier) |
Narrative walkthrough for thermo-elasticity: `docs/src/thermo_elastic_walkthrough.md`
in the package Documenter tree.
+1 -1
View File
@@ -30,7 +30,7 @@ steady primal Darcy: same assembly path as thermal diffusion with tensor
```julia
kernel = DarcyPotentialKernel(
ContinuumFormulation{FullThreeD}(),
ContinuumFormulation{ThreeDimensional}(),
HydraulicConductivity(K = 1e-4),
)
```
+3 -3
View File
@@ -36,7 +36,7 @@ Differences from `ContinuumKernel`:
using Tensors
using ..JuliaFEM: AbstractKernel, AbstractFormulation, AbstractMaterial, AbstractField
using ..JuliaFEM: ContinuumFormulation, FullThreeD
using ..JuliaFEM: ContinuumFormulation, ThreeDimensional
using ..JuliaFEM: Temperature, MoistureContent, PressurePotential, dofs_per_node, get_field
using ..JuliaFEM: HeatConductivity, MoistureDiffusivity, HydraulicConductivity,
ElementWiseScalarDiffusion, scalar_diffusion_tensor
@@ -58,7 +58,7 @@ Domain kernel for steady-state **scalar diffusion**: linear heat conduction
volume element.
Reuses `ContinuumFormulation{Theory}` (the geometric formulation is
field-agnostic; `FullThreeD` works equally well for displacement,
field-agnostic; `ThreeDimensional` works equally well for displacement,
temperature, potential, …).
# Fields
@@ -71,7 +71,7 @@ temperature, potential, …).
```julia
kernel = HeatKernel(
ContinuumFormulation{FullThreeD}(),
ContinuumFormulation{ThreeDimensional}(),
HeatConductivity(k = 401.0),
)
```
+1 -1
View File
@@ -41,7 +41,7 @@ geometry batches via `GeometryCache.∇N_data` / `GeometryCache.N_data`
using Tensors
using ..JuliaFEM: AbstractKernel, AbstractFormulation
using ..JuliaFEM: ContinuumFormulation, FullThreeD, AbstractContinuumTheory
using ..JuliaFEM: ContinuumFormulation, ThreeDimensional, AbstractContinuumTheory
using ..JuliaFEM: AbstractMaterial, LinearElastic, HeatConductivity
using ..JuliaFEM: elasticity_tensor, conductivity_tensor
using ..JuliaFEM: AssemblyMaterialWorkspace