mstsuite / MuST

Multiple Scattering Theory code for first principles calculations
BSD 3-Clause "New" or "Revised" License
53 stars 29 forks source link

KKR calculations fail #46

Closed cwhaddon closed 1 year ago

cwhaddon commented 1 year ago

In all of the tutorial examples, and using the ase python library, KKR calculations fail with the output


********************************************************************************
                            SCF Iteration Number:   1
********************************************************************************

start LOOP_j2:     5    0
start LOOP_j2:     5    0
start LOOP_j2:     5    0
... (127 lines omitted)
start LOOP_j2:     5    0
start LOOP_j2:     5    0
start LOOP_j2:     5    0
ERROR: not enough nodes                                            
STOP AT outws

I'm using a custom architecture file which looks like

Acceleration = 0

HDF5_PATH =
ACCEL =
ACCEL_PATH =
LIBXC_PATH =
FFTW_PATH =
P3DFFT_PATH =
LUA_PATH =
LIBS += $(shell pkg-config --libs lapack blas)

CC = mpicc
CXX = mpicxx
F77 = mpif77 -fallow-argument-mismatch
FC = mpif90 -fallow-argument-mismatch
MPICC = mpicc
ACCEL_CXX =
ARCHV = ar -r

FPPDEFS = -cpp
CPPDEFS =
FPPFLAGS = -DMPI -DMaxOutProcs=1

CFLAGS = -O3
CXXFLAGS = -O3 -std=c++14
FFLAGS = -O3
F77FLAGS = -O3
OPT_OPENMP = -fopenmp

XDR_INCLUDE = $(shell pkg-config --cflags libtirpc)
XDR_LIB = $(shell pkg-config --libs libtirpc)

LD_FLAGS = 
LD = $(FC) $(LD_FLAGS)

HDF5_CONFIG_FLAGS = --enable-fortran --enable-static-exec CC="$(CC)" CXX="$(CXX)" FC="$(FC)"
LIBXC_CONFIG_FLAGS = CC="$(CC)" CFLAGS="$(CFLAGS)" FC="$(FC)" FFLAGS="$(FFLAGS)"
P3DFFT_CONFIG_FLAGS = --enable-openmpi FC="$(FC)" FFLAGS="$(FFLAGS)" CC="$(CC)" LIBS="$(LIBS)" CCLD="$(FC)"
FFTW_CONFIG_FLAGS = --enable-mpi --enable-fortran CC="$(CC)" CFLAGS="$(CFLAGS)" MPICC="$(MPICC)" F77="$(F77)" FFLAGS="$(FFLAGS)"
wangy2014 commented 1 year ago

The error message indicates that the input potential or the structure data is problematic. Which tutorial example shows the problem? Thanks!

vishnu2709 commented 1 year ago

Could you also let us know what system you are working on, and what was the run command you used (mpirun .....)?

cwhaddon commented 1 year ago

I've tried this on Ubuntu 22.04, GNU Guix System, and using the Nix package manager and get the same results on each. I'm compiling with GCC and OpenMPI.

The command I'm running looks like this.

[nix-shell:~/downloads/MuST/Tutorials/CuZn/BCC]$ mpirun -np 1 ../../../bin/mst2 < i_new

I get the same error for each CuZn example.

wangy2014 commented 1 year ago

Thank you for reporting this issue. We will look into this and get back to you soon.

On Mon, Aug 7, 2023 at 5:26 AM cwhaddon @.***> wrote:

I've tried this on Ubuntu 22.04, GNU Guix System, and using the Nix package manager and get the same results on each. I'm compiling with GCC and OpenMPI.

The command I'm running looks like this.

[nix-shell:~/downloads/MuST/Tutorials/CuZn/BCC]$ mpirun -np 1 ../../../bin/mst2 < i_new

I get the same error for each CuZn example.

— Reply to this email directly, view it on GitHub https://github.com/mstsuite/MuST/issues/46#issuecomment-1667512731, or unsubscribe https://github.com/notifications/unsubscribe-auth/AB4HQPHSFOERUVRYXKC6COLXUCYFXANCNFSM6AAAAAA2STVNNU . You are receiving this because you commented.Message ID: @.***>

wangy2014 commented 1 year ago

We have not found any issue with running GCC+openMPI. Which version of GCC are you using?

liangstein commented 1 year ago

I've tried this on Ubuntu 22.04, GNU Guix System, and using the Nix package manager and get the same results on each. I'm compiling with GCC and OpenMPI.

The command I'm running looks like this.

[nix-shell:~/downloads/MuST/Tutorials/CuZn/BCC]$ mpirun -np 1 ../../../bin/mst2 < i_new

I get the same error for each CuZn example.

Hello, alternatively you can use our docker image "docker pull liangstein/must:secondversion". Use the user "must" in the image, and I tested all the tutorials are fine.

cwhaddon commented 1 year ago

I am using GCC 12.3.0

liangstein commented 1 year ago

I am using GCC 12.3.0

Hello, it's better to use the GCC version lower than 10. You can install one GCC manually or just using the docker image provided.

cwhaddon commented 1 year ago

Thank you, that seems to work.

In a nix shell with gcc9 and gfortran9, setting the environment variables OMPI_CC=gcc OMPI_CXX=g++ OMPI_FC=gfortran, and adding -DNoXDR_format to CFLAGS I can get mst2 to compile and successfully run.