What does "VRE language" mean?
This is a Domain-Specific Language (DSL) to be used in a Virtual Research Environment. It is a computer language using domain-specific notations and abstractions rather than such commonly used in general purpose languages such as Python. For example, in our DSL there are no for-loops and classes (that are used in Python) and no workflows and workflow node objects (used in workflow DSLs). But we have objects such as atoms and molecules and semantics to perform specific operations on these.
Requirements
Domain concepts
The DSL totally depends on how we define our domain. In this VRE language, we define our domain as materials modelling domain that is a subdomain of scientific computing and has subdomains such as atomistic modeling and molecular modeling. Particularly, support of physical units by the language is a common concept for all these domains. Nevertheless, these domains can still be defined in different ways. Therefore, we base our domain definition on a set of use cases. For an example use case, look at this repository. You are welcome to contribute with further uses cases and extend the VRE language.
Requirements from the community and the target platform
Apart from the domain-specific notations, our VRE language has to satisfy further requirements.
Full life cycle of modeling, simulation and data analysis
A model should be accessible and extensible dynamically, at any time. This is what we call persistence and dynamics of the model. To satisfy this requirement, we connect the interpreter to a workflow management system equipped with a database.
Jupyter front-end system
This poses a challenge for models with persistence and on the other hand a new Jupyter kernel with the VRE language interpreter had to be developed. Currently, VRE Language includes a full fledged Jupyter kernel that can be used in Jupyter Console, Jupyter Notebook and Jupyter Lab.
Transparent workflow management system and workload management system
This is not obvious and also not trivial to implement. Particularly, notations in the program code about the granularity (which statements belong to the same workflow node) and the computing resources needed (such as computing time, number of CPUs, memory, disk space, ...) are necessary for computational performance or other practical reasons but difficult to hide completely from the language. Currently, the workflow management system FireWorks and workload management system Slurm are supported.
Python as interpreter language
This requirement is due to the fact that a plenty of libraries (APIs) for Python in the domain already exist: the Atomic Simulation Environment (ASE), Python Materials Genomics (Pymatgen) and PyIron, to name only a few. These libraries cover the most relevant aspects of their domains but still are used in the general-purpose language Python. The use of Python implies in turn that a workflow management system and system of physical units providing Python APIs are required.
History
Originally this package has been developed in a VirtMat project.
Development status
The current developement status of the VRE language is beta. If you detect bugs or suggest missing features, you can file an issue.
If you want to use workflows for modeling and data analysis using Python in Jupyter you can use VRE middleware (currently in beta state).
Documentation
An installation guide and comprehensive documentation is provided on these pages.
Support
If you need support or have any questions about VRE Language please write a message to virtmat-tools@lists.kit.edu.
Citing the VRE Language package
If you find the VRE Language package useful in your research please cite:
Ivan Kondov, Rodrigo Cortés Mejía, Marvin Müller, Nikolai Pfisterer, Sruthy Sreenivasan
Domain Specific Language for Materials Modeling
M. Paszynski et al. (Eds.): International Conference on Computational Science (ICCS) 2025 Workshops, LNCS 15909, pp. 221–236, 2025.
https://doi.org/10.1007/978-3-031-97564-6_18
Contributing
You are welcome to contribute to VRE Language. More details can be found here.
Metadata
Release files for vre-language 0.10.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vre_language-0.10.0.tar.gz | 310.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vre_language-0.10.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 559.4 kB
Release files / vre_language-0.10.0.tar.gz
| Download URL | vre_language-0.10.0.tar.gz |
|---|---|
| Size | 310.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ece554b6e60a763c5972978a806bb5203dc4ca46eceed4ae3bf43450d1221c4a
|
|
BLAKE2b-256 checksum How to use checksums |
8c07b02fc7cd005ada6b5b29e78a0b315bcce09e5e947b7c1d8bc72f605bacd1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / vre_language-0.10.0-py3-none-any.whl
| Download URL | vre_language-0.10.0-py3-none-any.whl |
|---|---|
| Size | 249.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8943277af7a8b478d24784403b0abcc7b1df8ff8274b2f41704a83025be4156f
|
|
BLAKE2b-256 checksum How to use checksums |
6607472d6e2876c81d5b2f197b738db45bc5ea7cb599f4bc02742d79851d365c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|