Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
trixi-framework
GitHub Repository: trixi-framework/Trixi.jl
Path: blob/main/src/equations/laplace_diffusion.jl
5586 views
1
# Linear scalar diffusion for use in linear scalar advection-diffusion problems
2
abstract type AbstractLaplaceDiffusion{NDIMS, NVARS} <:
3
AbstractEquationsParabolic{NDIMS, NVARS, GradientVariablesConservative} end
4
5
"""
6
have_constant_diffusivity(::AbstractLaplaceDiffusion)
7
8
# Returns
9
- `True()`
10
11
Used in parabolic cfl condition computation (see [`StepsizeCallback`](@ref)) to indicate that the
12
diffusivity is constant in space and that [`max_diffusivity`](@ref) needs **not** to be re-computed
13
at every node in every element.
14
15
Also employed in [`linear_structure`](@ref) and [`linear_structure_parabolic`](@ref) to check
16
if the diffusion term is linear in the variables/constant.
17
"""
18
@inline have_constant_diffusivity(::AbstractLaplaceDiffusion) = True()
19
20
"""
21
max_diffusivity(equations_parabolic::AbstractLaplaceDiffusion)
22
23
# Returns
24
- `equations_parabolic.diffusivity`
25
26
Returns isotropic diffusion coefficient for use in parabolic cfl condition computation,
27
see [`StepsizeCallback`](@ref).
28
"""
29
@inline function max_diffusivity(equations_parabolic::AbstractLaplaceDiffusion)
30
return equations_parabolic.diffusivity
31
end
32
33
include("laplace_diffusion_1d.jl")
34
include("laplace_diffusion_2d.jl")
35
include("laplace_diffusion_3d.jl")
36
37