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

  1. 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.

  2. Some ‘characteristic like’ variables are computed, depending on whether the flow is incoming or outgoing. See Blayo and Debreu (2005)

  3. 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()