Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
trixi-framework
GitHub Repository: trixi-framework/Trixi.jl
Path: blob/main/src/equations/equations_parabolic.jl
2802 views
1
# specify transformation of conservative variables prior to taking gradients.
2
# specialize this function to compute gradients e.g., of primitive variables instead of conservative
3
gradient_variable_transformation(::AbstractEquationsParabolic) = cons2cons
4
5
# By default, the gradients are taken with respect to the conservative variables.
6
# this is reflected by the type parameter `GradientVariablesConservative` in the abstract
7
# type `AbstractEquationsParabolic{NDIMS, NVARS, GradientVariablesConservative}`.
8
struct GradientVariablesConservative end
9
10
# Linear scalar diffusion for use in linear scalar advection-diffusion problems
11
abstract type AbstractLaplaceDiffusion{NDIMS, NVARS} <:
12
AbstractEquationsParabolic{NDIMS, NVARS, GradientVariablesConservative} end
13
14
"""
15
have_constant_diffusivity(::AbstractLaplaceDiffusion)
16
17
# Returns
18
- `True()`
19
20
Used in diffusive CFL condition computation (see [`StepsizeCallback`](@ref)) to indicate that the
21
diffusivity is constant in space and that [`max_diffusivity`](@ref) needs **not** to be re-computed
22
at every node in every element.
23
24
Also employed in [`linear_structure`](@ref) and [`linear_structure_parabolic`](@ref) to check
25
if the diffusion term is linear in the variables/constant.
26
"""
27
@inline have_constant_diffusivity(::AbstractLaplaceDiffusion) = True()
28
29
"""
30
max_diffusivity(equations_parabolic::AbstractLaplaceDiffusion)
31
32
# Returns
33
- `equations_parabolic.diffusivity`
34
35
Returns isotropic diffusion coefficient for use in diffusive CFL condition computation,
36
see [`StepsizeCallback`](@ref).
37
"""
38
@inline function max_diffusivity(equations_parabolic::AbstractLaplaceDiffusion)
39
return equations_parabolic.diffusivity
40
end
41
42
include("laplace_diffusion_1d.jl")
43
include("laplace_diffusion_2d.jl")
44
include("laplace_diffusion_3d.jl")
45
46
include("laplace_diffusion_entropy_variables.jl")
47
include("laplace_diffusion_entropy_variables_1d.jl")
48
include("laplace_diffusion_entropy_variables_2d.jl")
49
include("laplace_diffusion_entropy_variables_3d.jl")
50
51
# Compressible Navier-Stokes equations
52
abstract type AbstractCompressibleNavierStokesDiffusion{NDIMS, NVARS, GradientVariables} <:
53
AbstractEquationsParabolic{NDIMS, NVARS, GradientVariables} end
54
include("compressible_navier_stokes.jl")
55
include("compressible_navier_stokes_1d.jl")
56
include("compressible_navier_stokes_2d.jl")
57
include("compressible_navier_stokes_3d.jl")
58
59