next up previous contents index
Next: HDB format Up: Data formats Previous: RCS format   Contents   Index


HFEP format

HFEP2.2 uses the standard IEEE 32 bits binary and is defined for 2D meshes.

The mesh is made of one or several blocks, each defined by surface elements.

Each block can be structured or unstructured.

For unstructured blocks, we distinguish homogeneous meshes (made by same element types) between non-homogeneous meshes (several types of elements: triangles or quadrangles).

Note: For the definition of several blocks, solutions defined on mesh nodes must be identical in each block.

A structured block is defined by a matrix of points:

An unstructured block is defined by: Some examples: HFEP: A structured block:
      parameter (ndimax=2, idimax=101, jdimax=101)
      real*4 coor(ndimax,idimax,jdimax)
      real*4 q(idimax, jdimax, 1)
c
      unit1 = 18
      nblock = 1
c  total number of blocks
      itype = 1
c  itype = 0: Unstructured mesh
c  itype = 1: Structured mesh
      nnu = 1
c  nnu: number of unknowns stored
      idim = 101
      jdim = 101
c  idim, jdim: number of nodes indexes on each dimension
c
c  coor: nodes coordinates
c  q: unknowns array
c
      write (unit1) nblock
      do 100 nb = 1,nblock
        write (unit1) itype, nnu
        write (unit1) idim, jdim
        write (unit1) (((coor(l,i,j),l=1,2),i=1,idim),j=1,jdim)
        write (unit1) (((q(i,j, nu),i=1,idim),j=1,jdim),nu=1,nnu)
100   continue
      stop
      end

HFEP: An homogeneous unstructured block made of triangles.
c  unstructured homogeneous mesh
c
      parameter (ndimax=2, nnodesmax=5000, nnperelmax=4, nelemmax=10000)
      real*4 coor(ndimax,nnodesmax)
      real*4 q(nnodesmax, 1)
      integer iconnec(nnperelmax,nelemmax)
      integer nnperelement(6)
c
      unit1 = 16
      nblock = 1
c  total number of blocks
      itype = 0
c  itype = 0: Unstructured mesh
c  itype = 1: Structured mesh
c  nnu: number of unknowns stored
      ihmg = 0
c  ihmg = 0: homogeneous mesh
c  ihmg = 1: non-homogeneous mesh
c  nnodes: number of nodes
c
c  nelem: number of surface elements
   ielemtype = 3
c  ielemtype: type of surface elements
c            3: T3, 3-nodes triangular cell
c            4: Q4, 4-nodes quadrilateral cell
      nnperelement(3) = 3
      nnperelement(4) = 4
      nnperel = nnperelement(ielemtype)
c  nnperel: number of nodes per element.
c
c  coor: nodes coordinates
c  q: unknowns array
c  iconnec: connectivity table
c
      write (unit1) nblock
      do 100 nb = 1,nblock
        write (unit1) itype, nnu
        write (unit1) ihmg, nnodes
        write (unit1) nelem, ielemtype
        write (unit1) ((coor(l,i),l=1,2),i=1,nnodes)
        write (unit1) ((q(i,nu),i=1,nnodes),nu=1,nnu)
        write (unit1) ((iconnec(l,i),l=1,nnperel),i=1,nelem)
100   continue
      stop
      end

HFEP: An non-homogeneous unstructured block made of triangles and quadrangles.
c  unstructured non-homogeneous mesh
c
      parameter (ndimax=2, nnodesmax=5000, nnperelmax=4, nelemmax=10000)
      real*4 coor(ndimax,nnodesmax)
      real*4 q(nnodesmax, 1)
      integer ietype(nelemmax)
      integer iconnec(nnperelmax*nelemmax)
      integer nnperelement(6)
c
      unit1 = 17
      nblock = 1
c  nblock: total number of blocks
      itype = 0
c  itype = 0: Unstructured mesh
c  itype = 1: Structured mesh
      nnu = 1
c  nnu: number of unknowns stored
      ihmg = 1
c  ihmg = 0: homogeneous mesh
c  ihmg = 1: non-homogeneous mesh
      nnodes = 1200
c  nnodes: number of nodes
      nelem = 2450
c  nelem: number of surface elements
c  ietype: array of surface element types
c  iconnec: array of node. indices for successive surface elements.
c            3: T3, 3-nodes triangular cell
c            4: Q4, 4-nodes quadrilateral cell
      nnperelement(3) = 3
      nnperelement(4) = 4
c  coor: nodes coordinates
c  q: unknowns array
c  iconnec: connectivity table
c
      write (unit1) nblock
      write (unit1) itype, nnu
      write (unit1) ihmg, nnodes
      write (unit1) nelem
      write (unit1) ((coor(l,i),l=1,2),i=1,nnodes)
      write (unit1) ((q(i,nu),i=1,nnodes),nu=1,nnu)
      iptr = 0
      do 200 iel=1,nelem
        itypel = ietype(iel)
        write (unit1) itypel
        write (unit1) (iconnec(iptr+i),i=1,nnperelement(itypel))
        iptr = iptr + nnperelement(itypel)
200   continue
      stop
      end

HFEP: Mesh made of 2 blocks: structured and unstructured:
c  unstructured non-homogeneous mesh
c
      parameter (ndimax=2, nnodesmax=5000, nnperelmax=4, nelemmax=10000)
      parameter (idimax=101, jdimax=101)
      real*4 coor(ndimax,nnodesmax)
      real*4 q(nnodesmax, 2)
      integer ietype(nelemmax)
      integer iconnec(nnperelmax*nelemmax)
      integer nnperelement(6)
      real*4 coorh(ndimax,idimax,jdimax)
      real*4 qh(idimax, jdimax, 2)
c
      unit1 = 19
      nblock = 2
c  nblock: total number of blocks
      itype = 0
c  itype = 0: Unstructured mesh
c  itype = 1: Structured mesh
   nnu = 2
c  nnu: number of unknowns stored
      ihmg = 1
c  ihmg = 0: homogeneous mesh
c  ihmg = 1: non-homogeneous mesh
   nnodes = 11
c  nnodes: number of nodes
   nelem = 3
c  nelem: number of surface elements
c
c  elemtype: type of surface elements
c            3: T3, 3-nodes triangular cell
c            4: Q4, 4-nodes quadrilateral cell

      nnperelement(3) = 3
      nnperelement(4) = 4
c
c  coor: nodes coordinates
c  q: unknowns array
c  iconnec: connectivity table
c
      write (unit1) nblock
      write (unit1) itype, nnu
      write (unit1) ihmg, nnodes
      write (unit1) nelem
      write (unit1) ((coor(l,i),l=1,2),i=1,nnodes)
      write (unit1) ((q(i,nu),i=1,nnodes),nu=1,nnu)
c
      iptr = 0
      do 200 iel=1,nelem
        itypel = ietype(iel)
        write (unit1) itypel
        write (unit1) (iconnec(iptr+i),i=1,nnperelement(itypel))
        iptr = iptr + nnperelement(itypel)
200   continue
c
c   block 2
      itype = 1
      idim = 101
      jdim = 101
      do 300 i=1,idim
        do 300 j=1,jdim
          coorh(1,i,j)=coor(1,5)+(coor(1,4)-coor(1,5))*(j-1)/(jdim-1)-
     *                 (coor(1,5)-coor(1,7))*(i-1)/(idim-1)
          coorh(2,i,j)=coor(2,4)+(coor(2,8)-coor(2,4))*(i-1)/(idim-1)
          qh(i,j,1)=coorh(1,i,j)
          qh(i,j,2)=coorh(2,i,j)
300   continue
      write (unit1) itype, nnu
      write (unit1) idim, jdim
      write (unit1) (((coorh(l,i,j),l=1,2),i=1,idim),j=1,jdim)
      write (unit1) (((qh(i,j, nu),i=1,idim),j=1,jdim),nu=1,nnu)
      stop
      end


next up previous contents index
Next: HDB format Up: Data formats Previous: RCS format   Contents   Index
Robert Fournier 2002-09-13