High-Dimensional Integrator
High-Dimensional Integrator - Published in JOSS (2017)
Science Score: 95.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 4 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
✓Committers with academic emails
1 of 3 committers (33.3%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Scientific Fields
Repository
Basic Info
- Host: GitHub
- Owner: iljah
- License: gpl-3.0
- Language: C
- Default Branch: master
- Size: 99.6 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
HDIntegrator
High-Dimensional Integrator (HDIntegrator) is a program for parallel numerical integration of functions in arbitrary number of dimensions, see paper.md for a general overview.
Installation
Installation and testing is detailed in the INSTALL.md file but at least Python 3 and an implementation of Message Passing Interface is required along with mpi4py and the NetworkX python package. Separate programs are used for evaluating integrals numerically and are provided in the integrands directory. These can have their own prerequisites as detailed in INSTALL.
Usage
To get a list of mandatory and optional arguments supported by the program run
hdintegrator.py with --help argument: ./hdintegrator.py --help
(or hdintegrator.py --help if you installed it through pip).
In general the program must be run with at least two MPI processes and must include a serial program to use as an integrand as well as the number of dimensions to integrate in:
mpiexec -n 5 ./hdintegrator.py --integrand integrands/N-sphere.py --dimensions 2
The result consists of one line with the integral's value, absolute error and fraction of volume relative to total volume in which the integrand failed to return a value:
0.523598776383549 1.453150932917424e-08 0.0
Input and output formats
To define your own integral you must write a program that will be called by hdintegrator.py for evaluating that intergral within a given volume and give that program as an argument to hdintegrator.py. For an example see e.g. the integrand integrands/N-sphere.py which evaluates the integral for an N-dimensional sphere. Communication between hdintegrator.py and integrands is handled via standard input and output in ASCII format. Each line given to the integrand by hdintegrator.py consists of floating point numbers separated by spaces:
C a0 a1 b0 b1 c0 c1 ...
where C is the number of samples to use for evaluating the integral and a0, a1, b0, etc. represent the minimum and maximum extent of the integration volume respectively. Note that the number of dimensions might change from one line to another, although that is not the case currently. Each line received from the integrand by hdintegrator.py must consist of three floating point numbers separated by spaces in ASCII format:
V E S
where V is the value of the integral, E is an estimate of the absolute integration error and S is the suggested dimension starting from 0 in which to split the integration volume in order to minimize subsequent integration errors.
Support
To seek support or report an issue in HDIntegrator please create a new issue at https://github.com/iljah/hdintegrator/issues
Contributing
To contribute to HDIntegrator please create a new pull request at https://github.com/iljah/hdintegrator/pulls
Owner
- Name: Ilja
- Login: iljah
- Kind: user
- Repositories: 3
- Profile: https://github.com/iljah
JOSS Publication
High-Dimensional Integrator
Tags
numerical integration message passing interface arbitrary number of dimensionsCodeMeta (codemeta.json)
{
"@context": "https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
"@type": "Code",
"author": [
{
"@id": "http://orcid.org/0000-0002-9542-5866",
"@type": "Person",
"email": "ilja.honkonen@fmi.fi",
"name": "Ilja Honkonen",
"affiliation": "Finnish Meteorological Institute"
}
],
"identifier": "http://dx.doi.org/",
"codeRepository": "https://github.com/iljah/hdintegrator",
"datePublished": "2017-10-04",
"dateModified": "2017-10-04",
"dateCreated": "2017-10-04",
"description": "Program for numerically calculating integrals with arbitrary number of dimensions in parallel using Message Passing Interface",
"keywords": "software, numerical integration, arbitrary number of dimensions",
"license": "GPL-3.0",
"title": "hdintegrator",
"version": "1.0.1"
}
GitHub Events
Total
Last Year
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Ilja Honkonen | i****n@f****i | 96 |
| ilja | i****a@e****n | 4 |
| Ilja Honkonen | i****n@n****v | 3 |
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 14
- Total pull requests: 0
- Average time to close issues: 1 day
- Average time to close pull requests: N/A
- Total issue authors: 1
- Total pull request authors: 0
- Average comments per issue: 3.5
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- marksantcroos (14)
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 6 last-month
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 3
- Total maintainers: 1
pypi.org: hdintegrator
High-Dimensional Integrator, see github.com/iljah/hdintegrator for full version
- Homepage: https://github.com/iljah/hdintegrator
- Documentation: https://hdintegrator.readthedocs.io/
- License: GNU General Public License v3 or later (GPLv3+)
-
Latest release: 1.0.1
published about 8 years ago
Rankings
Maintainers (1)
Dependencies
- mpi4py *
- networkx *
- scipy *
