hibridon
Hibridon is a program package to solve the close-coupled equations which occur in the quantum treatment of inelastic atomic and molecular collisions. Gas-phase scattering, photodissociation, collisions of atoms and/or molecules with flat surfaces, and bound states of weakly-bound complexes can be treated
Science Score: 52.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
✓Institutional organization owner
Organization hibridon has institutional domain (www2.chem.umd.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.7%) to scientific vocabulary
Repository
Hibridon is a program package to solve the close-coupled equations which occur in the quantum treatment of inelastic atomic and molecular collisions. Gas-phase scattering, photodissociation, collisions of atoms and/or molecules with flat surfaces, and bound states of weakly-bound complexes can be treated
Basic Info
- Host: GitHub
- Owner: hibridon
- License: gpl-3.0
- Language: Fortran
- Default Branch: master
- Homepage: http://www2.chem.umd.edu/groups/alexander/hibridon/hib43/index.html
- Size: 30.3 MB
Statistics
- Stars: 6
- Watchers: 2
- Forks: 0
- Open Issues: 26
- Releases: 3
Metadata Files
README.md
code status (hibridon main branch):
Hibridon v5.2
Hibridon is a program package to solve the close-coupled equations which occur in the quantum treatment of inelastic atomic and molecular collisions. Gas-phase scattering, photodissociation, collisions of atoms and/or molecules with flat surfaces, and bound states of weakly-bound complexes can be treated
The full user documentation is available on docs/Home.md (or [https://hibridon.github.io/hibridon/Home.html] for the latest released version).
Changes: - CHANGELOG
Prerequisites
Required tools:
- CMake >= 3.3
- Fortran compiler with support for fortran 2008 and fpp preprocessing (e.g. GNU Fortran).
- Git (optional)
Required libraries:
- BLAS compatible library (e.g. Netlib BLAS)
- LAPACK compatible library (e.g. Netlib LAPACK)
Build instructions
1. Get Hibridon source code
Using GIT
bash
git clone https://github.com/hibridon/hibridon.git ~/hib_src
This will create a directory ~/hib_src/ which is a clone of https://github.com/hibridon/hibridon.git
Without GIT
Download Hibridon source code as a zip archive: hibridon-master.zip
Extract the content of the archive into the directory of your choice, e.g.:
~/hib_src/
2. Create a configuration file for your potential energy surfaces (PESs)
Create the directories that will contain Hibridon build files and store your project configuration file:
bash
mkdir -p ~/hib_build/project/
Create a CMake project configuration file:
bash
touch ~/hib_build/project/CMakeLists.txt
Copy and past the following example into your CMake project configuration file:
```cmake
this is a minimal cmake example for creating a hibridon executable with an user-supplied PES
cmakeminimumrequired (VERSION 3.3) project (mypots) enablelanguage (Fortran)
add hibridon library by specifying the directory in which the source files are
addsubdirectory("/home/myuser/hibsrc/" hibridon)
declare new executables using hibridon's add_hibexe cmake function, where:
- the 1st argument is the name of the resulting executable
- the 2nd argument is the file path of the user provided potential file
- the 3rd argument is the size of the t matrix:
- "kmax": for normal cases
- "kbig": for special cases (only arn2_big test uses it)
addhibexe(NH3-H2.exe "/home/myuser/mypots/pot_nh3h2.F90" "kmax") # NH3-H2
You can add as many executables as you want by using the add_hibexe function:
addhibexe(OH-H2.exe "/home/myuser/mypots/pot_ohh2.F90" "kmax") # OH-H2
addhibexe(He-CO.exe "/home/myuser/mypots/pot_heco.F90" "kmax") # He-CO
```
Adapt this example to suit your needs.
WARNING: The tilde ~ character is not expanded by CMake, you must replace it with the full path to your home directory, e.g. /home/myuser/
3. Configure your project's build
bash
cd ~/hib_build
cmake ./project/
This will automatically find the required libraries and compiler and create a Makefile to build Hibridon.
Useful CMake options and special cases:
- Use a specific compiler
```bash
cd ~/hib_build
cmake ./project/ -DCMAKE_Fortran_COMPILER=<compiler>
```
Where `<compiler>` is your compiler executable e.g.:
- `gfortran`
- `gfortran-8`
- `ifort`
- `ifx`
Use a specific BLAS/LAPACK library
bash cd ~/hib_build cmake ./project/ -DBLA_VENDOR=<BLAS_LIB>Where<BLAS_LIB>is your BLAS library e.g.:OpenBLASIntel10_64lpApple
see CMake BLAS/LAPACK VENDORS for a full list of supported libraries
Enable Hibridon testing
bash cd ~/hib_build cmake ./project/ -DBUILD_TESTING=ONBuild in debug mode
By default, the source files are compiled in "Release" mode.
You can build Hibridon in a "Debug" mode that will disable all compiler optimizations and produce debugging symbols table and traceback informations:
bash
cd ~/hib_build
cmake ./project/ -DCMAKE_BUILD_TYPE=Debug
- Change the default install prefix
By default, the executables will be installed in
/usr/local/bin/. You can change this by setting theCMAKE_INSTALL_PREFIXvariable:bash cd ~/hib_build cmake ./project/ -DCMAKE_INSTALL_PREFIX=<path>Where<path>is the path to the directory where you want to install the executables.
4. Make your project
- Make all executables
bash makeThe executable files will be put in the current directory (~/hib_build). Make a specific executable
bash make <executable>Where<executable>is one of the executable you defined in the CMakeLists.txt configuration file, e.g.:NH3-H2.exe.Install executables in /usr/local/bin/ (Optional)
You can install all the generatted executables in the <prefix>/bin/ directory by running:
bash
make install
By default, <prefix> is set to /usr/local/, which is the standard location for user-installed software on macOS and most Linux distributions.
Note that this will overwrite any existing executable with the same name in the destination folder.
The default /usr/local/) can be changed by setting the CMAKE_INSTALL_PREFIX (see previous section).
5. Test Hibridon (Optional)
Hibridon testing must be enabled (see Section 3: Configure your project's build). The following commands need to be executed within the Hibridon build directory (e.g. ~/hib_build/project/hibridon/).
- Run all tests
bash ctest Run a test suite (group of tests)
bash ctest -L <testsuite>Where testsuite is the name of the test suite among:coverage(covers most of the source code)quick(runs only quick tests)benchmark(runs long tests for the purpose of measuringhibridon's performance)
Run tests for only one PES
bash ctest -L <label>Where
<label>is the name of a group of tests associated to one PES.The full list of avaible labels can be printed using:
bash ctest --print-labels
6. Run your project
Once your executables are created (step 4), you can interactively run hibridon using:
```bash
./
or
./
Where
You can also run your Hibridon executable using a command file:
```bash
./
or
./
or
./
Where
7. One liner example
This one line command configures, builds and tests Hibridon from a directory ~/hib_build containing the source code.
bash
git clone https://github.com/hibridon/hibridon.git ~/hib_src && mkdir -p ~/hib_build && cmake -DCMAKE_Fortran_COMPILER=gfortran -DBUILD_TESTING=ON -S ~/hib_src/ -B ~/hib_build && cd ~/hib_build/ && make && ctest -L coverage
Please note that this only builds and tests Hibridon library; it doesn't build any user-provided PES.
For code contributors
Code coverage
Code coverage option ENABLE_CODE_COVERAGE allows the developers to identify the portions of hibridon source code that are not yet covered by the tests.
To generate the code coverage report <hibridon_build_dir>/coverage/total/index.html:
1. build hibridon with the following options:
- make sure that the option -DBUILD_TESTING=ON is added so that you will be able to run hibridon tests.
- add -DENABLE_CODE_COVERAGE=ON to the cmake command to enable compilation in code coverage mode. This option will generate code coverage metrics files when running tests.
2. run make clean_coverages to make sure that code coverage metrics of previous runs are deleted.
3. run the tests you want to measure the coverage for, typically the coverage test suite (ctest -L '^coverage$'). For each test <test_id> run, the coverage metrics file <hibridon_build_dir>/tests/<test_id>/coverage/<test_id> is generated.
4. run make html_coverages, will convert these coverage metrics files into html reports:
<!--- <hibridon_build_dir>/coverage/<test_id>/index.html: a report that shows the code covered by the test <test_id> -->
- <hibridon_build_dir>/coverage/total/index.html: a report that shows the code covered by all tests
Short example to generate <hibridon_build_dir>/coverage/total/index.html from hibridon source code:
sh
bob@workstation:~bob/hibridon/build$ cmake ../hibridon.git -DBUILD_TESTING=ON -DCMAKE_BUILD_TYPE=Debug -DENABLE_CODE_COVERAGE=ON
bob@workstation:~bob/hibridon/build$ make
bob@workstation:~bob/hibridon/build$ make clean_coverages
bob@workstation:~bob/hibridon/build$ ctest --output-on-failure -L "^coverage$"
bob@workstation:~bob/hibridon/build$ make html_coverages
Performance profiling
To activate profiling, add -DENABLE_PROFILING=ON to the cmake command. This will build and run hibridon with profiling option. When run, each test will additionnaly create a <test_id>_call_graph.pdf file which shows where time was spent during the test.
Owner
- Name: Hibridon
- Login: hibridon
- Kind: organization
- Website: http://www2.chem.umd.edu/groups/alexander/hibridon
- Repositories: 1
- Profile: https://github.com/hibridon
Computer Software for Molecular Inelastic Scattering and Photodissociation
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Alexander" given-names: "Millard Henry" orcid: "https://orcid.org/0000-0002-4348-5111" - family-names: "Dagdigian" given-names: "Paul J." orcid: "https://orcid.org/0000-0002-6378-221X" - family-names: "Werner" given-names: "Hans Joachim" orcid: "https://orcid.org/0000-0002-0435-539X" - family-names: "Klos" given-names: "Jacek" orcid: "https://orcid.org/0000-0002-7407-303X" - family-names: "Desrousseaux" given-names: "Benjamin" orcid: "https://orcid.org/0000-0001-8578-3590" - family-names: "Raffy" given-names: "Guillaume" - family-names: "Lique" given-names: "François" orcid: "https://orcid.org/0000-0002-0664-2536" title: "Hibridon" version: 5.0 doi: 10.5281/zenodo.7551616 date-released: 2022-08-24 url: "https://github.com/hibridon/hibridon"
GitHub Events
Total
- Create event: 6
- Release event: 1
- Issues event: 25
- Watch event: 4
- Delete event: 16
- Issue comment event: 18
- Push event: 188
- Gollum event: 1
- Pull request event: 15
Last Year
- Create event: 6
- Release event: 1
- Issues event: 25
- Watch event: 4
- Delete event: 16
- Issue comment event: 18
- Push event: 188
- Gollum event: 1
- Pull request event: 15
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 17
- Total pull requests: 10
- Average time to close issues: 12 months
- Average time to close pull requests: 1 day
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 0.47
- Average comments per pull request: 0.0
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 14
- Pull requests: 10
- Average time to close issues: about 23 hours
- Average time to close pull requests: 1 day
- Issue authors: 2
- Pull request authors: 1
- Average comments per issue: 0.07
- Average comments per pull request: 0.0
- Merged pull requests: 5
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- g-raffy (16)
- AmelieGodard (1)
Pull Request Authors
- g-raffy (10)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- actions/checkout v3 composite
- actions/checkout v2 composite