mirror of
https://github.com/JuliaFEM/JuliaFEM.jl.git
synced 2026-08-20 20:22:03 +00:00
5b99a7a427
Introduce `MoistureDiffusivity` for scalar moisture transport kernels. - Declare physics traits and constant diffusion tensors/scalars as appropriate.
28 lines
907 B
Julia
28 lines
907 B
Julia
# SPDX-FileCopyrightText: 2015-2026 Jukka Aho
|
|
# SPDX-License-Identifier: MIT
|
|
|
|
"""
|
|
Isotropic moisture diffusivity `D_w` for a scalar humidity/pore-water field
|
|
[`MoistureContent`](@ref). The weak operator matches steady heat conduction
|
|
(`HeatKernel` with [`Thermal`](@ref) physics).
|
|
"""
|
|
|
|
using Tensors
|
|
|
|
struct MoistureDiffusivity <: AbstractMaterial
|
|
D_w::Float64
|
|
|
|
function MoistureDiffusivity(D_w::Float64)
|
|
D_w > 0 || throw(ArgumentError("Moisture diffusivity D_w must be positive"))
|
|
new(D_w)
|
|
end
|
|
end
|
|
|
|
MoistureDiffusivity(; D_w::Real) = MoistureDiffusivity(Float64(D_w))
|
|
|
|
material_behavior(::MoistureDiffusivity) = StatelessConstantTangent()
|
|
supported_physics(::MoistureDiffusivity) = (Thermal{3}(),)
|
|
|
|
@inline conductivity_tensor(m::MoistureDiffusivity) = m.D_w * one(SymmetricTensor{2,3,Float64,6})
|
|
@inline scalar_diffusion_tensor(m::MoistureDiffusivity) = conductivity_tensor(m)
|