Oh I see, thanks for confirming it works with an 8-byte file. I didn't generate it from a code but just put a random number in a blank file. I thought it would automatically be the right size but that isn't the case.
Get Outlook for iOS<https://aka.ms/o0ukef> ________________________________ From: Smith, Barry F. <[email protected]> Sent: Monday, February 18, 2019 8:06:16 PM To: Yuyun Yang Cc: [email protected] Subject: Re: [petsc-users] PetscBinaryRead fails I don't know how you got your _test file but it is the wrong size $ ls -l _test -rw-r--r--@ 1 barrysmith staff 6 Feb 18 21:25 _test ~/Src/petsc/test-dir (maint=) arch-basic it only has 6 bytes but to hold a PETSC_SCALAR (when PetscScalar is real) it should have 8 bytes. For example the code PetscViewer viewer; PetscScalar v; int fd; PetscViewerBinaryOpen(PETSC_COMM_WORLD, "joe", FILE_MODE_WRITE, &viewer); PetscViewerBinaryGetDescriptor(viewer, &fd); PetscBinaryWrite(fd, &value, 1, PETSC_SCALAR,PETSC_FALSE); PetscViewerDestroy(&viewer); produces a file with 8 bytes in it $ ls -l joe -rw-r--r-- 1 barrysmith staff 8 Feb 18 22:03 joe which can be read in by your program. > On Feb 18, 2019, at 9:23 PM, Yuyun Yang <[email protected]> wrote: > > I used FILE_MODE_READ. Please see attached file (the function is part of > another file therefore all the other include statements; I've extracted it > here). The test file only contains one number. My directory is hard-coded > into the main function. > > Thanks a lot! > Yuyun > > -----Original Message----- > From: Smith, Barry F. <[email protected]> > Sent: Monday, February 18, 2019 6:41 PM > To: Yuyun Yang <[email protected]> > Cc: [email protected] > Subject: Re: [petsc-users] PetscBinaryRead fails > > > Send program and data file if you cannot get it to work. > > >> On Feb 18, 2019, at 8:08 PM, Yuyun Yang via petsc-users >> <[email protected]> wrote: >> >> Hello, >> >> I am writing a very simple function just to read in a single value from an >> input file (which also just contains one single scalar value). Using >> PetscBinaryRead(fd, &value, 1, PETSC_SCALAR) gives me the following error. >> Could you help me figure out why? >> >> [0]PETSC ERROR: --------------------- Error Message >> -------------------------------------------------------------- >> [0]PETSC ERROR: Read from file failed >> [0]PETSC ERROR: Read past end of file >> [0]PETSC ERROR: See http://www.mcs.anl.gov/petsc/documentation/faq.html for >> trouble shooting. >> [0]PETSC ERROR: Petsc Release Version 3.10.3, unknown [0]PETSC ERROR: >> ./output on a arch-linux2-c-debug named DESKTOP-02K82L1.stanford.edu >> by yyy910805 Mon Feb 18 17:58:30 2019 [0]PETSC ERROR: Configure options >> --with-cc=gcc --with-cxx=g++ --with-shared-libraries=1 --download-hdf5 >> --download-metis --download-parmetis --download-hypre --download-superlu >> --download-mumps --download-scalapack --download-mpich >> --download-mpich-configure-arguments="--enable-error-messages=all --enable-g" >> [0]PETSC ERROR: #1 PetscBinaryRead() line 276 in >> /home/yyy910805/petsc/src/sys/fileio/sysio.c >> 0.000000 >> >> Thanks a lot! >> Yuyun > > <testCheckpointLoadVal.cpp><_test>
