strucscan
strucscan: A lightweight Python-based framework for high-throughput material simulation - Published in JOSS (2022)
Science Score: 93.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 1 DOI reference(s) in JOSS metadata -
○Academic publication links
-
○Committers with academic emails
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Repository
A lightweight python-based framework for high-throughput material simulation
Basic Info
Statistics
- Stars: 6
- Watchers: 0
- Forks: 3
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
Strucscan
strucscan provides a lightweight Python-based framework for high-throughput material simulation that loops over a specified list of input structures and computes a specified list of properties on compute clusters with a queueing system or on the local host. The property calculations are represented as a pipeline of successive, interdependent steps which can easily be adapted and extended. The data is stored in a human-readable data tree with flat hierarchy. Strucscan performs a series of scalable and easily extendable pre-processing and post-processing steps and compiles the results in Python dictionaries for further evaluation. strucscan comes with interfaces to the VASP software package for ab-initio calculations. The VASP software itself is not included in this distribution.
Documentation
A detailed documentation can be found here.
Installation and setup
- clone repository into a
<directory>of your choice. Please clone 'main' branch only. -
cdin your clonedstrucscandirectory and typepip3 install . - set-up
~/.strucscanresource file: copy.strucscanin your home directory and set it up according to your preferences. \ These configurations can be edited any time and are read in by strucsan at every start. \ Mandatory keys:PROJECT_PATH: (str) top node of your data tree.STRUCTURES_PATH: (str) top node of your structure pool.RESOURCE_PATH: (str) path to configuration files for binaries, submission scripts, engines settings and further files (e.g. VASP pseudopotentials).
Optional keys:
- DEBUG: (bool) enables print commands for more insight. Default is False.
- STRUCT_FILE_FORMAT: (str) structure file format of your structure files.
Valid values are all formats comptabile with ase.io.read method. Default is cfg.
- SLEEP_TIME: (int) Time in sec that strucscan will pause before starting the next monitoring loop. Default are 60 s.
Dependencies
- ase
- numpy
- scipy
- spglib
Resource directory
The resource directory contains script templates and configurations for modules and calls that
can be tailored for specific machines. Additionally, you can deposit parameters and settings
for the individual engines. The resource directory is organized like this:
resources
├── machineconfig
│ ├── HPC1
│ │ ├── config.yaml
│ │ └── machinescripts
│ │ ├── queue1.sge
│ │ ├── queue2.sge
│ │ └── ...
│ │
│ ├── HPC2
│ │ ├── config.yaml
│ │ └── machinescripts
│ │ ├── queue1.sge
│ │ ├── queue2.sge
│ │ └── ...
│ │
│ └── ...
│
└── engines
├── vasp
│ ├── bin
│ ├── settings
│ └── potentials
│ ├── potpaw
│ ├── potpaw_PBE
│ └── potpaw_GGA
│
├── another_engine
│ ├── bin
│ ├── settings
│ └── potentials
│
└── ...
The machine configuration folder (machineconfig) contains the information that is required
to start a serial or parallel calculation with the specific engine on the local host or to
submit it do the scheduler of a compute cluster.
This includes particularly modules that need to be loaded, the executable, and the queue
requests in the config.yaml file as well as additional scripts that may be needed.
Example: machineconfig/example_vasp/config.yaml with parallel and serial executable of a VASP engine
VASP:
parallel: | # this pipe is essential for reading multi-line entries
module load vasp/mpi/5.4.4
mpirun -np $NTOTALCORES vasp_std
serial: | # this pipe is essential for reading multi-line entries
module load vasp/serial/5.4.4
vasp_std
Example: machineconfig/dummy/machinescripts/parallel12.sge with scheduler settings for parallel execution
```
!/bin/bash
$ -S /bin/tcsh
$ -N [JOB_NAME]
$ -l qname=parallel12.q
$ -pe mpi12 [NTOTALCORES]
$ -e $JOB_ID.err
$ -o $JOB_ID.o
$ -cwd
$ -j y
$ -R y
ipcrm --all
START=date
HOST=hostname
QNAME="parallel12"
echo "start: $START $HOSTNAME $QNAME" > start.dat
```
Starting Strucscan
You can start strucscan from the command line using:
strucscan input.yaml
Several example calculations with input files are given in the notebooks in strucscan/examples.
Owner
- Name: ICAMS
- Login: ICAMS
- Kind: organization
- Location: Germany
- Website: http://www.icams.de
- Repositories: 9
- Profile: https://github.com/ICAMS
Interdisciplinary Centre for Advanced Materials Simulation, Ruhr University Bochum
JOSS Publication
strucscan: A lightweight Python-based framework for high-throughput material simulation
Authors
Interdisciplinary Centre for Advanced Materials Simulation (ICAMS), Ruhr University Bochum, Bochum, Germany
Interdisciplinary Centre for Advanced Materials Simulation (ICAMS), Ruhr University Bochum, Bochum, Germany
Interdisciplinary Centre for Advanced Materials Simulation (ICAMS), Ruhr University Bochum, Bochum, Germany
Tags
material simulation high-throughput ab initioGitHub Events
Total
Last Year
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| pietki8q | 8****q | 106 |
| Thomas Hammerschmidt | 3****m | 22 |
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 6
- Total pull requests: 59
- Average time to close issues: 15 days
- Average time to close pull requests: 3 days
- Total issue authors: 2
- Total pull request authors: 2
- Average comments per issue: 1.0
- Average comments per pull request: 0.02
- Merged pull requests: 51
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- mturiansky (4)
- wcwitt (2)
Pull Request Authors
- pietki8q (58)
- wcwitt (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 12 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 1
- Total maintainers: 1
pypi.org: strucscan
Lightweight Python-based framework for high-throughput material simulation by ICAMS, Ruhr University Bochum
- Homepage: https://github.com/ICAMS/strucscan
- Documentation: https://strucscan.readthedocs.io/
- License: GPL3
-
Latest release: 0.post0.dev68
published over 3 years ago
Rankings
Maintainers (1)
Dependencies
- ase
- numpy
- pandas
- phonopy
- python
- scipy
- spglib
- ase *
- furo *
- ipywidgets ==7.5
- m2r2 *
- nbsphinx *
- numpy *
- sphinx_rtd_theme *
- ase *
- numpy *
- scipy *
- spglib *
- actions/cache v1 composite
- actions/checkout v2 composite
- conda-incubator/setup-miniconda v2 composite
- ase
- numpy
- python
- pyyaml
