Aiida_vibroscopy related question: ValueError: required pseudo family `SSSP/1.3/PBEsol/efficiency` is not installed. Please use `aiida-pseudo install` toinstall it

Hi Developers,

I am trying to run the aiida-vibroscopy code. I got the error I guess it did not recognize the pseudopotential. I have pseudo potential label installed as pbe_psp. I am using overrides.yaml (please see the inputs below). Can you please help me fix this issue?

Best
Rijan

(aiidaENV) rkarkee@ch-fe1:/lustre/scratch5/rkarkee> python submit_with_overrides.py
Traceback (most recent call last):
File “/users/rkarkee/conda/envs/aiidaENV/lib/python3.11/site-packages/aiida_quantumespresso/workflows/pw/base.py”, line 161, in get_builder_from_protocol
pseudo_family = orm.QueryBuilder().append(pseudo_set, filters={‘label’: pseudo_family}).one()[0]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/users/rkarkee/conda/envs/aiidaENV/lib/python3.11/site-packages/aiida/orm/querybuilder.py”, line 1105, in one
raise NotExistent(‘No result was found’)
aiida.common.exceptions.NotExistent: No result was found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File “/lustre/scratch5/.mdt0/rkarkee/submit_with_overrides.py”, line 85, in
main()
File “/lustre/scratch5/.mdt0/rkarkee/submit_with_overrides.py”, line 49, in main
builder = IRamanSpectraWorkChain.get_builder_from_protocol(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/users/rkarkee/conda/envs/aiidaENV/lib/python3.11/site-packages/aiida_vibroscopy/workflows/spectra/iraman.py”, line 113, in get_builder_from_protocol
phonon = PhononWorkChain.get_builder_from_protocol(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/users/rkarkee/conda/envs/aiidaENV/lib/python3.11/site-packages/aiida_vibroscopy/workflows/phonons/base.py”, line 258, in get_builder_from_protocol
scf = PwBaseWorkChain.get_builder_from_protocol(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File “/users/rkarkee/conda/envs/aiidaENV/lib/python3.11/site-packages/aiida_quantumespresso/workflows/pw/base.py”, line 163, in get_builder_from_protocol
raise ValueError(
ValueError: required pseudo family SSSP/1.3/PBEsol/efficiency is not installed. Please use aiida-pseudo install toinstall it.

%%%%%%%%%%%%%
overrides.yaml
%%%%%%%%%%%%%%%%%%%%%%%%
clean_workdir: false # whether to clean the working directiories
dielectric:
clean_workdir: false
kpoints_parallel_distance: 0.2 # kpoints distance in Angstrom^-1 to sample the BZ parallel to the electric field. If used, it should help in converging faster the final results
property: raman

central_difference: # if you know what you are doing, custom numerical derivatives with respect to electric field

accuracy: 2

electric_field_step: 0.0005

scf:
kpoints_distance: 0.4 # kpoints distance in Angstrom^-1 to sample the BZ
kpoints_force_parity: false
max_iterations: 5
pw:
metadata:
options:
max_wallclock_seconds: 43200
resources:
num_machines: 1
num_mpiprocs_per_machine: 256
queue_name: standard # for SLURM
# account: account_name # for SLURM, also for project etc
withmpi: true
parameters:
ELECTRONS:
conv_thr: 2.0e-10
electron_maxstep: 100
mixing_beta: 0.2
SYSTEM:
ecutrho: 280.0
ecutwfc: 70.0
vdw_corr: Grimme-D2

settings:
sleep_submission_time: 1.0
phonon:
clean_workdir: false
displacement_generator:
distance: 0.01 # atomic displacements for phonon calculation, in Angstrom
scf:
kpoints_distance: 0.15 # kpoints distance in Angstrom^-1 to sample the BZ
kpoints_force_parity: false
max_iterations: 5
pw:
metadata:
options:
max_wallclock_seconds: 43200
resources:
num_machines: 1
num_mpiprocs_per_machine: 1
# queue_name: partition_name # for SLURM
# account: account_name # for SLURM, also for project etc
withmpi: true
settings:
cmdline: [‘-nk’, ‘8’]
# gamma_only: True # to use only if KpointsData has only a mesh 1 1 1 0 0 0 (i.e. Gamma not shifted)
parameters:
ELECTRONS:
conv_thr: 2.0e-12
electron_maxstep: 80
mixing_beta: 0.4
SYSTEM:

      ecutwfc: 70.0
      vdw_corr: Grimme-D2

settings:
sleep_submission_time: 1.0 # waiting time in seconds between different submission of SCF calculation. Recommended to be at least 1 second, to not overload.
settings:
run_parallel: true
use_primitive_cell: false
symmetry:
distinguish_kinds: false
is_symmetry: true
symprec: 1.0e-05

%%%%%%%%%%%%%%%%%%
submit.py
%%%%%%%%%%%%%%%%%%%%%

-- coding: utf-8 --

pylint: disable=line-too-long,wildcard-import,pointless-string-statement,unused-wildcard-import

“”“Submit an IRamanSpectraWorkChain via the get_builder_from_protocol using the overrides.”“”
from pathlib import Path

from aiida import load_profile
from aiida.engine import submit
from aiida.orm import *
from aiida_quantumespresso.common.types import ElectronicType

from aiida_vibroscopy.workflows.spectra.iraman import IRamanSpectraWorkChain

load_profile()

=============================== INPUTS ===============================

Please, change the following inputs.

mesh = [[4, 4, 2], [0.5, 0.5, 0.5]]
pseudo_family_name=‘pbe_psp’
pw_code_label = ‘qe-7.3@newhpc’
structure_id = 21 # PK or UUID of your AiiDA StructureData
protocol = ‘fast’ # also ‘moderate’ and ‘precise’; ‘moderate’ should be good enough in general
overrides_filepath = ‘./overrides.yaml’ # should be a path, e.g. /path/to/overrides.yaml. Format is YAML

Consult the documentation for HOW-TO for how to use properly the overrides.

!!! FOR FULL INPUT NESTED STRUCTURE: IRamanSpectraWorkChain — aiida-vibroscopy 1.0.2 documentation

You can follow the input structure provided on the website to fill further the overrides.

======================================================================

If you don’t have a StructureData, but you have a CIF or XYZ, or similar, file

you can import your structure uncommenting the following:

from ase.io import read

atoms = read(‘/path/to/file.cif’)

structure = StructureData(ase=atoms)

structure.store()

structure_id = structure.pk

print(f"Your structure has been stored in the database with PK={structure_id}")

Thanks for reposting here.

The issue is that for using the get_builder_from_protocol you need to install the SSSP library. Simply install it via the command:

aiida-pseudo install sssp -v 1.3 -x PBEsol 

And then you override the pseudo potentials as suggested in the examples.

Just notice: you need to also override the ecutrho.

PS: in principle you could install a pseudo family with recommended cutoffs, and then you won’t need to install the SSSP. Look into aiida-pseudo for more details. In case, you can just then add the pseudo family input under the scf namespace. For instance:

dielectric:
  …
  scf:
    pseudo_family: MyPseudosWithCutoff
    …
phonon:
  …
  scf:
    pseudo_family: MyPseudosWithCutoff
    …

This way you won’t even need anymore to specify the cutoffs, since you store the suggested one in your family.

Aiida-pseudo already does this for pseudodojo and sssp pseudpotentials, thus providing you with recommended cutoff tested against all electron codes. So, just consider if this can be helpful for you.

Hi Lorenzo,

Is there other ways to download it?
It seems connection is forbidden from my HPC.

(aiidaENV) rkarkee@ch-fe1:/lustre/scratch5/rkarkee> aiida-pseudo install sssp -v 1.3 -x PBEsol
Report: downloading patch versions information… [FAILED]
Critical: HTTPSConnectionPool(host=‘archive.materialscloud.org’, port=443): Max retries exceeded with url: /record/file?filename=versions.yaml&parent_id=19 (Caused by ProxyError(‘Unable to connect to proxy’, OSError(‘Tunnel connection failed: 403 Forbidden’)))
(aiidaENV) rkarkee@ch-fe1:/lustre/scratch5/rkarkee>

https://aiida-pseudo.readthedocs.io/en/latest/troubleshooting.html#the-automated-install-commands-fail

Hi sphuber,

It said the same for download only.
(aiidaENV) rkarkee@ch-fe1:/lustre/scratch5/rkarkee> aiida-pseudo install sssp --download-only
Report: downloading patch versions information… [FAILED]
Critical: HTTPSConnectionPool(host=‘archive.materialscloud.org’, port=443): Max retries exceeded with url: /record/file?filename=versions.yaml&parent_id=19 (Caused by ProxyError(‘Unable to connect to proxy’, OSError(‘Tunnel connection failed: 403 Forbidden’)))

Is there zip file that I can download and install to aiida manually?

Hi @rkarkee

If I’m not mistaken, you were trying to use the “–download-only” option on your HPC system. As described in the reference provided by @sphuber, the idea is that you download the PPs on your computer where you have a stable internet connection (and the permissions to do so) via:

aiida-pseudo install sssp --download-only

You can then copy the downloaded archive from your computer to your HPC system. Afterwards, you need to run the following command on the HPC system:

aiida-pseudo install sssp --from-download SSSP_1.3_PBEsol_efficiency.aiida_pseudo```
1 Like

Hi @t-reents

I havent installed aiida in local computer. Is there any other way to get sssp from other sources?

Rijan

Also I have windows OS, I dont know if I can install aiida in Windows.

I see. Something that would need to be double checked, but in principle (in case you really have no option to access an aiida and aiida-pseudo installation) you should be able to download the SSSP PPs from the MaterialsCloud and install the files via aiida-pseudo, as you would also do with any other external PP family that isn’t supported by aiida-pseudo per default. I’m referring to the following: How-To Guides — aiida-pseudo 1.5.0 documentation

However, as pointed out by @sphuber in another post Configure Aiida to use remote HPC - #39 by sphuber, the archives that you manually download from MaterialsCloud wouldn’t be compatible with aiida-pseudo install sssp --from-download. So you would need to follow the aforementioned approach (if this would work). Moreover, you wouldn’t directly install the recommended cutoffs.

Maybe @sphuber has something to add on how to circumvent this, in case I missed something.

Hi @t-reents

Just wondering, can someone who has access to aiida do

aiida-pseudo install sssp --download-only

and share that file to me via email or drive.

Would that work?

Rijan

You are correct. aiida-pseudo install sssp --download-only creates an archive with a custom structure. So just a plain archive of SSSP potentials downloaded, for example from the Materials Cloud, won’t work with aiida-pseudo install sssp --from-download.

The only other solution is indeed to manually download the normal archive from the SSSP Materials cloud and use the generic aiida-pseudo family install command to install it, as you mentioned. But that installs just the pseudos. One would still have to then manually add the recommended cutoffs. At least if workchains are used that expect those to be set on the family, which is going to be likely the case.

The simplest case really is to get a working installation on a machine with a normal internet connection. Note that I think you don’t need a profile to run aiida-pseudo install sssp --download-only. So you would just need to pip install aiida-pseudo and run the command. No need to install PostgresSQL, RabbitMQ and create a profile and all that.

1 Like

Hi @sphuber
I installed aaida-pseudo through pip in anaconda powershell.

Then
aiida-pseudo install sssp --download-only
gave error as:

PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: ‘C:\Users\rijan\.aiida\tmpz874dk5q’ → ‘C:\Users\rijan\.aiida\config.json’

This seems to be a Windowns problem. Are you running this on windows? AiiDA does not support Windows. If you don’t have a Linux/MacOs box, I recommend you install WSL: https://learn.microsoft.com/en-us/windows/wsl/install

Then you can install aiida-pseudo in there.