Skip to main content

The python API for photon and neutron simulation codes in the Photon and Neutron Open Science Cloud (PaNOSC).

Project description

libpyvinyl - The python APIs for Virtual Neutron and x-raY Laboratory

CI Documentation Status DOI

Overview

GitHub repository

Installation instructions here

Requires:

python >= 3.8

Simulations provide invaluable insights to plan (before) and understand (after) experiments at neutron and X-ray facilities. A wide set of libraries and programs is already available to simulate neutron and X-ray beams, propagate them through the beamlines, interact with the sample and get data acquired by detectors.

The aim of libpyvinyl is to provide a high level neutron and X-ray simulation API. With this harmonized user interface we achieve seamless interoperability of individual simulations thereby facilitating the concatenation of simulation steps into a simulation pipeline. The vast differences with respect to parameter names, unit conventions, configuration syntax, i.e. the user interface, is, hence, overcome creating a libpyvinyl compliant API for each simulation software.

Software specific APIs based on libpyvinyl

The python package libpyvinyl provides a way to harmonize the user interfaces of such simulation codes. It is an object oriented library; its classes define the user interface to simulation codes, simulation parameters and simulation data.

For a given simulation code, e.g. propagation of neutron or photon beams through a beamline, a new class would have to be defined that derives from the libpyvinyl classes. This derived class requires the implementation of certain methods meant to configure a simulation, launch the simulation code, and retrieve the output data. Since the interplay between parametrization, execution, and IO is already taken care of at the level of libpyvinyl's base classes, the effort to define a specialized interface (parameters, backengine and data object) for a new simulation code is rather minimal. This structure allows integrating simulation codes into simulation pipelines in the above sense.

What the libpyvinyl API offers

This API offers a homogeneous interface to:

  • Configure a simulation.
  • Launch the simulation run.
  • Collect the simulation output data.
  • Construct a Data instance that represents the simulation output data.
  • Snapshoot a simulation by dumping the object to disk.
  • Reload a simulation run from disk and continue the run with optionally modified parameters.

Who should use this library

Three kind of users are the target of this package:

  1. developers of packages based on libpyvinyl offering new calculators for simulations
  2. users wishing to run a simulation giving some inputs and retrieving the results
  3. research facility experts that what to implement detailed simulation of existing instruments at their facility or willing to design new ones

libpyvinyl projects

There are currently two projects based on libpyvinyl:

Documentation

Documentation can be generated as follows using sphinx:

cd doc/
pip install requirements.txt
make html

Development guide

Please find the development guide here.

Acknowledgement

This project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 823852.

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

libpyvinyl-1.3.0.tar.gz (24.4 kB view details)

Uploaded Source

Built Distribution

libpyvinyl-1.3.0-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file libpyvinyl-1.3.0.tar.gz.

File metadata

  • Download URL: libpyvinyl-1.3.0.tar.gz
  • Upload date:
  • Size: 24.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for libpyvinyl-1.3.0.tar.gz
Algorithm Hash digest
SHA256 5031eacda47519734adf0cea21c684bb368659f08f8df48a698b56fb14c837e3
MD5 c718a3fd06e2d50894fdc21e521ecdbd
BLAKE2b-256 e8d21bcfff4be4cabfd9816f81e3e90be298510aa02c7cbcc6bdad58f91501ac

See more details on using hashes here.

File details

Details for the file libpyvinyl-1.3.0-py3-none-any.whl.

File metadata

  • Download URL: libpyvinyl-1.3.0-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.0 CPython/3.12.4

File hashes

Hashes for libpyvinyl-1.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5ec180c4678d7da58ac53d29da72ba6198939fa0265d6273d4f12163ca8af117
MD5 70d63d82953d3c18816dda2f550d4d45
BLAKE2b-256 bcb76450abe0e5db2e7ca05d1de2e77add71f535de21d0a030150880d2ab793d

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