Helix
Previous  Top  Next

helix03
{
HELIX.PDE
This problem shows the capabilities of FlexPDE in hyperbolic systems.

We analyze a single turn of a helical tube with a programmed flow velocity.
A contaminant is introduced into the center of the flow on the input surface.
Contaminant outflow is determined from the flow equations.
The contaminant concentration should flow uniformly around the helix.
}

title 'Helical Flow: a hyperbolic system.'

select
ngrid=30 regrid=off { Fixed grid works better in hyperbolic systems }
contourgrid=60 { increase plot grid density to resolve peak }
surfacegrid=60

variables
u

definitions
Rin = 1
Rout = 2
R0 = 1.5
dR = 0.3 { width of the input contaminant profile }
gap = 10 { angular gap between input and output faces }
gapr = gap*pi/180 { gap in radians }
cg = cos(gapr)
sg = sin(gapr)
pin = point(Rin*cg,-Rin*sg)
pout = point(Rout*cg,-Rout*sg)

r = magnitude(x,y)
v = 1
vx = -v*y/r
vy = v*x/r
q = 0 { No Source }
sink = 0 { No Sink }

equations
div(vx*u, vy*u) + sink*u + q = 0

boundaries
region 1
start (Rout,0)
value(u) = 0 { We know there should be no contaminant on walls }
arc(center=0,0) angle=360-gap { positive angle on outside }

nobc(u)   { "No BC" on exit plane allows internal solution to dictate outflow }
line to pin

value(u)=0
arc(center=0,0) angle=gap-360 { negative angle on inside }

value(u)=exp(-((x-R0)/dR)^4) { programmed inflow is supergaussian }
line to (1.2,0) to (1.4,0) to (1.6,0) to (1.8,0) to close { resolve shape }

monitors
contour(u)
plots
contour(u) painted
surface(u)
elevation(u) from (Rin,0.01) to (Rout,0.01)
elevation(u) from (0,Rin) to (0,Rout)
elevation(u) from (-Rin,0.01) to (-Rout,0.01)
elevation(u) from (0,-Rin) to (0,-Rout)
elevation(u) from pout to pin

end