Chapter 15. PROFILE FILE OUTPUT FORMAT


TABLE OF CONTENTS CLOSE MANUAL



The VULCAN code has the ability to read and write VULCAN profile files. This type of file contains the non-dimensional conserved variable array Q, and the non-dimensional static temperature QG(3), located at the cell center of the last two rows of computational cells adjacent to a given computational boundary when used with BC NAME PROFILE or BC TYPEs PROFILE or PPROFILE. When the BC TYPE is either STWALLM or CPWALLM the data to be read into the Q and QG arrays are defined dependent on the boundary condition type.

Non-dimensional conserved variables = Q(nj,nk,ni,NQ,nlev)
Non-dimensional static temperature = QG(nj,nk,ni,3,nlev)

nj, nk and ni are the grid dimensions in the "j", "k", and "i" directions, NQ is the number of governing equations being solved, nblk is the number of grid blocks, and nlev is the number of grid levels.

The conserved variables used by VULCAN are broken into 6 groups having the following order and non-dimensionalization :

1) The chemical species densities (rho_i):
   Q(nj,nk,ni,nq,nblk,1->NCS,nlev)/RHOREF

2) The mixture static density       (rho):
   Q(nj,nk,ni,nq,nblk,NCS+1,nlev)/RHOREF

3) The 3 momentums    (rho*v,rho*w,rho*u):
   Q(nj,nk,ni,nq,nblk,NCS+2->NCS+4,nlev)/(RHOREF*AREF)

a) for two-dimensional and axi-symmetric simulations the momentum eq.'s are ordered rho*v, rho*u and rho*w (rho*w should always be = 0.0)

b) for three-dimensional simulations the momentum eq.'s are ordered rho*v, rho*w and rho*u

4) The total energy per unit volume  (Et):
   Q(nj,nk,ni,nq,nblk,NCS+5,nlev)/(RHOREF*AREF*AREF)

5) The turbulent kinetic energy   (rho*k):
   Q(nj,nk,ni,nq,nblk,NCS+6,nlev)/(RHOREF*AREF*AREF)

6) The turbulent dissipation like variable

a) for the epsilon eq. (rho*Epsilon):   Q(nj,nk,ni,nq,nblk,NCS+7,nlev)/(RHOREF*AREF*AREF*AREF)

b) for the omega eq.     (rho*omega):
Q(nj,nk,ni,nq,nblk,NCS+7,nlev)/(RHOREF*AREF)

where NCS is the No. of Chemical Species (Note that for a calorically perfect gas NCS is equal to 0), RHOREF is the reference static density (kg/m**3) AREF is the reference frozen speed of sound (m/sec.)
The non-dimensional conserved variable data is immediately followed by the non-dimensional static temperature data QG(nj,nk,ni,3,nblk,NCS+5,nlev)/(TREF) where TREF is the reference static temperature (Kelvins).

1) The chemical species mass fractions (f_i):
   Q(nj,nk,ni,nq,nblk,1->NCS,nlev)

2) The mixture static density (rho ; kg/m**3):
   Q(nj,nk,ni,nq,nblk,NCS+1,nlev)

3) The 3 velocities (u, v and w ; m/sec):
   Q(nj,nk,ni,nq,nblk,NCS+2->NCS+4,nlev)

a) for two-dimensional and axi-symmetric simulations the momentum eq.'s are ordered u, v and w (w should always be = 0.0)

b) for three-dimensional simulations the momentum eq.'s are ordered u, v and w

4) The static pressure (Ps ; N/m**2):
   Q(nj,nk,ni,nq,nblk,NCS+5,nlev)

5) The turbulent kinetic energy (k ; m**2/sec**2):
   Q(nj,nk,ni,nq,nblk,NCS+6,nlev)

6) The turbulent dissipation like variable

a) for epsilon (epsilon ; m**2/ksec**3):   Q(nj,nk,ni,nq,nblk,NCS+7,nlev)

b) for omega (omega ; 1/sec):
Q(nj,nk,ni,nq,nblk,NCS+7,nlev)

where NCS is the No. of Chemical Species (Note that for a calorically perfect gas NCS is equal to 0).
NOTE: Because the primitive variables are to be specified in dimensional form the reference quantities RHOREF, AREF, TREF, and RMUREF that are written into the profile file MUST!!! be set to 1.0 (see the FORTRAN code fragment(s) below).
The dimensional primitive variable data is immediately followed by the dimensional static temperature data QG(nj,nk,ni,3,nblk,NCS+5,nlev) where the static temperature is in Kelvins.
1) For a BC TYPE of STWALLM the values of the data to be read from the profile file should be:
      1. The data to be read into the 1st chemical species position through the number of chemical species position should be set to zero (This data is not needed if running a calorically perfect simulation).
      2. The data to be read into the mixture static density position should be set to the value of the desired wall thermal conductivity (Watts/Meter-Kelvin) divided by the reference density (Kilograms/Meter**3).
      3. The data to be read into the 1st and 2nd momentum positions should be set to zero.
      4. The data to be read into the 3rd momentum position should be set to the value of the desired wall thickness (Meters) divided by the product of the reference density and the reference speed of sound squared.
      5. The remaining data to be read into the Q array should be set to zero.
The arrangement and numbering of cells adjacent to an arbitrary computational boundary face where L is the face type (i,j or k) and M and N are the coordinate directions tangent to the boundary face (e.g. if L=i, M is j and N is k) is shown below,


                           A MIN boundary B.C.
                  *---------*---------*---------*---------*
                  |         |        \|         |         |
                  |         |        \|         |         |
    L-Direction-> |  ghost  |  ghost \|  inter. |  inter. |
                  |  MIN-2  |  MIN-1 \|   MIN   |  MIN+1  |
                  |         |        \|         |         |
                  *---------*---------*---------*---------*

                             A MAX boundary B.C.
                  *---------*---------*---------*---------*
                  |         |         |/        |         |
                  |         |         |/        |         |
    L-Direction-> |  inter. |  inter. |/ ghost  |  ghost  |
                  |  MAX-1  |   MAX   |/ MAX+1  |  MAX+2  |
                  |         |         |/        |         |
                  *---------*---------*---------*---------*

        The cells are ordered in the following manner:

                  *---------*---------*---------*---------*
                  |         |         |         |         |
                  |         |         |         |         |
                  |    g    |    g    |    g    |    g    |
                  |   1,MSIZ|         |         |NSIZ,MSIZ|
                  |         |         |         |         |
                  *---------*---------*---------*---------*
                  |         |         |         |         |
                  |         |         |         |         |
                  |   g     |    g    |    g    |    g    |
                  |         |         |         |         |
                  |         |         |         |         |
                  *---------*---------*---------*---------*
                  |         |         |         |         |
                  |         |         |         |         |
                  |    g    |    g    |    g    |    g    |
                  |         |         |         |         |
                  |         |         |         |         |
                  *---------*---------*---------*---------*
                  |         |         |         |         |
                  |         |         |         |         |
                  |    g    |    g    |    g    |    g    |
                  |   1,1   |         |         |NSIZ,M   |
                  |         |         |         |         |
               M  *---------*---------*---------*---------*
               | L
               |/
               +---N

Figure 11. Boundary condition cell ordering and orientation.


An I-boundary profile boundary condition will write a profile file using the following FORTRAN code fragment:
C
C Open the profile file
C
         OPEN (IQPFOT,FILE=QPFILO,STATUS='UNKNOWN',FORM='FORMATTED')
C
         WRITE(IQPFOT,*) NCOORD
         WRITE(IQPFOT,*) NQ, ITRBMD
         WRITE(IQPFOT,*) RHOREF, AREF, TREF, RMUREF
         WRITE(IQPFOT,*) (JBCEN-JBCBG+1)/1,(KBCEN-KBCBG+1)/1, 3, JGSTFLG, KGSTFLG
C
C Write the conserved variables
C
         DO L = 1, NQ
            IF = 0
            DO I = IQBG, IQBG+IINDX, IINDX
               IF = IF + 1
               DO K = KBCBG, KBCEN, 1
                  DO J = JBCBG, JBCEN, 1
                     WRITE(IQPFOT,*) Q(J,K,IF,L,0)
                  ENDDO
               ENDDO
            ENDDO
         ENDDO
C
C Write the static temperature
C
         IF  = 0
         DO I = IQBG, IQBG+IINDX, IINDX
            IF = IF + 1
            DO K = KBCBG, KBCEN, 1
               DO J = JBCBG, JBCEN, 1
                  WRITE(IQPFOT,*) QG(J,K,IF,3,0)
               ENDDO
            ENDDO
         ENDDO
C
C Close the profile file
C
         CLOSE (IQPFOT)

   A J-boundary profile boundary condition will write a profile file using the following FORTRAN code fragment:
C
C Open the profile file
C
         OPEN (IQPFOT,FILE=QPFILO,STATUS='UNKNOWN',FORM='FORMATTED')
C
C Write the conserved variables
C
         WRITE(IQPFOT,*) NCOORD
         WRITE(IQPFOT,*) NQ, ITRBMD
         WRITE(IQPFOT,*) RHOREF, AREF, TREF, RMUREF
         WRITE(IQPFOT,*) (KBCEN-KBCBG+1)/1,(IBCEN-IBCBG+1)/1, 1, KGSTFLG, IGSTFLG
C
         DO L = 1, NQ
            JF = 0
            DO J = JQBG, JQBG+JINDX, JINDX
               JF = JF + 1
               DO I = IBCBG, IBCEN, 1
                  DO K = KBCBG, KBCEN, 1
                     WRITE(IQPFOT,*) Q(JF,K,I,L,0)
  900             ENDDO
  910          ENDDO
  920       ENDDO
  930    ENDDO
C
C Write the static temperature
C
         JF  = 0
         DO J = JQBG, JQBG+JINDX, JINDX
            JF = JF + 1
            DO I = IBCBG, IBCEN, 1
               DO K = KBCBG, KBCEN, 1
                  WRITE(IQPFOT,*) QG(JF,K,I,3,0)
               ENDDO
            ENDDO
         ENDDO
C
C Close the profile file
C
         CLOSE (IQPFOT)

   A K-boundary profile boundary condition will write a profile file using the following FORTRAN code fragment:
C
C Open the profile file
C
         OPEN (IQPFOT,FILE=QPFILO,STATUS='UNKNOWN',FORM='FORMATTED')
C
         WRITE(IQPFOT,*) NCOORD
         WRITE(IQPFOT,*) NQ, ITRBMD
         WRITE(IQPFOT,*) RHOREF, AREF, TREF, RMUREF
         WRITE(IQPFOT,*) (JBCEN-JBCBG+1)/1,(IBCEN-IBCBG+1)/1, 2, JGSTFLG, IGSTFLG
C
C Write the conserved variables
C
         DO 975 L = 1, NQ
            KF = 0
            DO K = KQBG, KQBG+KINDX, KINDX
               KF = KF + 1
               DO I = IBCBG, IBCEN, 1
                  DO J = JBCBG, JBCEN, 1
                     WRITE(IQPFOT,*) Q(J,KF,I,L,0)
                  ENDDO
               ENDDO
            ENDDO
         ENDDO
C
C Write the static temperature
C
         KF  = 0
         DO K = KQBG, KQBG+KINDX, KINDX
            KF = KF + 1
            DO I = IBCBG, IBCEN, 1
               DO J = JBCBG, JBCEN, 1
                  WRITE(IQPFOT,*) QG(J,KF,I,3,0)
               ENDDO
            ENDDO
         ENDDO
C
C Close the profile file
C
         CLOSE (IQPFOT)

where:

IGSTFLG, JGSTFLG and KGSTFLG are ghost cell indicators:

  1. If the profile starts at the i-, j-, or k-min boundary of the block the min boundary ghost cell must be included in the profile and IGSTFLG, JGSTFLG or KGSTFLG must be set to -1.
  2. If the profile ends at the i-, j-, or k-max boundary of the block the max boundary ghost cell must be included in the profile and IGSTFLG, JGSTFLG or KGSTFLG must be set to +1.
  3. If the profile starts at the i-, j-, or k-min boundary and ends at the i-, j-, or k-max boundary of the block the min and max boundary ghost cells must be included in the profile and IGSTFLG, JGSTFLG or KGSTFLG must be set to +2.
  4. If the profile does not starts above the i-, j-, or k-min boundary and ends before the i-, j-, or k-max boundary of the block the min and max boundary ghost cells are not included in the profile and IGSTFLG, JGSTFLG or KGSTFLG must be set to 0.

NCOORD is the geometry type;

ITRBMD is the turbulence model type; and RMUREF is the reference molecular viscosity (kg/m/sec).

NOTE : The implementation of the Wilcox and Menter turbulence models are different in that the omega variable is defined for each model as:

1) Wilcox : omega = epsilon/k
2) Menter : omega = epsilon/(C_mu*k)
where k is the turbulent kinetic energy, epsilon is the turbulent dissipation, and C_mu is approximately equal to 0.09.


TABLE OF CONTENTS CLOSE MANUAL