{"id":40394307,"url":"https://github.com/voduchuy/pacmensl","last_synced_at":"2026-01-20T13:01:15.779Z","repository":{"id":43874390,"uuid":"121646870","full_name":"voduchuy/pacmensl","owner":"voduchuy","description":"Library for parallel direct solution of the Chemical Master Equation (CME).","archived":false,"fork":false,"pushed_at":"2023-12-25T21:15:31.000Z","size":947,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-01-28T04:04:48.145Z","etag":null,"topics":["chemical-master-equation","mpi","numerical-analysis","parallel","parallel-computing","petsc","stochastic-reaction-networks","sundials"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/voduchuy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2018-02-15T15:39:09.000Z","updated_at":"2023-01-17T15:58:03.000Z","dependencies_parsed_at":"2023-12-15T20:10:46.064Z","dependency_job_id":"d86725d8-3c22-49c8-b6b8-788b5e3d487f","html_url":"https://github.com/voduchuy/pacmensl","commit_stats":{"total_commits":220,"total_committers":4,"mean_commits":55.0,"dds":"0.15454545454545454","last_synced_commit":"673bf4b1f17259872c166d8cd4bda2d418607ee5"},"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/voduchuy/pacmensl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voduchuy%2Fpacmensl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voduchuy%2Fpacmensl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voduchuy%2Fpacmensl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voduchuy%2Fpacmensl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/voduchuy","download_url":"https://codeload.github.com/voduchuy/pacmensl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/voduchuy%2Fpacmensl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28603402,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chemical-master-equation","mpi","numerical-analysis","parallel","parallel-computing","petsc","stochastic-reaction-networks","sundials"],"created_at":"2026-01-20T13:01:14.948Z","updated_at":"2026-01-20T13:01:15.773Z","avatar_url":"https://github.com/voduchuy.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# PACMENSL\n\nPACMENSL: PArallel Chemical Master EquatioN Solver Library. The library implements the Finite State Projection algorithm to numerically solve the CME on high performance computing nodes using MPI. There are also objects that might be useful for developing parallel implementations for other flavors of the FSP for sensitivity analysis and computing the stationary distribution.\n\n## Reference\n\nVo, H. D. and Munsky, B. E. \"A Parallel Implementation of the Finite State Projection Algorithm for the Solution of the Chemical Master Equation\". https://www.biorxiv.org/content/10.1101/2020.06.30.180273v2\n\n## Contact\n\nHuy Vo: huydvo@colostate.edu.\n\n## Dependencies\n\nRequired:\n* [CMake](https://cmake.org/download/) (3.10 or higher) \n* C, C++ compilers.\n* An MPI implementation (OpenMPI, MPICH).\n* [Armadillo 9X](http://arma.sourceforge.net/download.html)\n* [Zoltan](https://github.com/trilinos/Trilinos/tree/master/packages/zoltan)\n* [PETSc 3X](https://www.mcs.anl.gov/petsc/download/)\n* [SUNDIALS 5X](https://computation.llnl.gov/projects/sundials/sundials-software)\n\nOptionally, if you want to use graph-partitioning methods for load-balancing:\n* [Metis](http://glaros.dtc.umn.edu/gkhome/metis/metis/download)\n* [Parmetis](http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download)\n\nIf you want to build the unit tests:\n* [GoogleTest](https://github.com/google/googletest).\n\nTo generate documentation:\n* [Doxygen](https://www.doxygen.nl/index.html).\n\nIn addition, PETSc and Sundials must be built with double-precision scalar types.\n\n## Installation\n\nPACMENSL can be installed using CMake. You can add the following options to the ```cmake``` command to customize the\n build:\n \n * ```-DBUILD_EXAMPLES```\n    * Whether to build example programs (```ON``) or not (```OFF```).\n * ```-DBUILD_TESTS```\n    * Whether to build unit tests (```ON``) or not (```OFF```). You must have GoogleTest framework installed on your\n     system. Otherwise, this option will be turned off.\n * ```-DBUILD_SHARED_LIBS```\n    * Build shared library (```ON```) or static library (```OFF```).\n * ```-DENABLE_PARMETIS```\n    * To enable interface to ParMetis (```ON``) or not (```OFF```).\n * ```-DEXAMPLES_INSTALL_DIR```\n    * Where to install the compiled examples.\n * ```-DTESTS_INSTALL_DIR```\n    * Where to install the compiled tests.\n * ```-DCMAKE_INSTALL_PREFIX```\n    * Path to installing the compiled library.\n\nFor a minimal build:\n* Create a folder, say ```build```. Make that the current working directory.\n* Run the command \n    ``` \n   cmake -DBUILD_EXAMPLES=ON -DBUILD_TESTS=OFF -DBUILD_SHARED_LIBS=ON -DENABLE_PARMETIS=OFF $(path_to_PACMENSL\n   root_folder)\n    ```        \n  Here, ```$(path_to_PACMENSL_root_folder)``` is the path to PACMENSL source directory.\n* To build the library and examples:\n    ```make -j4```\n* Install the library ```make install```. On a Linux or MacOS system, this will install the compiled library to the\n default folder ```/usr/local/lib```.\n\n## Documentation\nDocumentation is provided as comments in the source code. It is also possible to generate seperate documentations using Doxygen. The subfolder 'docs' contains the configuration for Doxygen to generate documentations in HTML and LaTex formats. To generate the documentation, follow these steps:\n1. Change working directory to `docs`.\n2. Run Doxygen with the configuration file provided: \n```\ndoxygen doc_config\n```\n3. Doxygen will output documentations in HTML and LaTex formats. \n\n## Usage \nTo use the library, simply add the link flag ```-lpacmensl``` when compiling your program. See the \n documentation and the examples in the folder ```examples``` for the syntax.\n\n## Python wrapper\nPython wrapper is available at https://github.com/voduchuy/pypacmensl. \n \n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoduchuy%2Fpacmensl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fvoduchuy%2Fpacmensl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fvoduchuy%2Fpacmensl/lists"}