Le format plot3d

Le format plot3d des fichiers: Grille de calcul et Solution

la version originale de l’article nasa.gov

Le format plot3d est utilisé pour la description des grilles de calcul et des solutions CFD en forme structuré. Ci-dessous des exemples comment lire ces fichiers en Fortran 77. Dans l’exemple le fichier du maillage est ouvert sur l’unité 7 et la solution sur l’unité 8. le premier exemple est pour un cas 2D, formaté, single bloc et le deuxième est un exemple 3D, non-formaté, multi-bloc.

2D, Whole, Formatted, Single-Block Grid and Solution

      parameter ( imax = 100 )
      parameter ( jmax = 100 )

      integer i
      integer j
      integer m
      integer n
      integer ni
      integer nj

      real mach   ! freestream Mach number
      real alpha  ! freestream angle-of-attack
      real reyn   ! freestream Reynolds number
      real time   ! time

      real x(imax,jmax)
      real y(imax,jmax)

      real q(imax,jmax,4)

      open ( unit=7, form='formatted', file='2D.x' )
      open ( unit=8, form='formatted', file='2D.q' )

      read(7,*) ni, nj
      read(7,*) 
     &    (( x(i,j), i=1,ni), j=1,nj),
     &    (( y(i,j), i=1,ni), j=1,nj)

      read(8,*) ni, nj
      read(8,*) mach, alpha, reyn, time
      read(8,*) ((( q(i,j,n), i=1,ni), j=1,nj), n=1,4)

3D, Whole, Unformatted, Multi-Block Grid and Solution

      parameter ( imax  = 100 )
      parameter ( jmax  = 100 )
      parameter ( kmax  = 100 )
      parameter ( nbmax =  10 )

      integer i
      integer j
      integer m
      integer n
      integer nblocks
      integer ni (nbmax)
      integer nj (nbmax)
      integer nk (nbmax)

      real mach   ! freestream Mach number
      real alpha  ! freestream angle-of-attack
      real reyn   ! freestream Reynolds number
      real time   ! time

      real x(imax,jmax,kmax,nbmax)
      real y(imax,jmax,kmax,nbmax)
      real z(imax,jmax,kmax,nbmax)

      real q(imax,jmax,kmax,nbmax,5)

      open ( unit=7, form='unformatted', file='3D.x' )
      open ( unit=8, form='unformatted', file='3D.q' )

      read(7) nblocks
      read(7) ( ni(m), nj(m), nk(m), m = 1, nblocks )
      do  m = 1, nblocks
        read(7) 
     &    ((( x(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)),
     &    ((( y(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)),
     &    ((( z(i,j,k,m), i=1,ni(m)), j=1,nj(m)), k=1,nk(m))
      enddo

      read(8) nblocks
      read(8) ( ni(m), nj(m), nk(m), m = 1, nblocks )
      do  m = 1, nblocks
        read(8) mach, alpha, reyn, time
        read(8) 
     &    (((( q(i,j,k,m,n), i=1,ni(m)), j=1,nj(m)), k=1,nk(m)), n=1,5)
      enddo
Ce contenu a été publié dans Pre & Post Processing, SarahCFD, avec comme mot(s)-clé(s) , , , . Vous pouvez le mettre en favoris avec ce permalien.