mirror of
https://github.com/TREX-CoE/trexio.git
synced 2024-11-03 12:43:55 +01:00
commit
d67f124e35
58
README.md
58
README.md
@ -5,7 +5,26 @@
|
|||||||
[![build](https://github.com/TREX-CoE/trexio/actions/workflows/actions.yml/badge.svg)](https://github.com/TREX-CoE/trexio/actions/workflows/actions.yml)
|
[![build](https://github.com/TREX-CoE/trexio/actions/workflows/actions.yml/badge.svg)](https://github.com/TREX-CoE/trexio/actions/workflows/actions.yml)
|
||||||
![GitHub release (latest by date)](https://img.shields.io/github/v/release/TREX-CoE/trexio)
|
![GitHub release (latest by date)](https://img.shields.io/github/v/release/TREX-CoE/trexio)
|
||||||
|
|
||||||
TREXIO is an open-source file format and library developed for the storage and manipulation of data produced by quantum chemistry calculations. It is designed with the goal of providing a reliable and efficient method of storing and exchanging wave function parameters and matrix elements. The library consists of a front-end implemented in the C programming language and two different back-ends: a text back-end and a binary back-end utilizing the HDF5 library which enables fast read and write operations. It is compatible with a variety of platforms and has interfaces for the Fortran, Python, OCaml and Rust programming languages.
|
TREXIO is an open-source file format and library developed for the storage and
|
||||||
|
manipulation of data produced by quantum chemistry calculations. It is designed
|
||||||
|
with the goal of providing a reliable and efficient method of storing and
|
||||||
|
exchanging wave function parameters and matrix elements. The library consists
|
||||||
|
of a front-end implemented in the C programming language and two different
|
||||||
|
back-ends: a text back-end and a binary back-end utilizing the HDF5 library
|
||||||
|
which enables fast read and write operations. It is compatible with a variety
|
||||||
|
of platforms and has interfaces for the Fortran, Python, OCaml and Rust
|
||||||
|
programming languages.
|
||||||
|
|
||||||
|
## Distributing TREXIO with your code
|
||||||
|
|
||||||
|
The TREXIO software is distributed under the 3-clause BSD license, renowned for
|
||||||
|
its permissiveness. Consequently, it is entirely acceptable for you to
|
||||||
|
provide the TREXIO release tarball in conjunction with your own code.
|
||||||
|
Should you opt to include TREXIO with your software, it is recommended to
|
||||||
|
distribute the release tarball, instead of the content of the git repository.
|
||||||
|
The release tarballs contain pre-generated source files. This not only
|
||||||
|
accelerates the compilation process but also significantly reduces dependency
|
||||||
|
requirements.
|
||||||
|
|
||||||
## Minimal requirements (for users):
|
## Minimal requirements (for users):
|
||||||
|
|
||||||
@ -15,24 +34,37 @@ TREXIO is an open-source file format and library developed for the storage and m
|
|||||||
- HDF5 library (>= 1.8) [optional, recommended for high performance]
|
- HDF5 library (>= 1.8) [optional, recommended for high performance]
|
||||||
|
|
||||||
|
|
||||||
## Installation procedure from the tarball (for users):
|
## Installation procedure from the release tarball (for users):
|
||||||
|
|
||||||
1. Download the `trexio-<version>.tar.gz` file
|
1. Download the `trexio-<version>.tar.gz` file from the GitHub release page
|
||||||
2. `gzip -cd trexio-<version>.tar.gz | tar xvf -`
|
2. `gzip -cd trexio-<version>.tar.gz | tar xvf -`
|
||||||
3. `cd trexio-<version>`
|
3. `cd trexio-<version>`
|
||||||
4. `./configure`
|
4. `./configure`
|
||||||
5. ```make -j`getconf _NPROCESSORS_ONLN` ```
|
5. ```make -j 4 ```
|
||||||
6. ```make -j`getconf _NPROCESSORS_ONLN` check```
|
6. ```make -j 4 check```
|
||||||
7. `sudo make install`
|
7. `sudo make install`
|
||||||
|
|
||||||
|
In environments where `sudo` access is unavailable, a common workaround for
|
||||||
|
executing `make install/uninstall` commands without requiring superuser
|
||||||
|
privileges involves a modification to the `./configure` command.
|
||||||
|
This modification typically includes specifying an installation prefix within
|
||||||
|
the user's home directory to circumvent the need for system-wide installation
|
||||||
|
permissions. For instance, `./configure prefix=$HOME/.local` can be employed,
|
||||||
|
where `$HOME/.local` is often recommended for user-space software installations.
|
||||||
|
However, this is merely a suggestion, and users are free to choose any suitable
|
||||||
|
directory as their installation prefix, depending on their specific
|
||||||
|
requirements and system configurations.
|
||||||
|
|
||||||
**Note: on systems with no `sudo` access, one can replace `./configure` with `./configure prefix=${PWD}/build` in order to execute `make install/uninstall` commands without `sudo` privileges.**
|
Regarding the integration with an MPI (Message Passing Interface) enabled HDF5
|
||||||
|
library, it's typical to specify the MPI compiler wrapper for the C compiler.
|
||||||
**Note: when linking against an MPI-enabled HDF5 library one usually has to specify the MPI wrapper for the C compiler by adding, e.g., `CC=mpicc` to the `./configure` command.**
|
This is done by appending a directive like `CC=mpicc` to the `./configure`
|
||||||
|
command. However, as TREXIO does not utilize MPI features, it is advisable to
|
||||||
|
link against a non-MPI (serial) version of the HDF5 library for the sake of
|
||||||
|
simplicity.
|
||||||
|
|
||||||
## Additional requirements (for developers):
|
## Additional requirements (for developers):
|
||||||
|
|
||||||
- python3 (>= 3.6)
|
- Python3 (>= 3.6)
|
||||||
- Emacs (>= 26.0)
|
- Emacs (>= 26.0)
|
||||||
- SWIG (>= 4.0) [required for the Python API]
|
- SWIG (>= 4.0) [required for the Python API]
|
||||||
|
|
||||||
@ -44,8 +76,8 @@ TREXIO is an open-source file format and library developed for the storage and m
|
|||||||
2. `cd trexio`
|
2. `cd trexio`
|
||||||
3. `./autogen.sh`
|
3. `./autogen.sh`
|
||||||
4. `./configure`
|
4. `./configure`
|
||||||
5. ```make -j`getconf _NPROCESSORS_ONLN` ```
|
5. ```make -j 4```
|
||||||
6. ```make -j`getconf _NPROCESSORS_ONLN` check```
|
6. ```make -j 4 check```
|
||||||
7. `sudo make install`
|
7. `sudo make install`
|
||||||
|
|
||||||
## Installation procedure for CMake users (from the tarball or GitHub repo clone):
|
## Installation procedure for CMake users (from the tarball or GitHub repo clone):
|
||||||
@ -55,8 +87,8 @@ The aforementioned instructions rely on [Autotools](https://www.gnu.org/software
|
|||||||
|
|
||||||
1. `cmake -S. -Bbuild`
|
1. `cmake -S. -Bbuild`
|
||||||
2. `cd build`
|
2. `cd build`
|
||||||
3. ```make -j`getconf _NPROCESSORS_ONLN` ```
|
3. ```make -j 4```
|
||||||
4. ```ctest -j`getconf _NPROCESSORS_ONLN` ```
|
4. ```ctest -j 4```
|
||||||
5. `sudo make install`
|
5. `sudo make install`
|
||||||
|
|
||||||
**Note: on systems with no `sudo` access, one can add `-DCMAKE_INSTALL_PREFIX=build` as an argument to the `cmake` command so that `make install/uninstall` can be run without `sudo` privileges.**
|
**Note: on systems with no `sudo` access, one can add `-DCMAKE_INSTALL_PREFIX=build` as an argument to the `cmake` command so that `make install/uninstall` can be run without `sudo` privileges.**
|
||||||
|
@ -1858,7 +1858,8 @@ def _inquire(file_name: str) -> bool:
|
|||||||
|
|
||||||
** File copy
|
** File copy
|
||||||
|
|
||||||
~trexio_cp~ copies a TREXIO file using =cp=.
|
~trexio_cp~ copies a TREXIO file using =cp=. The destination file
|
||||||
|
is not overwritten if it exists, an error is returned.
|
||||||
|
|
||||||
**Input parameters:**
|
**Input parameters:**
|
||||||
1) ~source_file_name~ - string containing the name of the source file
|
1) ~source_file_name~ - string containing the name of the source file
|
||||||
|
Loading…
Reference in New Issue
Block a user