CFD Online Discussion Forums

CFD Online Discussion Forums (http://www.cfd-online.com/Forums/)
-   Tecplot (http://www.cfd-online.com/Forums/tecplot/)
-   -   Tecplot & decomposed domain (http://www.cfd-online.com/Forums/tecplot/112994-tecplot-decomposed-domain.html)

Zato_Ichi February 9, 2013 08:48

Tecplot & decomposed domain
 
Dear all, i'm stuck in a problem with using Tecplot for data obtained in parallel computations. I use domain decomposition method for highly accurate hydrodynamics simulations. To avoid alot of reduce operations each process save binary data in it's own .dat file. There is Fortran subroutine which i use for saving:

Code:

SUBROUTINE SAVEBIN4(num)

USE Geometry1
USE ThermoAndFront2
USE Viscosity3
USE Parallel4

IMPLICIT REAL*8 (A-H,O-Z)
!INCLUDE 'C1.IN'
!INCLUDE 'C2.IN'
!INCLUDE 'C3.IN'
!INCLUDE 'C4.IN'

COMMON/IOF/IXYSZ,IXZSY,IYZSX

!CHARACTER(LEN=100) filename
INTEGER num

INTEGER CONVERTSTR3
INTEGER*4 s,i,istr(40),i1,i2
CHARACTER*20 cstr
REAL*4 r,r1(6)
!INTEGER 105+MRANK

!105+MRANK = 105+MRANK+MRANK

IUNIT = 205

OPEN(UNIT=IUNIT, FILE=FileName, STATUS='REPLACE', FORM='BINARY')

!Header identification
WRITE(205)'#!TDV75 '

!Integer order
i=1
WRITE(205)i

!Title
cstr='Flame test\0'C
n=CONVERTSTR3(istr,cstr)
WRITE(205)(istr(i),i=1,n)

!Number of variables
i=11
WRITE(205)i

!Variable names
cstr='X'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='Y'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='Z'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='P'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='T'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='Rho'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='U'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='V'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='W'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='H2/AN'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
cstr='Vsound'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))
!Zone description
!Zone marker
r=299.0
WRITE(205)r

!Zone name
WRITE(cstr,'(4HZone,I6.6,A)')num,CHAR(0)
!cstr=cstr//'\0'C
WRITE(205)(istr(i),i=1,CONVERTSTR3(istr,cstr))

!Zone format
i=1
WRITE(205)i

!Zone color
i=-1
WRITE(205)i

!IMAX, JMAX, KMAX
!i=NZSm
!i1=NYSm
!i2=NXSm-NX1m-NX0m+1
i=NZSm
i1=NYSm-NY1m-NY0m+1
i2=NXSm-NX1m-NX0m+1
WRITE(205)i,i1,i2

!Data section marker
r=357.0
WRITE(205)r

!Data section
!Zone iplementation
r=299.0
WRITE(205)r

!Repeat vars
i=0
WRITE(205)i

!Var types
i=1
i1=1
i2=1
WRITE(205)i,i1,i2
i1=1
i2=1
i=1
WRITE(205)i1,i2,i
i1=1
i2=1
i=1
WRITE(205)i1,i2,i
i1=1
i2=1
WRITE(205)i1,i2

!Data
IJK=1+KL2+(NX0m-1)*NKX+(NY0m-1)*NKY;
IJS=IJK;IYS=1;IXS=1
DO 997 I=NX0m,NXSm-NX1m           
DO 996 J=NY0m,NYSm-NY1m
DO 990 K=1,NZSm
!Saving data:
r1(1)=X(IJK+1)
r1(2)=X(IJK+2)
r1(3)=X(IJK+3)    !X(IJK+9) 
r1(4)=X(IJK+8)    !X(IJK+10)           
r1(5)=X(IJK+18)    !X(IJK+11)
r1(6)=X(IJK+7)    !X(IJK+8)       
WRITE(IUNIT)r1(1),r1(2),r1(3),r1(4),r1(5),r1(6) ! 
r1(1)=X(IJK+9)   
r1(2)=X(IJK+10)
r1(3)=X(IJK+11)
r1(4)=X(IJK+27)/X(IJK+4)         
r1(5)=X(IJK+48) 
!r1(3)=X(IJK+18)                                     
WRITE(IUNIT)r1(1),r1(2),r1(3),r1(4),r1(5)

IJK=IJK+KL       
  990 CONTINUE                   
IJK=IJS+IYS*NKY       
  996 IYS=IYS+1   
IJS=IJS+NKX
IJK=IJS
IYS=1
  997 CONTINUE

CLOSE(IUNIT)

200 FORMAT(6E13.6)
201 FORMAT(4I7)

END

My domain structure is quite simple - it's a brick. So each .dat file has it's own header and data. Obviously, than i load this in tecplot, i get separated smaller bricks:

http://i46.tinypic.com/2vxf8dk.jpg

I've tried to make only one header on Rank 0 process, and other processes just save their data in that header file in some order. Best i've got:

http://i45.tinypic.com/2mm9ykk.jpg

Anyone have any ideas, how to make one solid zone from this clustered data ?

Many thanks for your help !


All times are GMT -4. The time now is 04:35.