[gpaw-users] Trouble converging simple molecule with BEEF-vdW
Ask Hjorth Larsen
asklarsen at gmail.com
Wed Jan 16 02:14:32 CET 2019
Dear Georg, (re-added mailing list)
Am Di., 15. Jan. 2019 um 23:32 Uhr schrieb Georg Kastlunger
<georg_kastlunger at brown.edu>:
>
> Dear Ask,
>
> thank you for your answer. I now updated to the current developers
> version of gpaw and compiled including libvdwxc.
>
> I, however, get a segmentation fault if I want to run a calculation in
> parallel. The script I used is the exact one you send in your last Mail.
Right, combining fftw and MKL is tricky. Hopefully we will solve that
now though.
What happens if you do "export GPAW_FFTWSO=<complete path to your
fftw.so>" before running the calculation? Make sure the compute node
'sees' the variable, e.g., by checking os.environ['GPAW_FFTWSO'] at
runtime.
I suspect there will be nothing to gain from putting 'vdwxc' *before*
the other libraries in customize.py, but if the above line does not
solve it, maybe try that anyway.
Sorry for the 'maybe'-advice but things are sometimes quite tricky
because MKL is both evil and nasty, and pollutes the C namespace with
fftw-lookalike functions that don't implement the same functionality
as the true fftw, and will easily cause segfaults when used together
with the good and wholesome libraries such as the real fftw. :(
Best regards
Ask
>
> I configured libvdwxc using:
>
> MPI_PATH="/gpfs/runtime/opt/mpi/openmpi_2.0.3_intel/"
> PREFIX="/gpfs_home/gkastlun/data/gkastlun/opt/libvdwxc/install"
> CFLAGS="-O3 "
> FCFLAGS="-g "
> ./configure CFLAGS=$CFLAGS FCFLAGS=$FCFLAGS --prefix=$PREFIX
> --with-mpi=$MPI_PATH
>
> and it runs without warnings or errors. I guess the short summary is:
>
> configure: Final build parameters
> configure: ----------------------
> configure:
> configure: TSTAMP = 20190115T175432-0500
> configure:
> configure: DEBUG = no (init: def)
> configure: TIMING = no (init: def)
> configure:
> configure: FFTW3 = yes (init: def)
> configure: MPI = yes (init: dir)
> configure: PFFT = no (init: def)
> configure:
> configure: CPP =
> /gpfs/runtime/opt/mpi/openmpi_2.0.3_intel//bin/mpicc -E
> configure: CPPFLAGS =
> configure: CC = /gpfs/runtime/opt/mpi/openmpi_2.0.3_intel//bin/mpicc
> configure: MPICC =
> configure: CFLAGS = -O3
> configure: FC = /gpfs/runtime/opt/mpi/openmpi_2.0.3_intel//bin/mpif90
> configure: MPIFC =
> configure: FCFLAGS = -g
> configure: LDFLAGS =
> configure: LIBS = -lfftw3_mpi -lfftw3 -lm
>
> When I now run a calculation using "xc={'name': 'BEEF-vdW', 'backend':
> 'libvdwxc'}" it works and converges fast in serial mode, giving the
> following output in the preamble:
>
> XC parameters: vdW-BEEF with libvdwxc
> Mode: serial
> Semilocal: BEEVDW with 2 nearest neighbor stencil
> Corresponding non-local functional: vdW-DF2
> Local blocksize: 272 x 176 x 248
> PAW datasets: PBE
>
> In parallel mode it leads to a segmentation fault right after the
> initialization with the preamble output:
>
> XC parameters: vdW-BEEF with libvdwxc
> Mode: mpi with 4 cores
> Semilocal: BEEVDW with 2 nearest neighbor stencil
> Corresponding non-local functional: vdW-DF2
> Local blocksize: 68 x 176 x 248
> PAW datasets: PBE
>
> I have compiled gpaw with the debug option and the error I get is
> attached. Unfortunately, I can not really read it.
>
> I also attached my customize.py.
>
> Is this a known issue or did I do something wrong?
>
> Best wishes and thank you for your help,
> Georg
>
>
> On 1/15/19 8:47 AM, Ask Hjorth Larsen via gpaw-users wrote:
> > Dear Georg,
> >
> > Am So., 13. Jan. 2019 um 17:57 Uhr schrieb Georg Kastlunger via
> > gpaw-users <gpaw-users at listserv.fysik.dtu.dk>:
> >> Dear Ask,
> >>
> >> thank you for your quick reply.
> >>
> >> I was able to converge the molecule now. The problem seemed to be the
> >> grid spacing. If I use a grid spacing below 0.18 the calculation does
> >> not converge.
> > Strange. I did a test with libvdwxc, vacuum 6.5, and spacing 0.13 on
> > a desktop computer. It converged in 19 iterations:
> >
> > http://dcwww.camd.dtu.dk/~askhl/files/vdw-molecule-kastlunger.py
> > http://dcwww.camd.dtu.dk/~askhl/files/vdw-molecule-kastlunger.txt
> >
> > (I again recommend switching to libvdwxc if at all possible, since the
> > old implementation is very inefficient)
> >
> > Best regards
> > Ask
> >
> >> Best wishes,
> >> Georg
> >>
> >>
> >> On 1/11/19 9:11 PM, Ask Hjorth Larsen via gpaw-users wrote:
> >>> Dear Georg,
> >>>
> >>> Am Sa., 12. Jan. 2019 um 02:00 Uhr schrieb Georg Kastlunger via
> >>> gpaw-users <gpaw-users at listserv.fysik.dtu.dk>:
> >>>> Dear GPAW community,
> >>>>
> >>>> I am currently having some trouble converging a calculation of a simple
> >>>> molecule (4-mercaptobenzoic acid) applying the BEEF-vdW XC-functional.
> >>>>
> >>>> Relaxing the same structure with RPBE did not create any problems
> >>>> before. Also, when adsorbing the molecule to a metal slab the
> >>>> calculation converges like a charm.
> >>>>
> >>>> I have attached the structure and a minimal script. As you can see, I
> >>>> have already played around with some parameters for improving
> >>>> convergence. Unfortunately, nothing helped.
> >>>>
> >>>> Did anyone experience the same issue before and knows about some tricks
> >>>> to converge this system?
> >>> I ran it using the libvdwxc backend and it converged in 16 iterations,
> >>> although I changed gpts/vacuum so it would run on an old laptop.
> >>>
> >>> calc = GPAW(h=0.2,
> >>> xc={'name': 'BEEF-vdW', 'backend': 'libvdwxc'},
> >>> txt='out.txt',
> >>> eigensolver = Davidson(3),
> >>> )
> >>> atoms.set_calculator(calc)
> >>> atoms.center(vacuum=4.0)
> >>>
> >>> The libvdwxc backend requires installing (drumroll) libvdwxc. It is
> >>> much faster, uses less memory, and is scalable (the old implementation
> >>> scales to 20 cores max, and some things are not parallel). However it
> >>> uses a different parametrization of the kernel and does not include
> >>> the 'soft correction', which means the values will differ slightly.
> >>>
> >>> As for the old (slow) implementation, I see now that it also converged
> >>> after 16 iterations with the same parameters as above. But I am using
> >>> GPAW master (i.e. 1.5.0 basically).
> >>>
> >>> Best regards
> >>> Ask
> >>>
> >>>> Thank you in advance,
> >>>>
> >>>> Georg
> >>>>
> >>>> _______________________________________________
> >>>> gpaw-users mailing list
> >>>> gpaw-users at listserv.fysik.dtu.dk
> >>>> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
> >>> _______________________________________________
> >>> gpaw-users mailing list
> >>> gpaw-users at listserv.fysik.dtu.dk
> >>> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
> >> _______________________________________________
> >> gpaw-users mailing list
> >> gpaw-users at listserv.fysik.dtu.dk
> >> https://listserv.fysik.dtu.dk/mailman/listinfo/gpaw-users
More information about the gpaw-users
mailing list