Synthetic Turbulence Inflow Generator

From PHASTA Wiki
Revision as of 17:08, 22 February 2021 by Jopa6460 (talk | contribs) (STGInflow.dat)
Jump to: navigation, search

Synthetic Turbulence Inflow Generator (STG)

Overview

The Synthetic Turbulence Inflow generator is a method to produce an inflow boundary condition that results in turbulent flow in a short downstream distance. This method is desired to be more computationally efficient than resolving a flow through from transition. This page will cover the workflow to produce the necessary auxiliary files for running a simulation with the STG boundary condition. There are three auxiliary files that are needed for the method in the n-procs_case directory at runtime:

  • STGInflow.dat
  • STGSpectra.dat
  • STGRand.dat

All of the mentioned MATLAB scripts in this page are in the STGInit subdirectory of the file structure contained in the PHASTA code-tree from github.

STGInflow.dat

This is a file that will contain the mean velocity profiles, mean cross correlation targets, and any additional turbulence modeled scalars.

STGSpectra.dat

This file will contain the N spectral modes for each node that has the STG the boundary condition.

STGRand.dat

This file will contain random numbers for the N spectral modes. This is not a spatially varying set of numbers as the spectra is.

Preparation of Auxiliary Files

STGInflow.dat

This auxiliary file will be required not only for the running of PHASTA, but also, will be required for the random number optimization. The user will need mean flow field data at the position of the inflow from some preliminary simulation such as RANS data or data repository. The code requires this file to have the following format:

d2wall U_1 U_2 U_3 uu vv ww uv uw vw sclr1 sclr2

Where:

  • d2wall is the distance to the wall
  • U_i are the three components of the average velocity feild
  • uu, vv, ww, uv, uw, vw are the averages of the Reynolds' stress tensor
  • sclr1 and sclr2 are the scalars that represent the turbulence model.
59 for j=1:nPoints
60     i=index(j);
61     tmp=[d(i) u(i,:) R(i,:) nut(i)];
62     if (j~=nPoints)
63         fprintf(fid,'%.12E %.12E %.12E %.12E %.12E %.12E %.12E %.12E %.12E %    .12E %.12E\n',tmp);
64     elseif (j==nPoints)
65         fprintf(fid,'%.12E %.12E %.12E %.12E %.12E %.12E %.12E %.12E %.12E %    .12E %.12E',tmp);
66     end
67 end
68 
69 fclose(fid);

Running the code