Example 6 : Tubed Heat Exchanger
Example 6 : Tubed Heat Exchanger
Define Parameters
In[]:=
ClearAll[r1,Ro,Ri,Βouter,Ω,u,t,x,y];Ro=1;(*outerdiameterofsystem*)Ri=0.5;(*innerdiameterofsystem*)tC=(Ro+Ri)/2;(*centerofinnertubes*)r1=(Ro-Ri)/6;(*sizeofinnertubes*)tubes=8;(*numberofinnertubes4or8*)α=0.5;(*parameterinheatequation*)
Define Region
Define Region
(*DefineRegionandBoundaries*)(*BoundariesFirst*)Βouter=Circle[{0,0},Ro];(*outerboundary*)Βinner=Circle[{0,0},Ri];(*innerboundary*)Βtubes=If[tubes==4,RegionUnion[Circle[{0,-tC},r1],Circle[{0,tC},r1],Circle[{tC,0},r1],Circle[{-tC,0},r1]],RegionUnion[Circle[{0,-tC},r1],Circle[{0,tC},r1],Circle[{tC,0},r1],Circle[{-tC,0},r1],Circle[{Cos[45*Pi/180]*tC,Sin[45*Pi/180]*tC},r1],Circle[{-Cos[45*Pi/180]*tC,Sin[45*Pi/180]*tC},r1],Circle[{Cos[45*Pi/180]*tC,-Sin[45*Pi/180]*tC},r1],Circle[{-Cos[45*Pi/180]*tC,-Sin[45*Pi/180]*tC},r1]]];(*Βtubes=TransformedRegion[Βtubes,RotationTransform[2π/16]];*)(*Region*)(*PrimaryDisk*)ΩprimaryAnnulus=RegionDifference[Disk[{0,0},Ro],Disk[{0,0},Ri]];(*InnerTubes*)Ωtubes=If[tubes==4,RegionUnion[Disk[{0,-tC},r1],Disk[{0,tC},r1],Disk[{tC,0},r1],Disk[{-tC,0},r1]],RegionUnion[Disk[{0,-tC},r1],Disk[{0,tC},r1],Disk[{tC,0},r1],Disk[{-tC,0},r1],Disk[{Cos[45*Pi/180]*tC,Sin[45*Pi/180]*tC},r1],Disk[{-Cos[45*Pi/180]*tC,Sin[45*Pi/180]*tC},r1],Disk[{Cos[45*Pi/180]*tC,-Sin[45*Pi/180]*tC},r1],Disk[{-Cos[45*Pi/180]*tC,-Sin[45*Pi/180]*tC},r1]]];(*OveralRegion*)(*Takeoutthetubes*)ΩT1=RegionDifference[ΩprimaryAnnulus,Ωtubes];(*addbacktheinnerboundariesandthetubeboundaries*)ΩTotal=RegionUnion[ΩT1,Βinner,Βtubes];(*ΩTotal=TransformedRegion[ΩTotal,RotationTransform[2π/16]];*)(*PlotRegion*)RegionPlot[DiscretizeRegion[ΩTotal,PrecisionGoal5],AspectRatioAutomatic];(*takeasectionoftheRegionNOTUSEDjustexploringtechinque*)(*Ωsection=Disk[{0,0},1,{0,Pi/8}];(*definesasectiontoremovenotusedinpdesolvingbelow*)Region[Ωsection]New=RegionIntersection[Ωsection,ΩTotal];RegionPlot[DiscretizeRegion[New,PrecisionGoal10],AspectRatioAutomatic]*)(*Discretizetheregionforlateruse*)ΩTotalMesh=DiscretizeRegion[ΩTotal,MaxCellMeasure->0.0002](*ΩTotalMesh2=DiscretizeRegion[ΩprimaryAnnulus,MaxCellMeasure->0.002];*)(*ΩtubesMesh=DiscretizeRegion[Ωtubes,MaxCellMeasure->0.002];*)
Out[]=
Define Boundary Conditions at outer and inner boundaries and at the inner tubes
Define Boundary Conditions at outer and inner boundaries and at the inner tubes
In[]:=
ClearAll[Γ,Γ2]Γ[t_]:={DirichletCondition[u[t,x,y]300,{x,y}∈Βouter],DirichletCondition[u[t,x,y]300,{x,y}∈Βinner],DirichletCondition[u[t,x,y]==0+0.5t,{x,y}∈Βtubes]};(*WhatIwantultimatlyistouseaboundaryconditionsuchasthefollowing.Butitseemstocauseproblems*)Γ2[t_]:=DirichletCondition[u[t,x,y]50,{x,y}∈Βouter],DirichletCondition[u[t,x,y]50,{x,y}∈Βinner],DirichletConditionu[t,x,y]==
,{x,y}∈Βtubes;
|
Define Initial Conditions: Solve pde without the time derivative
Define Initial Conditions: Solve pde without the time derivative
In[]:=
ClearAll[u]uinit=NDSolveValue-αu[t,x,y]0/.{t0},Γ[0],u[0,x,y],{x,y}∈ΩTotalMesh,PrecisionGoal∞;
2
∇
{x,y}
Solve the Problem
Solve the Problem
In[]:=
uif=NDSolveValueD[u[t,x,y],t]-αu[t,x,y]0,Γ[t],u[0,x,y]==uinit,u,{t,0,100},{x,y}∈ΩTotalMesh,PrecisionGoal∞;
2
∇
{x,y}
Visualize the Results
Visualize the Results
In[]:=
ContourPlot[uinit,{x,y}∈ΩTotalMesh,ContoursTable[n,{n,0,300,10}],PlotLegends->BarLegend[{"Rainbow",{0,300}}],ColorFunction->"Rainbow"]Manipulate[ContourPlot[uif[t,x,y],{x,y}∈ΩTotalMesh,ContoursTable[n,{n,0,300,10}],PlotLegends->BarLegend[{"Rainbow",{0,300}}],ColorFunction->"Rainbow"],{t,0,100,0.01}]
Out[]=
Out[]=

