libpyvinyl


Namelibpyvinyl JSON
Version 1.3.0 PyPI version JSON
download
home_pagehttps://github.com/PaNOSC-ViNYL/libpyvinyl
SummaryThe python API for photon and neutron simulation codes in the Photon and Neutron Open Science Cloud (PaNOSC).
upload_time2024-07-26 11:44:45
maintainerNone
docs_urlNone
authorCarsten Fortmann-Grote, Mads Bertelsen, Juncheng E, Shervin Nourbakhsh
requires_pythonNone
licenseLGPLv3
keywords photons neutrons simulations
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # libpyvinyl - The python APIs for Virtual Neutron and x-raY Laboratory

[![CI](https://github.com/PaNOSC-ViNYL/libpyvinyl/actions/workflows/ci.yml/badge.svg)](https://github.com/PaNOSC-ViNYL/libpyvinyl/actions/workflows/ci.yml)
[![Documentation Status](https://readthedocs.org/projects/libpyvinyl/badge/?version=latest)](https://libpyvinyl.readthedocs.io/en/latest/?badge=latest)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6558164.svg)](https://doi.org/10.5281/zenodo.6558164)


## Overview
[GitHub repository](https://github.com/PaNOSC-ViNYL/libpyvinyl)

**Installation instructions** [here](INSTALL.md)

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
 1. users wishing to run a simulation giving some inputs and retrieving
   the results
 1. 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:
- McStatsScript: [https://github.com/PaNOSC-ViNYL/McStasScript](https://github.com/PaNOSC-ViNYL/McStasScript)
- SimEx-Lite:[https://github.com/PaNOSC-ViNYL/SimEx-Lite](https://github.com/PaNOSC-ViNYL/SimEx-Lite)


## 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](DEVEL.md).

## Acknowledgement

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

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/PaNOSC-ViNYL/libpyvinyl",
    "name": "libpyvinyl",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": "photons, neutrons, simulations",
    "author": "Carsten Fortmann-Grote, Mads Bertelsen, Juncheng E, Shervin Nourbakhsh",
    "author_email": "carsten.grote@xfel.eu, juncheng.e@xfel.eu, Mads.Bertelsen@ess.eu, nourbakhsh@ill.fr",
    "download_url": "https://files.pythonhosted.org/packages/e8/d2/1bcfff4be4cabfd9816f81e3e90be298510aa02c7cbcc6bdad58f91501ac/libpyvinyl-1.3.0.tar.gz",
    "platform": null,
    "description": "# libpyvinyl - The python APIs for Virtual Neutron and x-raY Laboratory\n\n[![CI](https://github.com/PaNOSC-ViNYL/libpyvinyl/actions/workflows/ci.yml/badge.svg)](https://github.com/PaNOSC-ViNYL/libpyvinyl/actions/workflows/ci.yml)\n[![Documentation Status](https://readthedocs.org/projects/libpyvinyl/badge/?version=latest)](https://libpyvinyl.readthedocs.io/en/latest/?badge=latest)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.6558164.svg)](https://doi.org/10.5281/zenodo.6558164)\n\n\n## Overview\n[GitHub repository](https://github.com/PaNOSC-ViNYL/libpyvinyl)\n\n**Installation instructions** [here](INSTALL.md)\n\nRequires:\n```\npython >= 3.8\n```\n\nSimulations provide invaluable insights to plan (before) and\n understand (after) experiments at neutron and X-ray facilities. \nA wide set of libraries and programs is already available to simulate\n neutron and X-ray beams, propagate them through the beamlines,\n interact with the sample and get data acquired by detectors. \n\nThe aim of _libpyvinyl_ is to provide a high level neutron and X-ray simulation API. \nWith this harmonized user interface we achieve seamless\ninteroperability of individual simulations thereby facilitating the\nconcatenation of simulation steps into a simulation pipeline. \nThe vast differences with respect to parameter\n names, unit conventions, configuration syntax, i.e. the user\n interface, is, hence, overcome creating a `libpyvinyl` compliant API\n for each simulation software. \n\n## Software specific APIs based on libpyvinyl\nThe 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.\n\nFor a given simulation code, e.g. propagation of neutron or photon\nbeams through a beamline, a new class would have to be defined that\nderives from the `libpyvinyl` classes. \nThis derived class requires the implementation of certain methods\nmeant to configure a simulation, launch the simulation code, and\nretrieve the output data.\nSince the interplay between parametrization, execution, and IO is\nalready taken care of at the level of `libpyvinyl`'s base classes, the\neffort to define a specialized interface (parameters, backengine and\ndata object) for a new simulation code is rather minimal. This structure\nallows integrating simulation codes into simulation pipelines in the\nabove sense. \n\n## What the libpyvinyl API offers\nThis API offers a homogeneous interface to:\n\n- Configure a simulation.\n- Launch the simulation run.\n- Collect the simulation output data.\n- Construct a `Data` instance that represents the simulation output data.\n- Snapshoot a simulation by dumping the object to disk.\n- Reload a simulation run from disk and continue the run with optionally modified parameters.\n\n## Who should use this library\nThree kind of users are the target of this package:\n 1. developers of packages based on libpyvinyl offering new calculators\n   for simulations\n 1. users wishing to run a simulation giving some inputs and retrieving\n   the results\n 1. research facility experts that what to implement detailed\n   simulation of existing instruments at their facility or  willing to\n   design new ones\n \n## libpyvinyl projects\nThere are currently two projects based on libpyvinyl:\n- McStatsScript: [https://github.com/PaNOSC-ViNYL/McStasScript](https://github.com/PaNOSC-ViNYL/McStasScript)\n- SimEx-Lite:[https://github.com/PaNOSC-ViNYL/SimEx-Lite](https://github.com/PaNOSC-ViNYL/SimEx-Lite)\n\n\n## Documentation\nDocumentation can be generated as follows using sphinx:\n```\ncd doc/\npip install requirements.txt\nmake html\n```\n\n## Development guide\nPlease find the development guide [here](DEVEL.md).\n\n## Acknowledgement\n\nThis project has received funding from the European Union's Horizon 2020 research and innovation programme under grant agreement No. 823852.\n",
    "bugtrack_url": null,
    "license": "LGPLv3",
    "summary": "The python API for photon and neutron simulation codes in the Photon and Neutron Open Science Cloud (PaNOSC).",
    "version": "1.3.0",
    "project_urls": {
        "Download": "https://github.com/PaNOSC-ViNYL/libpyvinyl/archive/v1.3.0.tar.gz",
        "Homepage": "https://github.com/PaNOSC-ViNYL/libpyvinyl"
    },
    "split_keywords": [
        "photons",
        " neutrons",
        " simulations"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bcb76450abe0e5db2e7ca05d1de2e77add71f535de21d0a030150880d2ab793d",
                "md5": "70d63d82953d3c18816dda2f550d4d45",
                "sha256": "5ec180c4678d7da58ac53d29da72ba6198939fa0265d6273d4f12163ca8af117"
            },
            "downloads": -1,
            "filename": "libpyvinyl-1.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "70d63d82953d3c18816dda2f550d4d45",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": null,
            "size": 26347,
            "upload_time": "2024-07-26T11:44:44",
            "upload_time_iso_8601": "2024-07-26T11:44:44.944027Z",
            "url": "https://files.pythonhosted.org/packages/bc/b7/6450abe0e5db2e7ca05d1de2e77add71f535de21d0a030150880d2ab793d/libpyvinyl-1.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e8d21bcfff4be4cabfd9816f81e3e90be298510aa02c7cbcc6bdad58f91501ac",
                "md5": "c718a3fd06e2d50894fdc21e521ecdbd",
                "sha256": "5031eacda47519734adf0cea21c684bb368659f08f8df48a698b56fb14c837e3"
            },
            "downloads": -1,
            "filename": "libpyvinyl-1.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "c718a3fd06e2d50894fdc21e521ecdbd",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 24351,
            "upload_time": "2024-07-26T11:44:45",
            "upload_time_iso_8601": "2024-07-26T11:44:45.969595Z",
            "url": "https://files.pythonhosted.org/packages/e8/d2/1bcfff4be4cabfd9816f81e3e90be298510aa02c7cbcc6bdad58f91501ac/libpyvinyl-1.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-26 11:44:45",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "PaNOSC-ViNYL",
    "github_project": "libpyvinyl",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "libpyvinyl"
}
        
Elapsed time: 0.35210s