FIDAP NEUTRAL FILE
The FIDAP neutral file is an ASCII file that can be used for either of two purposes:
The NEUTRAL option of the FICONV module is used for these purposes.
Once the conversion has been successfully performed, the mesh, initial condition, boundary condition, and element connectivity data can be accessed using any valid FIDAP command. If results are present, FIPOST can be used to view the results.
This appendix describes the format of the FIDAP neutral file by providing a pseudo-Fortran program which can be used as a template for creating a FIDAP neutral file.
PROGRAM CREATE_NEUTRAL_FILE
C
C THIS IS A
PSEUDO-FORTRAN PROGRAM WHICH DESCRIBES THE FORTRAN
C WRITE STATEMENTS THAT
MAY USED TO CREATE A FIDAP NEUTRAL FILE.
C
IMPLICIT DOUBLE PRECISION
(A-H,O-Z)
C
C MAXIMUM NUMBER OF NODAL POINTS
PARAMETER
(NUMNP=10000)
C MAXIMUM NUMBER OF SPECIES EQUATIONS
PARAMETER
(MAXSPC=15)
C NO. OF COORDINATE DIMENSIONS (2 OR 3)
PARAMETER
(NDFCD=3)
C NO. OF VELOCITY COMPONENTS (2 OR 3)
PARAMETER
(NDFVL=3)
C
DIMENSION XYZ(NDFCD,NUMNP), T(NUMNP), UF(NDFVL,NUMNP),
DEN(NUMNP)
DIMENSION P(NUMNP),TRBK(NUMNP),TRBE(NUMNP), SPEC(NUMNP,MAXSPC)
DIMENSION NODE(27),ITMP(25)
CHARACTER HEDNUT*80, HED*80, DAT*10,
TIM*10
C
C NEUTRAL FILE UNIT NUMBER
INEUT = 10
C MAXIMUM NUMBER OF
SPECIES EQUATIONS
MAXSPC = 15
C
C C O N T R O L I N F O R M A T I O
N
C
C RECORD 1: NEUTRAL FILE HEADER
C
-------------------------------
C HEDNUT: string of the form
'**bFIDAPbNEUTRALbFILE'
C
C the b's in the above title represent blanks.
C
C FORMAT: (A)
C
C RECORD 2: USER-DEFINED TITLE
C
------------------------------
C HED: 80 character title
C
C FORMAT:
(A80)
C
C RECORD 3: REVISION LEVEL
C
------------------------------
C REVL: FIDAP REVISION LEVEL, SHOULD BE SET TO
7.0
C
C FORMAT: ('VERSION ',F5.2)
C
C RECORD 4: DATE AND TIME
RECORD
C --------------------------------
C DATE: DATE
C TIME:
TIME
C
C FORMAT: (A10,2X,A10)
C
C RECORDS 5 & 6: PROBLEM SIZE
PARAMETERS
C ----------------------------------------
C NUMNP, NELEM,
NGRPS, NDFCD, NDFVL
C
C NUMNP: TOTAL NUMBER OF NODAL POINTS IN THE
MESH
C NELEM: TOTAL NUMBER OF ELEMENTS IN THE MESH
C NGRPS: NUMBER OF
ELEMENT GROUPS
C NDFCD: NUMBER OF COORDINATE DIRECTIONS (2 or 3)
C NDFVL:
NUMBER OF VELOCITY COMPONENTS (2 or 3)
C
C FORMAT: (/5I15)
C
C
RECORD 7 & 8: RESULTS FLAGS
C -----------------------------
C ITIM,
ITURB, IFREE, ICOMPR
C
C ITIM: STEADY (0) / TRANSIENT (1) FLAG
C ITURB:
LAMINAR (0) / k-E TURBULENCE (2) FLAG
C IFREE: FIXED (0) / FREE SURFACE (1)
FLAG
C ICOMPR: INCOMPRESSIBLE (0) / COMPRESSIBLE (2) FLAG
C
C FORMAT:
(/4I15)
C
C If there are no results on the Neutral File these flags
C
may all be set to zero
C
C RECORD 9 & 10: TRANSPORT EQUATION SOLUTION
FLAGS
C -------------------------------------------------
C
(ITMP(I),I=1,MAXSPC+1)
C
C ITMP(N): TRANSPORT EQUATION FLAG
C = 0
TRANSPORT EQUATION SOLUTION NOT PRESENT
C = 2 TRANSPORT EQUATION SOLUTION
PRESENT
C
C N = 0 ; ENERGY EQUATION (TEMPERATURE)
C N = I ; SPECIES
EQUATION I-1
C
C FORMAT: (/16I2)
C
C If there are no results on the
Neutral File these flags
C may all be set to zero
C
C RECORD 11 &
12: PRESSURE SOLUTION FLAGS
C ----------------------------------------
C
IDCTS, IPENY, MPDF
C
C IDCTS: CONTINUOUS (0) / DISCONTINUOUS (1) FLAG
C
IPENY: PENALTY (0) / MIXED (1) FLAG
C MPDF : MAXIMUM NO. OF PRESSURE DEGREES
OF FREEDOM PER
C ELEMENT
C
C FORMAT: (/3I10)
C
C If there are
no results on the Neutral File these flags
C may all be set to
zero
C
WRITE (INEUT,'(A)') '** FIDAP NEUTRAL FILE '
WRITE (INEUT,'(A)')
HED
REVL = 7.0
WRITE (INEUT,'(''VERSION '',F5.2)') REVL
DAT =
'MM/DD/YY'
TIM = 'HH:MM:SS'
WRITE (INEUT,'(A10,2X,A10)')
WRITE
(INEUT,'(/5I15)') NUMNP, NELEM, NGRPS, NDFCD, NDFVL
WRITE (INEUT,'(/4I15)')
ITIM, ITURB, IFREE, ICOMPR
WRITE (INEUT,'(/40I2)')
(ITMP(I),I=1,MAXSPC+1)
WRITE (INEUT,'(/3I10)') IDCTS, IPENY, MPDF
C
C N
O D A L C O O R D I N A T E S
C
C Each nodal coordinate occupies one
record of the form
C
C N, X, Y, Z
C
C where N is the node number and
(X,Y,Z) are its coordinates
C in a global cartesian system.
C There must
be NUMNP such records. The first nodal record
C is preceded by a NODAL
header record.
C
WRITE (INEUT,'(''NODAL COORDINATES'')')
DO 100
N=1,NUMNP
WRITE (INEUT,'(I10,3E20.10)') NOD(N), (XYZ(I,N),I=1,NDFCD)
100
CONTINUE
C
C B O U N D A R Y and I N I T I A L C O N D I T I O N
S
C
C This section of the Neutral File is optional.
C FIDAP initial and
boundary conditions are input in this section.
C
C The first boundary
conditions record is preceded by a header
C record.
C
WRITE
(INEUT,'(''BOUNDARY CONDITIONS'')')
C
C Each group of initial or boundary
conditions is preceded by a
C header record which determines its
type.
C
C IBCODE, IV1, IV2, DISTA
C
C IBCODE:
C = 0, END OF
BOUNDARY CONDITIONS
C = 1, NODAL BOUNDARY CONDITIONS
C = 2, FLUX BOUNDARY
CONDITIONS
C = 3, PERIODIC BOUNDARY CONDITIONS
C = 4, NOT USED
C = 5,
INITIAL CONDITIONS
C
C The interpretation of IV1, IV2 and DISTA depends on
IBCODE and is
C summarized below.
C More detailed information on the
various variables described
C below can be found in Chapter 6 of the FIPREP
Users Manual in
C the sections on the
C
200 WRITE
(INEUT,'(3I10,E20.10)') IBCODE,IV1,IV2,DISTA
C
IF (IBCODE.EQ.0) THEN
C
END OF BOUNDARY AND INITIAL CONDITIONS
GO TO 260
C
ELSEIF (IBCODE.EQ.1)
THEN
C
C NODAL BOUNDARY CONDITIONS
C
C IV1: FREE OR FIX BOUNDARY
CONDITION FLAG
C = 0, FREE BOUNDARY CONDITION
C = 1, SET BOUNDARY
CONDITION
C
C IV2: DEGREE OF FREEDOM FLAG
C = 1, U COMPONENT OF
VELOCITY
C = 2, V COMPONENT OF VELOCITY
C = 3, W COMPONENT OF
VELOCITY
C = 4, PRESSURE
C = 5, TEMPERATURE
C = 6, FREE SURFACE
POSITION
C = 7, TURBULENT KINETIC ENERGY
C = 8, TURBULENT DISSIPATION
C
= 9, SPECIES 1
C = 10, SPECIES 2
C = ., .
C = 23, SPECIES 15
C =
100, VELOCITY
C = 101, CONTACT ANGLE
C = 102, COORDINATES
C
C DISTA:
NOT USED (SHOULD BE SET TO ZERO)
C
C NVAL: NUMBER OF VALUES TO READ FROM
SUBSEQUENT RECORDS
C UNTIL FIRST VALUE (VAL(1)) ON A RECORD IS ZERO
C
C VAL(1): NOD - NODE NUMBER AT WHICH TO APPLY BOUNDARY CONDITION
C
VAL(2): VAL - VALUE OF SPECIFIED DEGREE OF FREEDOM
C VAL(3): NCUR - TIME
FUNCTION CURVE NUMBER
C VAL(4): FAC - MULTIPLICATIVE FACTOR FOR TIME FUNCTION
C
NVAL = 1 + IV1*3
210 WRITE (INEUT,'(5E16.9)')
(VAL(I),I=1,NVAL)
IF (VAL(1).NE.0) GO TO 210
GO TO 200
C
ELSEIF
(IBCODE.EQ.2) THEN
C
C FLUX BOUNDARY CONDITIONS
C
C IV1: DEGREE OF
FREEDOM FLAG
C = 1, X COMPONENT OF STRESS
C = 2, Y COMPONENT OF
STRESS
C = 3, Z COMPONENT OF STRESS
C = 4, NOT USED
C = 5, HEAT
FLUX
C = 6, NOT USED
C = 7, TURBULENT KINETIC ENERGY FLUX
C = 8,
TURBULENT DISSIPATION FLUX
C = 9, SPECIES 1
C = 10, SPECIES 2
C = ., .
C = 23, SPECIES 15
C
C IV2: NDS - NUMBER OF NODES ON ELEMENT
SIDE(FACE) TO
C WHICH FLUX IS BEING APPLIED
C
C DISTA: NOT USED
(SHOULD BE SET TO ZERO)
C
C NVAL: NUMBER OF VALUES TO READ FROM SUBSEQUENT
RECORDS
C UNTIL FIRST VALUE (VAL(1)) ON A RECORD IS ZERO
C
C VAL(1):
NOD(1) - FIRST NODE NUMBER DEFINING ELEMENT SIDE(FACE)
C TO WHICH FLUX IS
BEING APPLIED
C .. .. ..
C VAL(NDS): NOD(NDS) - LAST NODE NUMBER DEFINING
ELEMENT
C SIDE(FACE) TO WHICH FLUX IS BEING APPLIED
C
C VAL(NDS+1):
GENERATOR PARAMETER; NOT CURRENTLY USED, MUST BE
C SET TO ZERO
C
C
VAL(NDS+2): VAL(1) - VALUE OF SPECIFIED FLUX AT NOD(1)
C .. .. ..
C
VAL(NDS*2+1): VAL(NDS) - VALUE OF SPECIFIED FLUX AT NOD(NDS)
C
C
VAL(NDS*2+2): NCUR - TIME FUNCTION CURVE NUMBER
C VAL(NDS*2+3): FAC -
MULTIPLICATIVE FACTOR FOR TIME FUNCTION
C
NVAL = 2*IV2 + 3
220 WRITE
(INEUT,'(5E16.9)') (VAL(I),I=1,NVAL)
IF (VAL(1).NE.0) GO TO 220
GO TO
200
C
ELSEIF (IBCODE.EQ.3) THEN
C
C PERIODIC BOUNDARY
CONDITIONS
C
C IV1: ANTI-PERIODIC FLAG
C = LMN, L=1 NORMAL COMPONENT
ANTI-PERIODIC
C M=1 FIRST TANGENTIAL COMPONENT ANTI-PERIODIC
C N=1 SECOND
TANGENTIAL COMPONENT ANTI-PERIODIC
C
C IV2: PERIODIC TYPE FLAG
C = 0,
ALL DOF'S
C = 1, ONLY VELOCITY DOF'S
C
C DISTA NOT USED; SHOULD BE SET
TO ZERO
C
C NVAL: NUMBER OF VALUES TO READ FROM SUBSEQUENT RECORDS
UNTIL
C FIRST VALUE (VAL(1)) ON A RECORD IS ZERO (MUST BE 2)
C
C
VAL(1): NOD1 - NODE NUMBER OF NODE TO WHICH NOD2 IS PERIODIC
C VAL(2): NOD2 -
NODE NUMBER OF NODE WHICH IS PERIODIC WITH NOD1
C
NVAL = 2
230 WRITE
(INEUT,'(5E16.9)') (VAL(I),I=1,NVAL)
IF (VAL(1).NE.0) GO TO 230
GO TO
200
C
ELSEIF (IBCODE.EQ.5) THEN
C
C NODAL INITIAL
CONDITIONS
C
C IV1: NUMBER OF VALUES LESS TWO TO READ FROM SUBSEQUENT
C RECORDS UNTIL FIRST VALUE (VAL(1)) ON A RECORD IS ZERO
C
C IV2:
DEGREE OF FREEDOM FLAG
C = 1, U COMPONENT OF VELOCITY
C = 2, V COMPONENT
OF VELOCITY
C = 3, W COMPONENT OF VELOCITY
C = 4, PRESSURE
C = 5,
TEMPERATURE
C = 6, FREE SURFACE POSITION
C = 7, TURBULENT KINETIC
ENERGY
C = 8, TURBULENT DISSIPATION
C = 9, SPECIES 1
C = 10, SPECIES
2
C = ., .
C = 23, SPECIES 15
C = 100, VELOCITY COMPONENTS
C
C
DISTA: NOT USED (SHOULD BE SET TO ZERO)
C
C VAL(1): NODE NUMBER AT WHICH
TO APPLY INITIAL CONDITION
C
C VAL(2): NOT USED (SHOULD BE SET TO
ZERO)
C
C VAL(3): INITIAL VALUE OF SPECIFIED DEGREE OF FREEDOM, OR
C
INITIAL VALUE OF X VELOCITY COMPONENT (NDF=100 ONLY)
C VAL(4): INITIAL VALUE
OF Y VELOCITY COMPONENT (NDF=100 ONLY)
C VAL(5): INITIAL VALUE OF Z VELOCITY
COMPONENT (NDF=100 ONLY)
C
NVAL = IV1 + 2
250 WRITE (INEUT,'(5E16.9)')
(VAL(I),I=1,NVAL)
IF (VAL(1).NE.0) GO TO 250
GO TO
200
C
ENDIF
C
C E L E M E N T G R O U P I N F O R M A T I O
N
C
C There must be information input for NGRPS element groups.
C The
first element group is preceded by a header record.
C
WRITE
(INEUT,'(''ELEMENT GROUPS'')')
C
260 DO 300 NG=1,NGRPS
C
C ELEMENT
GROUP CONTROL INFORMATION RECORD
C
----------------------------------------
C NGP, NELGP, NDP, IGEOM,
NFTYP
C
C NGP: ELEMENT GROUP NUMBER
C NELGP: NUMBER OF ELEMENTS IN
GROUP
C NDP: NUMBER OF NODES PER ELEMENT IN GROUP
C
C IGEOM: ELEMENT
GEOMETRY
C = 0 EDGE (2-D), FACE(3-D)
C = 1 QUADRILATERAL
C = 2
TRIANGLE
C = 3 BRICK
C = 4 WEDGE
C = 5 TETRAHEDRON
C
C NFTYP:
FIDAP ELEMENT TYPE
C = 1 , QUADRILATERAL
C = 2 , TRIANGLE
C = 3 ,
BRICK
C = 4 , WEDGE
C = 5 , TETRAHEDRON
C = 11 , BOUNDARY RADIATION
ELEMENT
C = 12 , BOUNDARY CONVECTION ELEMENT
C = 13 , BOUNDARY SLIP
ELEMENT
C = 14 , FREE SURFACE (MOVING BOUNDARY) ELEMENT
C = 15 , LAW OF
THE WALL BOUNDARY ELEMENT
C = 16 , MELT INTERFACE BOUNDARY ELEMENT
C = 17
, PLOT BOUNDARY ELEMENT
C = 18 , SPECIES BOUNDARY ELEMENT
C = 20 , OUTFLOW
BOUNDARY ELEMENT
C = 21 , GAP ELEMENT
C = 22 , SURFACE REACTION
ELEMENT
C
C
WRITE (INEUT,265) NGP, NELGP, NDP, IGEOM, NFTYP
265
FORMAT ('GROUP: ',I5,' ELEMENTS:',I10,' NODES: ',I10,
1 ' GEOMETRY:',I5,'
TYPE:',i4)
C
C ENTITY TYPE RECORD
C ------------------
C
C
ELMMAT: ENTITY NAME TO WHICH ELEMENT GROUP BELONGS
C (20
characters)
C
WRITE (INEUT,'(''ENTITY NAME: '',a20)') ELMMAT
C
C
ELEMENT CONNECTIVITY RECORDS
C ----------------------------
C
DO 280
NEL=1,NELGP
C
C NE: GLOBAL ELEMENT NUMBER
C NODE: LIST OF NDP NODES
DEFINING ELEMENT (SEE FIPREP
C USERS MANUAL, CHAPTER 12 FOR ORDERING
CONVENTIONS)
C
WRITE (INEUT,'(8X,9I8:/(8X,9I8:))') NE, (NODE(I),I=1,NDP)
280 CONTINUE
300 CONTINUE
C
C S O L U T I O N V E C T O R S
C
C The SOLUTION VECTORS section is repeated for each timestep
C For
a steady-state analysis only one "timestep" is present and
C KSTEP=1,
TIME=0., DT=0.
C This section of the Neutral File is optional.
C
C
EACH SOLUTION VECTOR MUST BE PRECEDED BY THE APPROPRIATE HEADER
C RECORD AS
DESCRIBED BELOW. ALL HEADERS ARE 20 CHARACTERS IN LENGTH
C
C TIME STEP
CONTROL INFORMATION RECORD
C ------------------------------------
C
C
KSTEP, TIME, DT
C
C KSTEP: TIME STEP NUMBER
C TIME: TIME VALUE OF
TIMESTEP
C DT: TIME STEP INCREMENT
C
400 WRITE (INEUT,405) KSTEP,
TIME, DT
405 FORMAT ('TIMESTEP: ',I5,' TIME: ',E15.7,' INCRMNT: ',E15.7)
C
C VELOCITY RECORDS
C ----------------
C
C UF: VELOCITY
VECTOR - Velocity components for node I are stored
C as UF(2*I-1), UF(2*I)
for NDFVL=2 and
C as UF(3*I-2),UF(3*I-1),UF(3*I) for NDFVL=3.
C
WRITE
(INEUT,'(''VELOCITY '')')
NMVL = NDFVL*NUMNP
WRITE (INEUT,'(5E16.9)')
((UF(I,J),I=1,NDFVL),J=1,NUMNP)
C
C PRESSURE RECORDS
C
----------------
C
C (P(I,I=1,NUMNP) is the pressure at node
I.
C
WRITE (INEUT,'(''PRESSURE '')')
WRITE (INEUT,'(5E16.9)')
(P(I),I=1,NUMNP)
C
C TEMPERATURE RECORDS
C
-------------------
C
C T(I) is the temperature at node I. This record is
valid
C only if ITMP(1) is NOT zero.
C
IF (ITMP(1).NE.0) THEN
WRITE
(INEUT,'(''TEMPERATURE '')')
WRITE (INEUT,'(5E16.9)')
(T(I),I=1,NUMNP)
ENDIF
C
C FREE SURFACE POSITION RECORDS
C
-----------------------------
C
C The XYZ array are the nodal coordinates
of the mesh configuration
C at this timestep. This record is valid only if
IFREE is NOT zero.
C
IF (IFREE.NE.0) THEN
DO 410 N=1,NDFCD
WRITE
(INEUT,'(''COORDINATE '',I10)') N
WRITE (INEUT,'(5E16.9)')
(XYZ(I,N),I=1,NUMNP)
410 CONTINUE
ENDIF
C
C TURBULENT K.E. AND
DISSIPATION RECORDS
C --------------------------------------
C
C
TRBK(I) and TRBE(I) are the turbulent kinetic energy and
C dissipation at
node I. These records are valid only if ITURB=2.
C
IF (ITURB.EQ.2)
THEN
WRITE (INEUT,'(''TURBULENT K.E. '')')
WRITE (INEUT,'(5E16.9)')
(TRBK(I),I=1,NUMNP)
WRITE (INEUT,'(''TURBULENT DISSIPATIO'')')
WRITE
(INEUT,'(5E16.9)') (TRBE(I),I=1,NUMNP)
ENDIF
C
C SPECIES CONCENTRATION
RECORDS
C -----------------------------
C
C SPEC(I,N) is the
concentration of species N at node I. This record
C is valid only if
ITMP(N+1) is NOT zero.
C
DO 450 N=1,MAXSPC
IF (ITMP(N+1).NE.0)
THEN
WRITE (INEUT,'(''SPECIES '',I2,'' '')') N
WRITE (INEUT,'(5E16.9)')
(SPEC(I,N),I=1,NUMNP)
ENDIF
450 CONTINUE
C
C DENSITY RECORDS
C
---------------
C
C DEN(I) is the density at node I.
C This record is
valid only if ICOMPR=2.
C
IF (ICOMPR.NE.0) THEN
WRITE
(INEUT,'(''DENSITY '')')
WRITE (INEUT,'(5E16.9)')
(DEN(I),I=1,NUMNP)
ENDIF
C
C TIME STEP TERMINATION RECORD
C
----------------------------
C
WRITE (INEUT,'(''ENDOFTIMESTEP '')')
GO
TO 400
C
500 STOP
END