11@doc raw """
2- BoundaryModelLastiwka(; extrapolate_reference_values::Bool=false )
2+ BoundaryModelLastiwka(; extrapolate_reference_values=nothing )
33
44Boundary model for [`OpenBoundarySPHSystem`](@ref).
55This model uses the characteristic variables to propagate the appropriate values
@@ -8,15 +8,19 @@ It requires a specific flow direction to be passed to the [`BoundaryZone`](@ref)
88For more information about the method see [description below](@ref method_of_characteristics).
99
1010# Keywords
11- - `extrapolate_reference_values=false`: If `true`, the reference values are extrapolated
12- from the fluid domain to the boundary particles.
11+ - `extrapolate_reference_values=nothing`: If one of the follwoing mirror methods is choosen,
12+ the reference values are extrapolated from the fluid domain to the boundary particles.
13+ - [`ZerothOrderMirroring`](@ref)
14+ - [`FirstOrderMirroring`](@ref)
15+ - [`SimpleMirroring`](@ref)
16+
1317 **Note:** This feature is experimental and has not been fully validated yet.
1418 As of now, we are not aware of any published literature supporting its use.
1519"""
16- struct BoundaryModelLastiwka
17- extrapolate_reference_values:: Bool
18- function BoundaryModelLastiwka (; extrapolate_reference_values:: Bool = false )
19- return new {} (extrapolate_reference_values)
20+ struct BoundaryModelLastiwka{T}
21+ extrapolate_reference_values:: T
22+ function BoundaryModelLastiwka (; extrapolate_reference_values= nothing )
23+ return new {typeof(extrapolate_reference_values) } (extrapolate_reference_values)
2024 end
2125end
2226
3135
3236 sound_speed = system_sound_speed (fluid_system)
3337
34- if boundary_model. extrapolate_reference_values
38+ if ! isnothing ( boundary_model. extrapolate_reference_values)
3539 (; prescribed_pressure, prescribed_velocity, prescribed_density) = cache
3640 v_fluid = wrap_v (v_ode, fluid_system, semi)
3741 u_fluid = wrap_u (u_ode, fluid_system, semi)
3842
3943 @trixi_timeit timer () " extrapolate and correct values" begin
40- extrapolate_values! (system, v, v_fluid, u, u_fluid, semi, t;
44+ extrapolate_values! (system, boundary_model. extrapolate_reference_values,
45+ v, v_fluid, u, u_fluid, semi, t;
4146 prescribed_pressure, prescribed_velocity,
4247 prescribed_density)
4348 end
0 commit comments