Mein Python-Code:
Code: Select all
#!/jet/home/PATH
"""
Automated Li insertion workflow for MOFs using Atomate2 v0.0.22.
"""
from pathlib import Path
from pymatgen.core import Structure
from atomate2.vasp.sets.core import RelaxSetGenerator, StaticSetGenerator
from atomate2.vasp.jobs.core import RelaxMaker, StaticMaker
from atomate2.vasp.flows.electrode import ElectrodeInsertionMaker
from jobflow import run_locally
from atomate2.vasp.jobs.base import BaseVaspMaker
# ============================================================
# VASP RUN COMMAND
# ============================================================
BaseVaspMaker.run_vasp_cmd = ["vasp_std"]
# ============================================================
# USER SETTINGS
# ============================================================
STRUCTURES_DIR = Path(".")
ENCUT = 520
EDIFF = 1e-5
KPOINTS_DENSITY = 300
LDAUU = {"Mn": 3.9, "Fe": 5.3, "Co": 3.32, "Ni": 6.2, "Cu": 4.0}
LDAUJ = {el: 0.0 for el in LDAUU}
MAGMOM = {"Mn": 5.0, "Fe": 5.0, "Co": 3.0, "Ni": 2.0, "Cu": 1.0,
"N": 0.6, "C": 0.6, "O": 0.6, "Li": 1.0, "Na": 1.0}
IONS_TO_INSERT = ["Li"]
N_STEPS = 10
INSERTIONS_PER_STEP = 1
# ============================================================
# INPUT SETS
# ============================================================
relax_set = RelaxSetGenerator(
user_incar_settings={
"ENCUT": ENCUT,
"EDIFF": EDIFF,
"ISIF": 3,
"ISPIN": 2,
"LDAU": True,
"LDAUTYPE": 2,
"LDAUU": LDAUU,
"LDAUJ": LDAUJ,
"MAGMOM": MAGMOM,
},
user_kpoints_settings={"grid_density": KPOINTS_DENSITY},
user_potcar_functional="PBE",
)
static_set = StaticSetGenerator(
user_incar_settings={
"ENCUT": ENCUT,
"EDIFF": EDIFF,
"IBRION": -1,
"NSW": 0,
"ISPIN": 2,
"LDAU": True,
"LDAUTYPE": 2,
"LDAUU": LDAUU,
"LDAUJ": LDAUJ,
"MAGMOM": MAGMOM,
},
user_kpoints_settings={"grid_density": KPOINTS_DENSITY},
user_potcar_functional="PBE",
)
# ============================================================
# MAKERS
# ============================================================
relax_maker = RelaxMaker(input_set_generator=relax_set)
static_maker = StaticMaker(input_set_generator=static_set)
# ============================================================
# MAIN WORKFLOW
# ============================================================
def main():
flows = []
cif_files = sorted(STRUCTURES_DIR.glob("*.cif"))
if not cif_files:
print(f"No CIF files found in {STRUCTURES_DIR}. Exiting.")
return
for cif_file in cif_files:
print(f"Preparing workflow for {cif_file.name}")
try:
structure = Structure.from_file(cif_file)
except Exception as e:
print(f"Failed to read {cif_file}: {e}")
continue
for ion in IONS_TO_INSERT:
insertion_maker = ElectrodeInsertionMaker(
relax_maker=relax_maker,
static_maker=static_maker,
name=f"{ion} insertion: {cif_file.stem}"
)
try:
flow = insertion_maker.make(
structure,
inserted_element=ion,
n_steps=N_STEPS,
insertions_per_step=INSERTIONS_PER_STEP
)
if flow is not None:
flows.append(flow)
else:
print(f"Warning: flow is None for {cif_file.name} ({ion})")
except Exception as e:
print(f"Failed to create workflow for {cif_file.name} ({ion}): {e}")
if not flows:
print("No valid workflows created. Exiting.")
return
print(f"Running {len(flows)} workflows locally...")
run_locally(flows, create_folders=True)
print("Workflows executed. Check job_* folders for outputs.")
# ============================================================
# ENTRY POINT
# ============================================================
if __name__ == "__main__":
main()
Code: Select all
#!/bin/bash
#SBATCH -N 1
#SBATCH -n 128
#SBATCH -p RM
#SBATCH -A PROJECT NAME
#SBATCH --job-name=AtomateMOF
#SBATCH -t 48:00:00
#SBATCH --mail-type=ALL
#SBATCH --mail-user=EMAIL
module purge
module load intel-oneapi
module load mkl/2020.4.304
module load VASP/6.4.1-intel
# Diagnostics
module list
which vasp_std
ldd $(which vasp_std) | grep -i mkl
ldd $(which vasp_std) | grep "not found"
echo "LD_LIBRARY_PATH: $LD_LIBRARY_PATH"
source ~/atomate2/miniconda3/etc/profile.d/conda.sh
conda activate atomate2
export OMP_NUM_THREADS=1
export PMG_VASP_PSP_DIR=/PATH_TO_POTCARs
export VASP_CMD="srun --mpi=pmi2 vasp_std"
echo "Running Atomate2 workflow..."
export JOBFLOW_JOB_DIR_FORMAT="{job.name}"
python atomatecode.py
Code: Select all
vasp_std: error while loading shared libraries: libmkl_intel_lp64.so.1: cannot open shared object file: No such file or directory
Code: Select all
/opt/packages/oneapi/v2023.2.0/mkl/2023.2.0/lib/intel64/libmkl_intel_lp64.so /opt/packages/oneapi/v2023.2.0/mkl/2023.2.0/lib/intel64/libmkl_intel_lp64.so.2 /opt/packages/oneapi/v2023.2.0/intelpython/python3.9/envs/2023.2.0/lib/libmkl_intel_lp64.so /opt/packages/oneapi/v2023.2.0/intelpython/python3.9/envs/2023.2.0/lib/libmkl_intel_lp64.so.2 /opt/packages/oneapi/v2023.2.0/intelpython/python3.9/lib/libmkl_intel_lp64.so /opt/packages/oneapi/v2023.2.0/intelpython/python3.9/lib/libmkl_intel_lp64.so
Code: Select all
FileNotFoundError: [Errno 2] No such file or directory: '/PATH/atomate2/job_2026-01-16-19-08-04-366717-37923/vasprun.xml'
Validation failed: VasprunXMLValidator
2026-01-16 14:08:14,928 INFO relax 0/10 failed with exception:
...
Failed to load vasprun.xml
Code: Select all
[snakaza@bridges2-login012 atomate2]$ module purge
[snakaza@bridges2-login012 atomate2]$ module load intel/2021.10.0
Lmod Warning: The "intel" and "intelmpi" module names are being split into more granular modules starting with version 2023.2.0 of Intel OneAPI. Components
are now available in separate, correspondingly named modules:
intel-compiler (Intel's modern LLVM-based compilers: icx, icpx, ifx, dpcpp)
intel-icc (Intel's classic compilers: icc, icpc, ifort)
intel-mpi (mpicc, mpicxx, mpiexec, mpirun)
intel-advisor (advisor, advixe-*)
intel-debugger (gdb-oneapi)
intel-inspector (inspxe-*)
intel-vtune (amplxe-*, vtune-*)
intel-ippcp-intel64 (libcrypto_*, libippcp)
etc.
A comprehensive "intel-oneapi" module is also provided to load the full suite.
Please update your scripts to load "intel-compiler", "intel-icc", "intel-mpi", and/or other tools under the new module names instead of "intel" and "intelmpi".
While processing the following module(s):
Module fullname Module Filename
--------------- ---------------
intel/2021.10.0 /opt/modulefiles/production/intel/2021.10.0.lua
[snakaza@bridges2-login012 atomate2]$ module load mkl/2020.4.304
[snakaza@bridges2-login012 atomate2]$ module load intel-mpi/2021.10.0
[snakaza@bridges2-login012 atomate2]$ module load VASP/6.4.1-intel
[snakaza@bridges2-login012 atomate2]$ ldd $(which vasp_std) | grep "not found"
libmkl_intel_lp64.so.1 => not found
libmkl_intel_thread.so.1 => not found
libmkl_core.so.1 => not found
libmkl_scalapack_lp64.so.1 => not found
libmkl_blacs_intelmpi_lp64.so.1 => not found
Code: Select all
[snakaza@bridges2-login012 atomate2]$ module list
Currently Loaded Modules:
1) intel-advisor/2023.2.0 6) intel-compiler/2023.2.1 11) intel-dpct/2023.2.0 16) intel-ipp-intel64/2021.9.0 21) mkl/2020.4.304
2) intel-ccl/2021.10.0 7) intel-dal/2023.2.0 12) intel-dpl/2022.2.0 17) intel-itac/2021.10.0 22) intel-mpi/2021.10.0
3) intel-tbb/2021.10.0 8) intel-debugger/2023.2.0 13) intel-icc/2023.2.1 18) intel-mkl/2023.2.0 23) VASP/6.4.1-intel
4) intel-compiler-rt/2023.2.1 9) intel-dev-utilities/2021.10.0 14) intel-inspector/2023.2.0 19) intel-vtune/2023.2.0
5) intel-oclfpga/2023.2.1 10) intel-dnnl/2023.2.0 15) intel-ippcp-intel64/2021.8.0 20) intel/2021.10.0
Jede Hilfe oder jeder Ratschlag zur Fehlerbehebung wäre dankbar.
Mobile version