Skip to content

Commit daa9f4c

Browse files
authored
Merge pull request #13746 from mcgratta/master
FDS Verification: Add dancing_eddies_embed case
2 parents 9bdd58d + b508a14 commit daa9f4c

File tree

6 files changed

+740
-2
lines changed

6 files changed

+740
-2
lines changed

Manuals/FDS_Verification_Guide/FDS_Verification_Guide.tex

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2805,10 +2805,14 @@ \section{Multi-mesh Pressure and Temperature Lapse (\texorpdfstring{\textct{laps
28052805

28062806
\newpage
28072807

2808-
\section{Randomly Overlapping Meshes (\texorpdfstring{\textct{random\_meshes}}{random\_meshes})}
2808+
\section{Embedded Meshes}
2809+
2810+
In most FDS simulations, multiple meshes are positioned adjacent to each other to allow two-way communication. However, in some special circumstances, meshes can overlap. This section has a few examples.
2811+
2812+
\subsection{Randomly Overlapping Meshes (\texorpdfstring{\textct{random\_meshes}}{random\_meshes})}
28092813
\label{random_meshes}
28102814

2811-
In most FDS simulations, multiple meshes are positioned adjacent to each other to allow two-way communication. However, in some instances, meshes need to overlap, and this case verifies the functionality of meshes that overlap in a variety of ways. It is a 2-D case that runs fast and is easy to visualize. There are five overlapping meshes shown at left in Fig.~\ref{random_meshes_fig}. Air is blown in at the bottom and exhausted via an open vent at the top. The volume flow rate is fixed at 0.012~m$^3$/s, and the plot at right in Fig.~\ref{random_meshes_fig} verifies that the simulation matches to within a few percent. The case uses the default normal velocity tolerance at solid and interpolated boundaries; thus, there is some error expected in the volume flow due to the solution of the Poisson equation. As a further check that the mesh allocations are being properly handled, there is a fine mesh embedded within the coarse, and the case is run with four MPI processes rather than five.
2815+
This case verifies the functionality of meshes that overlap in a variety of ways. It is a 2-D case that runs fast and is easy to visualize. There are five overlapping meshes shown at left in Fig.~\ref{random_meshes_fig}. Air is blown in at the bottom and exhausted via an open vent at the top. The volume flow rate is fixed at 0.012~m$^3$/s, and the plot at right in Fig.~\ref{random_meshes_fig} verifies that the simulation matches to within a few percent. The case uses the default normal velocity tolerance at solid and interpolated boundaries; thus, there is some error expected in the volume flow due to the solution of the Poisson equation. As a further check that the mesh allocations are being properly handled, there is a fine mesh embedded within the coarse, and the case is run with four MPI processes rather than five.
28122816

28132817
\begin{figure}[!ht]
28142818
\begin{tabular*}{\textwidth}{lr}
@@ -2819,6 +2823,17 @@ \section{Randomly Overlapping Meshes (\texorpdfstring{\textct{random\_meshes}}{r
28192823
\label{random_meshes_fig}
28202824
\end{figure}
28212825

2826+
\subsection{Tracking Eddies (\texorpdfstring{\textct{dancing\_eddies\_embed}}{dancing\_eddies\_embed})}
2827+
\label{dancing_eddies_embed}
2828+
2829+
This 2-D channel flow tests the ability of the flow solver to track an eddy from a coarse mesh to a fine mesh. Referring to Fig.~\ref{dancing_eddies_embed_fig}, the flow is from left to right, and there is an obstruction upstream that generates a vortex street. The coarse mesh size is 1~mm and the fine is 0.5~mm. The fine mesh is fully embedded within the coarse, and information is transferred from the coarse to the fine mesh via its inflow boundaries. The overlapping region should contain approximately the same flow, as evidenced by the overlapping flow vectors.
2830+
2831+
\begin{figure}[!ht]
2832+
\includegraphics[width=\textwidth]{SCRIPT_FIGURES/dancing_eddies_embed.png}
2833+
\caption[The \textct{dancing\_eddies\_embed} test case]{Close-up of a fine mesh embedded within a coarse mesh with two eddies passing through.}
2834+
\label{dancing_eddies_embed_fig}
2835+
\end{figure}
2836+
28222837

28232838
\section{Overlapping INIT Regions (\texorpdfstring{\textct{init\_overlap}}{init\_overlap})}
28242839
\label{init_overlap}

Verification/FDS_Cases.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ $QFDS -d Pressure_Effects obst_coarse_fine_interface.fds
388388

389389
$QFDS -d Pressure_Solver dancing_eddies_1mesh.fds
390390
$QFDS -d Pressure_Solver opening_ulmat.fds
391+
$QFDS -p 5 -d Pressure_Solver dancing_eddies_embed.fds
391392
$QFDS -p 4 -d Pressure_Solver dancing_eddies_ulmat.fds
392393
$QFDS -p 4 -d Pressure_Solver dancing_eddies_ulmat_hypre.fds
393394
$QFDS -p 4 -d Pressure_Solver dancing_eddies_uglmat.fds

Verification/FDS_Pictures.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ $RUNSMV -d Miscellaneous obst_cone.fds
6565
$RUNSMV -d Miscellaneous obst_rotbox.fds
6666
$RUNSMV -d NS_Analytical_Solution ns2d_64.fds
6767
$RUNSMV -d Pressure_Effects pressure_boundary.fds
68+
$RUNSMV -d Pressure_Solver dancing_eddies_embed.fds
6869
$RUNSMV -d Pressure_Solver dancing_eddies_tight.fds
6970
$RUNSMV -d Scalar_Analytical_Solution move_slug.fds
7071
$RUNSMV -d Scalar_Analytical_Solution move_slug_fl1.fds
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
&HEAD CHID='dancing_eddies_embed', TITLE='Simple 2D Tunnel'/
2+
3+
&MULT ID='mesh',DX=0.075,I_UPPER=3 /
4+
&MESH IJK=75,1,40, XB=0.0,0.075,-0.001,0.001,-0.02,0.020, MULT_ID='mesh' /
5+
6+
&MESH IJK=60,1,40, XB=0.160,0.190,-0.001,0.001,-0.010,0.010, COLOR='RED' /
7+
8+
&TIME T_END=2.0 /
9+
10+
&MISC SIMULATION_MODE='DNS', STRATIFICATION=.FALSE., NOISE=.FALSE. /
11+
12+
&PRES CHECK_POISSON=T, TUNNEL_PRECONDITIONER=F /
13+
14+
&SPEC ID='LJ AIR', VISCOSITY=1.2E-5, BACKGROUND=.TRUE. /
15+
16+
&SURF ID='WALL', FREE_SLIP=.TRUE., DEFAULT=.TRUE. /
17+
&SURF ID='PLATE', NO_SLIP=.TRUE. /
18+
19+
&OBST XB=0.020,0.021,-0.001,0.001, 0.004,0.005, SURF_ID='PLATE' /
20+
&OBST XB=0.100,0.102,-0.001,0.001,-0.005,0.005, SURF_ID='PLATE' /
21+
22+
&SURF ID='BLOW', VEL=-0.5 /
23+
24+
&VENT PBX=0.0, SURF_ID='BLOW' /
25+
&VENT PBX=0.3, SURF_ID='OPEN' /
26+
27+
&SLCF PBY=0.,QUANTITY='VELOCITY',VECTOR=.TRUE. /
28+
&SLCF PBY=0.,QUANTITY='H' /
29+
&SLCF PBY=0.,QUANTITY='PRESSURE' /
30+
31+
&DEVC XYZ=0.2,0.,0.0, QUANTITY='PRESSURE', ID='pres' /
32+
&DEVC XYZ=0.,0.,0., QUANTITY='MAXIMUM VELOCITY ERROR', ID='error' /
33+
&DEVC XYZ=0.,0.,0., QUANTITY='PRESSURE ITERATIONS', ID='iter' /
34+
35+
&TAIL /
36+
37+

0 commit comments

Comments
 (0)