Skip to Content.
Sympa Menu

forum - Re: [abinit-forum] restart from wave function for large systems

forum@abinit.org

Subject: The ABINIT Users Mailing List ( CLOSED )

List archive

Re: [abinit-forum] restart from wave function for large systems


Chronological Thread 
  • From: "Matteo Giantomassi" <Matteo.Giantomassi@uclouvain.be>
  • To: forum@abinit.org
  • Subject: Re: [abinit-forum] restart from wave function for large systems
  • Date: Sun, 29 Nov 2009 13:50:48 +0100
  • Importance: Normal

>
> Dear all,
>
> I am restarting a calculation from wave function for a large system and
> got the following
> errors"
> hdr_check: Wavefunction file is OK for direct restart of calculation
> wfsinp: inside loop, init ikpt0,isppol0= 1 1
> rwwf: ERROR -
> Reading option of rwwf. Trying to read
> a RF wf record of a wf file, unit= 1
> gave iostat= 39. Your file is likely not correct.
> Action: check your input wf file. "
>
> Then I used cut3d to analyze the wf file and found
> "npwarr= 2184721847218472185021847218502185021847"
> while there should be space between numbers like " 21847 21847 ...."
>
> If I somehow decrease npwarr such as using a small ecut, then the
> restarted job runs OK. Clearly something overflows.
>
> I looked into the code and saw in the hdr_io.F90 file
> "write(unitfi, '(a,(10i5,8x))') ' npwarr=',hdr%npwarr(:)"
> It seems that i5 is not long enough, which causes the above output of
> "npwarr=" to
> be continuous numbers without space in between. but it also seems that
> this writing
> format should only affect the formatted file writing, not the wave
> function file, right?

Yes.
Likely the header of the file is correct but there's a problem
in the reading of the wavefunction coefficients.

You should chech 59_io_mpi/rwwf.F90 at line 541, in
particular the F90 read statement below (check wether
ipw+1 and ipw+npwso1 are inside the allowed range, you may
also print the values that are read from file.

! Read wavefunctions
if(option==1 .or. option==-2)then

ipw=(iband-1)*npwso1+icg
if(use_f90==1)then
read(unitwf,iostat=ios) cg(1:2,ipw+1:ipw+npwso1) <== likely this one
#if defined HAVE_MPI_IO
else if(wff%accesswff==1)then
call xderiveRRecInit(wff,ios)
call
xderiveRead(wff,cg(1:2,ipw+1:ipw+npwso1),2,npwso1,ios,mpi_enreg%commcart,ind_cg_mpi_to_seq)
call xderiveRRecEnd(wff,ios)
#endif
end if

else if (option/=-4) then
call WffReadSkipRec (ios,1,wff) ! Skip the record
end if ! option


Best Regards
Matteo Giantomassi





Archive powered by MHonArc 2.6.16.

Top of Page