Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FDS Verification: Add dancing_eddies_embed case #13746

Merged
merged 1 commit into from
Nov 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 17 additions & 2 deletions Manuals/FDS_Verification_Guide/FDS_Verification_Guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -2805,10 +2805,14 @@ \section{Multi-mesh Pressure and Temperature Lapse (\texorpdfstring{\textct{laps

\newpage

\section{Randomly Overlapping Meshes (\texorpdfstring{\textct{random\_meshes}}{random\_meshes})}
\section{Embedded Meshes}

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.

\subsection{Randomly Overlapping Meshes (\texorpdfstring{\textct{random\_meshes}}{random\_meshes})}
\label{random_meshes}

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.
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.

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

\subsection{Tracking Eddies (\texorpdfstring{\textct{dancing\_eddies\_embed}}{dancing\_eddies\_embed})}
\label{dancing_eddies_embed}

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.

\begin{figure}[!ht]
\includegraphics[width=\textwidth]{SCRIPT_FIGURES/dancing_eddies_embed.png}
\caption[The \textct{dancing\_eddies\_embed} test case]{Close-up of a fine mesh embedded within a coarse mesh with two eddies passing through.}
\label{dancing_eddies_embed_fig}
\end{figure}


\section{Overlapping INIT Regions (\texorpdfstring{\textct{init\_overlap}}{init\_overlap})}
\label{init_overlap}
Expand Down
1 change: 1 addition & 0 deletions Verification/FDS_Cases.sh
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,7 @@ $QFDS -d Pressure_Effects obst_coarse_fine_interface.fds

$QFDS -d Pressure_Solver dancing_eddies_1mesh.fds
$QFDS -d Pressure_Solver opening_ulmat.fds
$QFDS -p 5 -d Pressure_Solver dancing_eddies_embed.fds
$QFDS -p 4 -d Pressure_Solver dancing_eddies_ulmat.fds
$QFDS -p 4 -d Pressure_Solver dancing_eddies_ulmat_hypre.fds
$QFDS -p 4 -d Pressure_Solver dancing_eddies_uglmat.fds
Expand Down
1 change: 1 addition & 0 deletions Verification/FDS_Pictures.sh
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ $RUNSMV -d Miscellaneous obst_cone.fds
$RUNSMV -d Miscellaneous obst_rotbox.fds
$RUNSMV -d NS_Analytical_Solution ns2d_64.fds
$RUNSMV -d Pressure_Effects pressure_boundary.fds
$RUNSMV -d Pressure_Solver dancing_eddies_embed.fds
$RUNSMV -d Pressure_Solver dancing_eddies_tight.fds
$RUNSMV -d Scalar_Analytical_Solution move_slug.fds
$RUNSMV -d Scalar_Analytical_Solution move_slug_fl1.fds
Expand Down
37 changes: 37 additions & 0 deletions Verification/Pressure_Solver/dancing_eddies_embed.fds
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
&HEAD CHID='dancing_eddies_embed', TITLE='Simple 2D Tunnel'/

&MULT ID='mesh',DX=0.075,I_UPPER=3 /
&MESH IJK=75,1,40, XB=0.0,0.075,-0.001,0.001,-0.02,0.020, MULT_ID='mesh' /

&MESH IJK=60,1,40, XB=0.160,0.190,-0.001,0.001,-0.010,0.010, COLOR='RED' /

&TIME T_END=2.0 /

&MISC SIMULATION_MODE='DNS', STRATIFICATION=.FALSE., NOISE=.FALSE. /

&PRES CHECK_POISSON=T, TUNNEL_PRECONDITIONER=F /

&SPEC ID='LJ AIR', VISCOSITY=1.2E-5, BACKGROUND=.TRUE. /

&SURF ID='WALL', FREE_SLIP=.TRUE., DEFAULT=.TRUE. /
&SURF ID='PLATE', NO_SLIP=.TRUE. /

&OBST XB=0.020,0.021,-0.001,0.001, 0.004,0.005, SURF_ID='PLATE' /
&OBST XB=0.100,0.102,-0.001,0.001,-0.005,0.005, SURF_ID='PLATE' /

&SURF ID='BLOW', VEL=-0.5 /

&VENT PBX=0.0, SURF_ID='BLOW' /
&VENT PBX=0.3, SURF_ID='OPEN' /

&SLCF PBY=0.,QUANTITY='VELOCITY',VECTOR=.TRUE. /
&SLCF PBY=0.,QUANTITY='H' /
&SLCF PBY=0.,QUANTITY='PRESSURE' /

&DEVC XYZ=0.2,0.,0.0, QUANTITY='PRESSURE', ID='pres' /
&DEVC XYZ=0.,0.,0., QUANTITY='MAXIMUM VELOCITY ERROR', ID='error' /
&DEVC XYZ=0.,0.,0., QUANTITY='PRESSURE ITERATIONS', ID='iter' /

&TAIL /


Loading