TemporarySwitch_InteriorToBoundary
for the current time step, temporarily define an interior point (%BND_none%) as a boundary point, and provide boundary conditions
TemporarySwitch_InteriorToBoundary(i) = ( iTrigger, keep, [%ind_...%, value] )
-
- iTrigger :: if >0 at the beginning of a time step, then this interior point is turned into a boundary point. iTrigger is of the form of a RightHandSideExpression
- keep :: if > 0, then the point is kept as a boundary point after the time step has finished (would be an option to re-declare the free surface controlled by the user)
otherwise, at the end of the current time cycle, the point is switched back to Y%ind_kob% = %BND_none%
- %ind_...%, value :: pair of values, providing the chance to adapt point data, see examples below.
EXAMPLES:
define tempoorary boundary points and assign apropriate boundary conditions.
Define tempoorary boundary points and assign apropriate boundary conditions and adapt the normals.
TemporarySwitch_InteriorToBoundary(1) = ( [ Y
%ind_x(1)% < 0.0 ], 0,
%ind_BC%,
$BC_extended$,
%ind_n(1)%, 1,
%ind_n(2)%, 0,
%ind_n(3)%, 0 )
BC_p(
$BC_extendedBC$) = (
%BND_DIRICH%, 0)
BC_...(
$BC_extendedBC$) = ...
Remark:
The kind of boundary value Y
%ind_kob% is temporarily set to
%IDENT_free%, so that the value 11 is displayed in the results file when saving at the beginning
of the time step, although no free surface points have been created internally. If you save at the end of the time step (see
SAVE_atEndOfTimestep),
the Y
%ind_kob% value is unchanged.