Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Messages - filipr

Pages: [1] 2 3 ... 5
The columns in the text representation have no meaning - it's just a way to visually "compress" the output. It is just one long list of numbers, 111x111x431 = 5,310,351 numbers to be exact. So you can just take the "matrix" of numbers and split at whitespace and you get a 1-dimensional array of numbers. This is the potential. To convert a 3D index (i, j, k) into a 1D index n in this list you use: n = k + Nk * j + Nj * Nk * i as is somewhat documented at the top of of the text representation (outer loop: x, middle loop: y, inner loop: z)

If you know Python you can also more conveniently get the binary exact numbers as a numpy array by using the QuantumATK python API, see and This allows you to directly extract the data, do post-processing and plotting in the same Python script.

I can confirm that there is indeed a bug, and it has been reported in our internal issue tracker. Complex band structure calculations currently do not support hybrid functionals.

It looks like the HSE06 complex band structure is correct, but the Fermi level is wrong. We will take a look at it.

General Questions and Answers / Re: Error on Cluster
« on: February 5, 2024, 08:43 »
I'm not convinced this is a memory issue. More likely an incompatibility between the software and hardware.

Some questions we need answer to in order to investigate this issue:

  • What are you trying to run? Please send script if you can
  • How far does it get? Please send log output

On top of that it would be very valuable if you could rerun the script and set the environment variable I_MPI_DEBUG=5 in your submission script before the execution of atkpython. Then Intel MPI will output various diagnostics to the output log. Send that to us. Also please send the output of 'cat /proc/cpuinfo' on the node that is running the script (you can add this to the top of the submission script) as well as the name and version of the Operating System.

General Questions and Answers / Re: Optimize Cell Error
« on: January 15, 2024, 16:48 »
Note that the version of QuantumATK you have installed on your laptop may be different than the one installed on the cluster.

From the log file it is evident that you are running QuantumATK Q-2019.12-SP1[Build 2a77e01] on the cluster. If you have a newer version installed on the cluster you need to configure your jobs to use that in the machine settings, see:

General Questions and Answers / Re: Bad termination
« on: January 10, 2024, 10:20 »
Hard for us to know for sure without more information. But the error message says the process was killed - in most cases, and I would assume it's the same reason here, it's because the job uses more memory or resources (e.g. runtime) than what it is allowed to by the job scheduler.

Check your cluster information page/wiki on how to configure job submission, you can typically configure your jobs to send you an email if the job fails or is stopped with the reason for why it was done. Otherwise ask your cluster admin.

To reduce memory you can try a few things:

  • Increase the number of OpenMP threads and reduce the number of MPI processes accordingly
  • Increase the number of processes per k-point or "processes per <task>" for operations that allows multilevel parallelism
  • Decrease settings that have a big impact on memory usage, e.g. basis set size, grid size, etc

From the log output it states that you are using version T-2022.03. The Cosmo solvation model was first introduced in the U-2022.12, see release notes:

So solution is to upgrade to a newer version.

Yes this is an recurring problem, that requires a little Christmas stiry. First of all it pays off to know that atkpython is actually a launcher script - it is a bash script that sets several important environment variables before the program is run. In particular it sets the PATH and LD_LIBRARY_PATH environment variables that control where the OS loader should look for shared libraries, such as Before v. 2023.03 we set LD_LIBRARY_PATH so that the loader would also load the mpi library we ship with QuantumATK (yes, we ship Intel MPI - no need to install it yourself, though it may still be preferable). This however caused problems on some clusters that couldn't use Intel MPI we shipped, because it was of an older version. To allow for users to use their custom MPI installation we changed the launcher so as to append the path to the shipped MPI library, which means that if the system already has a in LD_LIBRARY_PATH it will be preferred. This also caused problems because a lot of people run it on system where they don't know that they actually have an Intel MPI in their paths. So in v. 2023.09 we now ship two launchers: atkpython which will ALWAYS use the shipped and atkpython_custom-mpi which assumes that you are using a system installed Intel MPI.

Here's a guide to use them:

If you want to use the shipped MPI, you should execute the atkpython launcher, but for safety ensure that you also use the shipped MPI launcher in path/to/QuantumATK/mpi/bin/mpiexec and further ensure that you do not have unnecessary I_MPI_* environment variables set, especially I_MPI_ROOT. Be sure to not source any or similar scripts and don't use the mpirun script that ships with Intel MPI.

If you want to use the system Intel MPI you have to source the Intel MPI environment either though sourcing or module load intel-mpi if the cluster has a module for it. Then you should run atkpython_custom-mpi instead of atkpython and everything should work if you have configured MPI correctly (but that is also now your own responsibility).

First of all: if your computer cluster has a scheduling system you should probably use that instead of assigning process allocation manually.

When you specify number of processes per host in the file it is not a hostfile but a machine file. Also the -n option is for specifying the total number of processes, not the hostfile, you should use the -f or -machinefile option instead. And if you specify the number of processes per host in the machine file you should not use the -p opr -ppn option. I would assume that the correct command would be:

mpirun -machinefile hf34 home/edrl_04/Desktop/quantum23ver/quantumatk/V-2023.09/bin/atkpython > opt_device_conf_110_5e20.log &

To see how to correctly execute the mpirun/mpiexec command try to run `mpirun --help`. And for further information on how to assign process allocations see:

If you try the above and follow the documentation and it still doesn't work I suggest you ask your cluster admin/support or create a post on the Intel MPI support forum as I think your problem does not seem to be related to QuantumATK specifically.

That is a weird and rare error. Could be due to a network or system failure. Try to run the calculation again and see if it runs through. If it is reproducible it would be helpful if you could run it a third time but with the environment variable I_MPI_DEBUG=5 set, i.e. in your submission script before atkpython is executed you insert
export I_MPI_DEBUG=5
this will print some MPI debug information to the log file that would be valuable for us to see.

General Questions and Answers / Re: Error
« on: November 30, 2023, 11:21 »
Aha, yes. First of all it is a bit dangerous to use pip to install packages into the atkpython distribution, but it is possible as I will show below. But first some background: While Python and Pip makes it appear as you can just install/update/replace packages that is actually not the case: The version and requirements of packages are one thing, but many Python packages use modules written in C/C++/Fortran and those need to be compiled against specific source code version of e.g. numpy/scipy and third party libraries like Intel MKL, OpenMP, MPI and even the C/C++ standard libraries. The only time where one can be truly sure that pip packages work together is if they all are downloaded from PyPi. But many of the PyPi packages don't work with our code and are maybe not using efficient math libraries, which is why other distributions like Conda also exist to try to solve this problem.

Now back to your problem at hand: You likely used pip install -U searborn or atkpython -m pip install -U seaborn. With the -U option it will install/upgrade the library and all other libraries/dependencies. This will also replace our shipped version of numpy with the newest from PyPi which will not work with the rest of the code as Numpy is a compiled C/Fortran library with Python wrappers. You now corrupted your installation of QuantumATK and you have to uninstall it and install it again to fix the problem.

There are some approaches to install seaborn into your atkpython distribution.

If you are using version 2022.12 (I think - you can try it out) or newer it should be possible to use Python virtual environments. If you create a virtual environment and install seaborn into that you don't risk corrupting the QuantumATK installation, so we recommend this approach. You can do:
C:\Program Files\QuantumATK\QuantumATK-VERSION\atkpython\python.exe -m venv --site-packages .
to create a Python venv in the current directory, then activate and use that. You should probably first go though one of the many guides on Python virtual environments:
Using the virtual environment Python you should be able to run python -m pip install seaborn. In the virtual environment you won't have access to atkpython and quantumatk executables, but atkpython is basically just normal Python that does an from QuantumATK import * as the first thing. So you can run your atkpython scripts with the venv Python by putting this import statement at the top.

If you don't have access to QuantumATK-2022.12 or newer you can install seaborn in your user folder: atkpython -m pip install --user seaborn, then you don't mix atkpython libraries and libraries you installed yourself.

Whatever you do the most crucial part is that you do NOT update/upgrade pip packages, i.e. do NOT use the pip install -U option! This will potentially overwrite shipped numpy, scipy and other compiled libraries with default PyPi versions which are incompatible with the rest of the program. If you accidentally do that, you will have to reinstall QuantumATK.

General Questions and Answers / Re: Error
« on: November 29, 2023, 08:21 »
Can you please share how you ran atkpython and the Python code you tried to execute? Which version of QuantumATK are you using? And did you perhaps by accident install any Python packages into the atkpython distribution?

General Questions and Answers / Re: Curie temperature
« on: November 21, 2023, 08:21 »
QuantumATK 2021.06 and newer can calculate the Heisenberg exchange couplings and from that one can estimate the Curie temperature through a mean-field approach, see:

If you want to actually produce a plot of the magnetic moments vs temperature you need to use the calculated exchange couplings in a classical statistical Heisenberg model. This can be done since QuantumATK 2022.12, see:


General Questions and Answers / Re: error in mpiexec.hydra
« on: September 15, 2023, 11:15 »
Can you share with us your input script

Pages: [1] 2 3 ... 5