anuga.Flather_external_stage_zero_velocity_boundary
- class anuga.Flather_external_stage_zero_velocity_boundary(domain=None, function=None)[source]
Boundary condition based on a Flather type approach
Setting the external stage with a function, and a zero external velocity,
The idea is similar (but not identical) to that described on page 239 of the following article:
Article{blayo05, Title = {Revisiting open boundary conditions from the point of view of characteristic variables}, Author = {Blayo, E. and Debreu, L.}, Journal = {Ocean Modelling}, Year = {2005}, Pages = {231-252}, Volume = {9}, }
Approach
The external (outside boundary) stage is set with a function, the external velocity is zero, the internal stage and velocity are taken from the domain values.
Some ‘characteristic like’ variables are computed, depending on whether the flow is incoming or outgoing. See Blayo and Debreu (2005)
The boundary conserved quantities are computed from these characteristic like variables
This has been useful as a ‘weakly reflecting’ boundary when the stage should be approximately specified but allowed to adapt to outgoing waves.
- __init__(domain=None, function=None)[source]
Create boundary condition object.
- Parameters:
domain – The domain on which to apply boundary condition
function – Function to apply on the boundary
Example:
def waveform(t): return sea_level + normalized_amplitude/cosh(t-25)**2 Bf = Flather_external_stage_zero_velocity_boundary(domain, waveform)
Methods
__init__
([domain, function])Create boundary condition object.
evaluate
(vol_id, edge_id)evaluate_segment
(domain, segment_edges)Applied in vectorized form for speed.
get_boundary_values
([t])get_time
()