<< Click to Display Table of Contents >> swage_test |
{ SWAGE_TEST.PDE
This example illustrates the use of the SWAGE and RAMP functions to generate
smoother alternatives to the IF..THEN construct.
IF..THEN is frequently used to turn sources on and off, to define discontinuous
initial conditions and the like.
But in an adaptive system like FlexPDE, discontinuities can be very troublesome.
They create very high frequency transients which can cause intense regridding
and tiny timesteps. When they occur in equation coefficients, they can cause
convergence failure in Newton's method iterations.
The SWAGE and RAMP functions are an attempt to give users an alternative to the
IF..THEN for defining transitions. These functions, particularly SWAGE, allow
FlexPDE to sense the presence of a transition and follow it in the iterative solver.
In the plots created by this problem, we show both the values generated by the functions,
and their derivatives. By contrast, an IF..THEN has an infinite (ie, undefined) derivative
which is impossible to accurately represent numerically.
}
title "SWAGE and RAMP Functions"
select elevationgrid=2000
{ -- No variables, no equations -- }
{ -- Definitions can be included, if desired -- }
{ -- We need a plot domain: -- } boundaries region 1 start(-1,-0.1) line to (1,-0.1) to (1,0.1) to (-1,0.1) to close
plots elevation(ramp(x,-1,1,0.1), swage(x,-1,1,0.1)) from (-0.5,0) to (0.5,0) as "Functions"
elevation(dx(ramp(x,-1,1,0.1)), dx(swage(x,-1,1,0.1))) from (-0.5,0) to (0.5,0) as "Derivatives"
elevation(dxx(ramp(x,-1,1,0.1)), dxx(swage(x,-1,1,0.1))) from (-0.5,0) to (0.5,0) as "Curvature"
end
|