Binary file

Moderator: GiD Team

Post Reply
waseda
Posts: 13
Joined: Thu Dec 24, 2015 4:31 am
Location: Japan
Contact:

Binary file

Post by waseda »

Hi,

I have a problem writing results in the binary format.
Platform: Windows 7, Visual Studio 2013, Intel Visual Fortran, GiD 12.1.9d (library files: Gidpost ver 2.4)

The following code works just fine when writing results in ASCII format.

CALL GiD_PostInit
fdm=GiD_fOpenPostMeshFile('BEM2D.post.msh',GiD_PostAscii)
fdr=GiD_fOpenPostResultFile('BEM2D.post.res',GiD_PostAscii)
! fdr=GiD_fOpenPostResultFile('BEM2D.post.bin',GiD_PostBinary)
! fdm=fdr
CALL GiD_fBeginMesh(fdm,'Mesh',GiD_2D,GiD_Point,1)
CALL GiD_fBeginCoordinates(fdm)
DO i=1,npoint
CALL GiD_fWriteCoordinates2D(fdm,i,xyi(1,i),xyi(2,i))
ENDDO
DO i=1,numbe
j=npoint+i
CALL GiD_fWriteCoordinates2D(fdm,j,xm(i),ym(i))
ENDDO
CALL GiD_fEndCoordinates(fdm)
CALL GiD_fBeginElements(fdm)
DO i=1,npoint
idummy = i
CALL GiD_fWriteElement(fdm,i,idummy)
ENDDO
CALL GiD_fEndElements(fdm)
CALL GiD_fBeginElements(fdm)
DO i=1,numbe
j=i+npoint
idummy=j
CALL GiD_fWriteElement(fdm,j,idummy)
ENDDO
CALL GiD_fEndElements(fdm)
CALL GiD_fEndMesh(fdm)

CALL GiD_fBeginResultHeader(fdr,'Displacements','Analysis',999.9_iwp,GiD_Vector,GiD_OnNodes,GiD_NULL)
CALL GiD_fResultValues(fdr)
DO i=1,npoint
CALL GiD_fWrite2DVector(fdr,i,ui(1,i),ui(2,i))

ENDDO
CALL GiD_fEndResult(fdr)
CALL GiD_fBeginResultHeader(fdr,'Stresses','Analysis',999.9_iwp,GiD_Matrix,GiD_OnNodes,GiD_NULL)
CALL GiD_fResultValues(fdr)
DO i=1,npoint
CALL GiD_fWrite2DMatrix(fdr,i,sigi(1,i),sigi(2,i),sigi(3,i))
ENDDO
CALL GiD_fEndResult(fdr)

CALL GiD_fClosePostResultFile(fdr)
CALL GiD_PostDone


Then I changed the first five lines to use the binary format;

CALL GiD_PostInit
!fdm=GiD_fOpenPostMeshFile('BEM2D.post.msh',GiD_PostAscii)
!fdr=GiD_fOpenPostResultFile('BEM2D.post.res',GiD_PostAscii)
fdr=GiD_fOpenPostResultFile('BEM2D.post.bin',GiD_PostBinary)
fdm=fdr

keeping the remaing code the same.

When I tried to open the binary file in GiD, the following error message appears:
"Error reading file 'C:...': binary results, error reading line.. "
I don't know what I am missing here.

Could you please help me solve the problem?

Kenji Furui
User avatar
escolano
Posts: 1918
Joined: Sun Sep 05, 1982 10:51 pm

Re: Binary file

Post by escolano »

I think that it is not valid to have more than one BeginElements/EndElements in a mesh.

Maybe GiD is tolerant to this bug in the ASCII version but not in the binary version?

CALL GiD_fBeginElements(fdm)
DO i=1,npoint
idummy = i
CALL GiD_fWriteElement(fdm,i,idummy)
ENDDO

CALL GiD_fEndElements(fdm)
CALL GiD_fBeginElements(fdm)

DO i=1,numbe
j=i+npoint
idummy=j
CALL GiD_fWriteElement(fdm,j,idummy)
ENDDO
CALL GiD_fEndElements(fdm)



Try removing the two lines in red.

If this doesn't fix your problem, upload the mesh and results files in both, ASCII and binary format.
waseda
Posts: 13
Joined: Thu Dec 24, 2015 4:31 am
Location: Japan
Contact:

Re: Binary file

Post by waseda »

Escolano.

Thanks for your help on this. After removing the two lines, I successfully created a binary file.

Regards,

Kenji
Post Reply