Yinan-Scott-Shi / fds-smv

Automatically exported from code.google.com/p/fds-smv
0 stars 0 forks source link

Diffusion influenced by boundary between meshes #399

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
Application Version: 5.1.6 
SVN Revision Number: 1673
Compile Date: Sat, 10 May 2008
Operating System:Windows XP Professional 2002

This is a continuation of a discussion (see "Molecular weight and its 
effect on the mixing of extra gas species"  in the discussion group).

In the discussion, I noted that a generic tracer gas defined by a MW of 29 
seemed to settle in the bottom of a small cavity within a box that was 
ventilated by a 1m/s wind normal to a small single entrance (see 
WPBox_NEWFan_Fnt05_Para_A_0407.png attachment). The effect was less 
pronounced when the gas was given the same MW as air (28.8) and even less 
so at MW=28. The simulation was done in parallel with two meshes that abut 
mid-domain (at X=0), so the adjoinment ran through the cavity.

To test the movement of gases at the mesh abutment, I pared the same 
parallel simulation down so that the domain and cell size were the same 
(1m cube and 2 cm, respectively), while the obstruction and wind were 
removed.  The tracer gas was then initially confined (using INIT) to a 20 
cm cube in the center of the domain (see MW29inAir_0000.png). 

I ran the simulation for 30 s and the the tracer seems to creep upward and 
downward at the mesh abutment (see MW29inAir_0119.png). Changing the MW of 
the tracer to 28 exacerbates (accelerates) the effect somewhat.

Changing stratification and pressure correction to true or false made no 
apparent difference in this effect.

This effect did not occur when I ran the same simulation (MW=29) with only 
a single mesh. The gas diffuses outward uniformly (see 
MW29inAir_OneMesh_0118.png).

Because the cavity in the original simulation contained the boundary 
between the meshes, my thought is that the "settling" was due to a 
combination of this abutment effect and confinement.

I've pasted the input file for the test.  Thanks in advance. ~tony

&HEAD CHID='MW28inAir_TwoMesh'/

--One mesh

--&MESH IJK=50, 50, 50, XB= -0.5, 0.5, -0.5, 0.5, 0.0, 1.0/

--Two mesh
&MESH IJK=25, 50, 50, XB= -0.5, 0.0, -0.5, 0.5, 0.0, 1.0/
&MESH IJK=25, 50, 50, XB=  0.0, 0.5, -0.5, 0.5, 0.0, 1.0/

&TIME TWFIN= 30.0

&MISC TMPA= 20.0, STRATIFICATION=.TRUE., BACKGROUND_SPECIES='AIR', 
PRESSURE_CORRECTION=.TRUE. /

&DUMP DT_SLCF= 0.25, DT_DEVC=0.25, DT_RESTART=10.0/

&SPEC ID='TRACERGAS', MW=28.0/

-- Section filled with TRACERGAS --

&INIT XB=-0.10, 0.10, -0.10, 0.10, 0.4, 0.6, MASS_FRACTION=1.0 /

-- Boundary conditions --

&VENT XB=-0.5, 0.5, 0.5, 0.5, 0.0, 1.0, SURF_ID='OPEN'/Back vent
&VENT XB=-0.5, -0.5, -0.5, 0.5, 0.0, 1.0, SURF_ID='OPEN'/Left vent
&VENT XB=-0.5, 0.5, -0.5, -0.5, 0.0, 1.0, SURF_ID='OPEN'/Front vent
&VENT XB= 0.5, 0.5,-0.5, 0.5, 0.0, 1.0, SURF_ID='OPEN'/Right vent
&VENT XB=-0.5, 0.5, -0.5, 0.5, 1.0, 1.0, SURF_ID='OPEN'/Top vent
&VENT XB=-0.5, 0.5, -0.5, 0.5, 0.0, 0.0, SURF_ID='INERT'/Bottom vent

&SLCF XB= -0.5, 0.5, -0.5, 0.5, 0.0, 1.0 QUANTITY='TRACERGAS'/

&SLCF XB= -0.5, 0.5, -0.5, 0.5, 0.0, 1.0 QUANTITY='PRESSURE'/

&SLCF XB= -0.5, 0.5, -0.5, 0.5, 0.0, 1.0 QUANTITY='DENSITY'/

&SLCF XB= -0.5, 0.5, -0.5, 0.5, 0.0, 1.0 QUANTITY='TEMPERATURE'/

&SLCF PBY=0.0, QUANTITY='VELOCITY', VECTOR =.TRUE./

&SLCF PBZ=0.5, QUANTITY='VELOCITY', VECTOR =.TRUE./

Original issue reported on code.google.com by tony271...@earthlink.net on 2 Jul 2008 at 6:41

Attachments:

GoogleCodeExporter commented 9 years ago
This is a good test case for us in that we are looking at issues related to 
mesh 
boundaries.

Original comment by mcgra...@gmail.com on 2 Jul 2008 at 7:14

GoogleCodeExporter commented 9 years ago
Tony,

What you are seeing is the effect of NOISE=.TRUE. combined with the
PRESSURE_CORRECTION=.TRUE. acting on a very small velocity field (the noise).  
The
noise is added by default in FDS (LES) calculations to prompt the onset of 
turbulent
mixing.  Without this "feature" symmetric calculations remain symmetric for an
unreasonable amount of time.  The noise (velocity fluctuations) for each mesh 
will be
different at the mesh interface.  The PRESSURE_CORRECTION routine then 
compensates
for the integrated difference along the mesh interface so that volume is 
conserved
from mesh to mesh (a detailed explanation is provided in the Tech Guide).  When 
the
velocity field is small, the correction is sensitive, and the relative error in 
the
coincident velocity vectors on a mesh-to-mesh interface may be significant.  
However,
I would suspect that any amount of convection with the domain would dominate 
over the
errors caused by the noise.  I have modified your case so that NOISE=.FALSE.
(attached).  I also included a couple of other features that you might be 
interested
in if you are doing scalar transport.  The first is a flux_limiter option 
(Superbee)
that is more accurate than the current default in FDS.  Furthermore, the scheme 
is
Total Variation Diminishing (TVD), which means you will not see spurious 
oscillations
(a.k.a. wiggles, dispersion error, etc.) in the scalar field due to the 
advection
terms in the transport equation.  Complimentary to the flux limiter is the
CFL_VELOCITY_NORM=1 option, which is a tighter constraint on the time step that 
does
not allow tracer particles to traverse more than one cell on a time step.  This 
may
increase the number of time steps, but the improvement in stability and 
accuracy is
dramatic in many cases.

Another issue that is present in your case is that the tracer gas falls to the 
floor
in spite of being a lower molecular weight.  This is true even if the 
TEMPERATURE is
set on the INIT line so that it should be equal to TMPA.  You will notice in 
your
cases that actually it is the density that is held at the ambient value and the
temperature is then recalculated to yield the 12 C that you see in the cases.  
This
is a bug that we will work on.  In the mean time, try the attached input file.  
If
you have any problems, please let me know.

Randy

Original comment by randy.mc...@gmail.com on 2 Jul 2008 at 9:00

Attachments:

GoogleCodeExporter commented 9 years ago
Tony,

Also, make sure you use the latest subversion revision before using the new flux
limiter options.

http://code.google.com/p/fds-smv/source/browse  
svn|trunk|FDS|trunk|FDS_5|SOURCE_FDS5

Cheers,
Randy

Original comment by randy.mc...@gmail.com on 2 Jul 2008 at 9:09

GoogleCodeExporter commented 9 years ago
Randy,

Excellent! Thanks for your feedback and the extra features (I'll take a look at 
the 
tech manual). I'll run the input file soon. TVD is a way to ensure that the 
total 
variation at a new time step does not exceed, or is less than, that at the 
previous 
step, yes?  Will report back soon.  

ta,

~tony

Original comment by tony271...@earthlink.net on 2 Jul 2008 at 9:39

GoogleCodeExporter commented 9 years ago
Tony,

Correct.  For further reading on TVD schemes I recommend Toro, "Riemann Solvers 
and
Numerical Methods for Fluid Dynamics: A Practical Introduction", 2nd ed., 
Springer, 1999.

Best,
Randy

Original comment by randy.mc...@gmail.com on 3 Jul 2008 at 12:43

GoogleCodeExporter commented 9 years ago
I fixed a bug in the INITialization routine that had led to lower than ambient 
temperaures when a mass fraction was specified. Gases lighter than air should 
now go 
up instead of down. For further details, I recommend Archimedes, "On Floating 
Bodies," Library of Alexandria.

Original comment by mcgra...@gmail.com on 3 Jul 2008 at 6:38

GoogleCodeExporter commented 9 years ago
Great! I'll see what happens now in the simulations. Thanks for the 
recommendation. 
According to the LOA website, that scroll is currently checked out. Guess I'll 
try 
Amazon.  ~t   

Original comment by tony271...@earthlink.net on 3 Jul 2008 at 7:30

GoogleCodeExporter commented 9 years ago
I heard they had a fire...

Original comment by mcgra...@gmail.com on 3 Jul 2008 at 7:57

GoogleCodeExporter commented 9 years ago

Original comment by randy.mc...@gmail.com on 23 Jul 2008 at 12:40