Skip to main content

VRE Language

Project description

What does "VRE language" mean?

This is a Domain-Specific Language (DSL) to be used in a Virtual Research Environment in the VirtMat projects. This means 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. We generally look at this repository for relevant use cases to define our domain. You are welcome to contribute with further uses cases to the further development of the VRE language. To get involved, please fork the use case repository, add your use case and create a merge request.

Requirements from the community and the target platform

Apart from the domain-specific notations, our VRE language has to satisfy further requirements:

  1. Support a 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.
  2. Use Jupyter as a 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 has to be developed.
  3. Make the complex workflow management systems and HPC systems / batch systems transparent. 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.
  4. Use Python as a language for the interpreter. This 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.

Development status

The current developement status of the VRE language is beta.

If you are interested, you can have a look at the issues and even start contributing by forking and creating merge requests.

If you want to use workflows for modeling and data analysis using Python in Jupyter you can start testing the VRE middleware that is 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vre_language-0.4.0.tar.gz (129.1 kB view details)

Uploaded Source

Built Distribution

vre_language-0.4.0-py3-none-any.whl (111.7 kB view details)

Uploaded Python 3

File details

Details for the file vre_language-0.4.0.tar.gz.

File metadata

  • Download URL: vre_language-0.4.0.tar.gz
  • Upload date:
  • Size: 129.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for vre_language-0.4.0.tar.gz
Algorithm Hash digest
SHA256 56f81ff59907ad80bb058697fd4000f713d3a58095858f1fd75fe1f7a3b03b78
MD5 6a7f92e56cf7c72c5e9265d3966fad63
BLAKE2b-256 33dddb025e09e5e6612fe88b673e116adf054455ef1be8d08f4a5de86c4b60c4

See more details on using hashes here.

File details

Details for the file vre_language-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: vre_language-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 111.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for vre_language-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 70e25d7c14420b80ca79fa3d1916881a93d1a7a58bc78fcec7d6b5ca2a65e9b9
MD5 8d46fa01cdd4d5166599ba8d060fbde0
BLAKE2b-256 69918c87a2d347fd5839b32b46ad097d3be2cd4bfdd77ca4bf8c2c0f8e14573e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page