{"id":22668561,"url":"https://github.com/lanl/jali","last_synced_at":"2025-09-10T08:15:40.875Z","repository":{"id":20428154,"uuid":"89887611","full_name":"lanl/jali","owner":"lanl","description":"A parallel unstructured mesh framework for multiphysics application","archived":false,"fork":false,"pushed_at":"2023-05-11T02:01:37.000Z","size":1989,"stargazers_count":16,"open_issues_count":5,"forks_count":12,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-06-26T22:13:49.389Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lanl.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}},"created_at":"2017-05-01T01:06:57.000Z","updated_at":"2024-11-13T13:33:01.000Z","dependencies_parsed_at":"2022-07-26T06:47:09.006Z","dependency_job_id":null,"html_url":"https://github.com/lanl/jali","commit_stats":{"total_commits":608,"total_committers":11,"mean_commits":55.27272727272727,"dds":0.3026315789473685,"last_synced_commit":"76b67b370240bbf822456783b88a480091b4d0fd"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/lanl/jali","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2Fjali","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2Fjali/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2Fjali/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2Fjali/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lanl","download_url":"https://codeload.github.com/lanl/jali/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanl%2Fjali/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265611251,"owners_count":23797848,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2024-12-09T15:15:45.138Z","updated_at":"2025-07-17T13:33:10.552Z","avatar_url":"https://github.com/lanl.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"Copyright (c) 2019, Triad National Security, LLC\nAll rights reserved.\n\nCopyright 2019. Triad National Security, LLC. This software was\nproduced under U.S. Government contract 89233218CNA000001 for Los\nAlamos National Laboratory (LANL), which is operated by Triad\nNational Security, LLC for the U.S. Department of Energy. \nAll rights in the program are reserved by Triad National Security,\nLLC, and the U.S. Department of Energy/National Nuclear Security\nAdministration. The Government is granted for itself and others acting\non its behalf a nonexclusive, paid-up, irrevocable worldwide license\nin this material to reproduce, prepare derivative works, distribute\ncopies to the public, perform publicly and display publicly, and to\npermit others to do so\n\n\nThis is open source software distributed under the 3-clause BSD license.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright notice,\n   this list of conditions and the following disclaimer.\n2. Redistributions in binary form must reproduce the above copyright\n   notice, this list of conditions and the following disclaimer in the\n   documentation and/or other materials provided with the distribution.\n3. Neither the name of Triad National Security, LLC, Los Alamos\n   National Laboratory, LANL, the U.S. Government, nor the names of its\n   contributors may be used to endorse or promote products derived from this\n   software without specific prior written permission.\n\n\nTHIS SOFTWARE IS PROVIDED BY TRIAD NATIONAL SECURITY, LLC AND\nCONTRIBUTORS \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,\nBUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND\nFITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL\nTRIAD NATIONAL SECURITY, LLC OR CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE\nGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS\nINTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER\nIN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR\nOTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF\nADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n# Summary\n\nJali is a parallel unstructured mesh infrastructure library designed\nfor use by multi-physics simulations. It supports 2D and 3D arbitrary\npolyhedral meshes distributed over hundreds to thousands of\nnodes. Jali can read and write Exodus II meshes along with fields and\nsets on the mesh and support for other formats is partially\nimplemented or is in the plans. Jali is built upon MSTK\n(https://github.com/MeshToolkit/MSTK), an open source general purpose\nunstructured mesh infrastructure library from Los Alamos National\nLaboratory. While it has been made to work with other mesh frameworks\nsuch as MOAB and STKmesh in the past, support for maintaining the\ninterface to these frameworks has been suspended for now. Jali\nsupports distributed as well as on-node parallelism. Support of\non-node parallelism is through direct use of the mesh calls in\nmulti-threaded constructs or through use of \"tiles\" which are\nsubmeshes or sub-partitions of a partition destined for a compute\nnode.\n\nJali is derived from the mesh infrastructure of the early versions of\nthe open source software Amanzi (whose three-part BSD open source\ncopyright assertion included Los Alamos National Laboratory, Pacific\nNorthwest National Laboratory and Lawrence Berkeley\nLaboratory). Jali's copyright is being asserted solely under Los\nAlamos National Laboratory having been rewritten to include only code\nwritten by Los Alamos National Laboratory developers.\n\n# Authors\n\nJali is derived from the unstructured mesh infrastructure in Amanzi (https://github.com/amanzi/amanzi) with non-LANL contributions stripped out. While much of the unstructured mesh infrastructure in  Amanzi (and subsequently Jali) was developed by Rao Garimella, its design was influenced by the entire Amanzi team. Additionally, contributions to the Amanzi or Jali code base have been made by Markus Berndt, Konstantin Lipnikov, Ethan Coon, Daniil Svyatsky, Chris Malone, Chris Sewell, Charles Ferenbaugh and Ondrej Certik. In addition, most of the build system in Jali was taken as-is from Amanzi. This build system was largely developed by Lori Pritchett-Sheats.\n\n# Third Party Libraries\n\nJali uses a number of third party libraries (TPLs) primarily for mesh\nimport/export, mesh partitioning and MPI communication. To build Jali,\nyou must point the build system to a directory containing the TPLs or\nbuild the third party libraries as described below.\n\nJali *1.0.0*  uses version *1.1.0* or higher of the TPL set. See\n$JALI_SOURCE/config/SuperBuild/TPLVersions.cmake for details.\n\n# Installation instructions\n\nThere are a few configuration examples in\n`config/configure-examples/`. Below we list copy \u0026 paste instructions\nfor several machines. The first option is the *easy* option in which\npre-installed third-party libraries (TPLs) are used to build Jali. The\nsecond option is for cases where you want to build all the TPLs used\nby Jali and build Jali using these custom TPLs. Naturally, in the\nfollowing instructions, you may use your choice of compiler, openmpi\nlibraries and cmake version, subject to compatibility requirements of Jali\n\n\n## Darwin\n\nIf you want to build only Jali, execute the following from the Jali\nroot directory (you may have to modify the exact version number of the\nTPLs directory depending on how out-of-sync this file is with whats on\nyour system):\n\n    /bin/tcsh\n    module load openmpi/2.1.2-intel_17.0.6 cmake\n    setenv SOURCE `pwd`\n    setenv CMAKE_INSTALL_PREFIX /usr/projects/ngc/private/jali-tpl/1.1.0-intel-17.0.6-openmpi-2.1.2\n    setenv JALI_INSTALL_PREFIX $SOURCE/inst-jali\n    mkdir build-jali\n    cd build-jali\n    cmake \\\n      -C $CMAKE_INSTALL_PREFIX/share/cmake/Jali-tpl-config.cmake \\\n      -D CMAKE_BUILD_TYPE=Release \\\n      -D CMAKE_CXX_FLAGS='-std=c++11' \\\n      -D CMAKE_INSTALL_PREFIX:FILEPATH=$JALI_INSTALL_PREFIX \\\n      -D HDF5_NO_SYSTEM_PATHS:BOOL=TRUE \\\n      -D BOOST_ROOT:FILEPATH=$CMAKE_INSTALL_PREFIX \\\n      -D ENABLE_MSTK_Mesh:BOOL=TRUE \\\n      -D ENABLE_STK_Mesh:BOOL=FALSE \\\n      -D ENABLE_MOAB_Mesh:BOOL=FALSE \\\n      ${SOURCE}\n    make -j\n    make test\n    make install\n    exit\n\nIf you want to build a custom set of Jali TPLs and build Jali using\nthese TPLs, execute the following from the Jali root directory: \n\n    /bin/tcsh\n    module load openmpi/2.1.2-intel_17.0.6 cmake\n    setenv SOURCE `pwd`\n    setenv CMAKE_INSTALL_PREFIX $SOURCE/inst-tpl\n    setenv JALI_INSTALL_PREFIX $SOURCE/inst-jali\n    mkdir build-tpl\n    cd build-tpl\n    cmake \\\n        -D CMAKE_C_COMPILER=`which mpicc` \\\n        -D CMAKE_CXX_COMPILER=`which mpiCC` \\\n        -D CMAKE_Fortran_COMPILER=`which mpif90` \\\n        -D DISABLE_EXTERNAL_DOWNLOAD:BOOL=TRUE \\\n        -D TPL_DOWNLOAD_DIR:PATH=/usr/projects/ngc/private/tpl-downloads/ \\\n        -D CMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX \\\n        $SOURCE/config/SuperBuild/\n    make -j\n    make install\n    cd ..\n    mkdir build-jali\n    cd build-jali\n    cmake \\\n      -C $CMAKE_INSTALL_PREFIX/share/cmake/Jali-tpl-config.cmake \\\n      -D CMAKE_BUILD_TYPE=Release \\\n      -D CMAKE_CXX_FLAGS='-std=c++11' \\\n      -D CMAKE_INSTALL_PREFIX:FILEPATH=$JALI_INSTALL_PREFIX \\\n      -D HDF5_NO_SYSTEM_PATHS:BOOL=TRUE \\\n      -D BOOST_ROOT:FILEPATH=$CMAKE_INSTALL_PREFIX \\\n      -D ENABLE_MSTK_Mesh:BOOL=TRUE \\\n      -D ENABLE_STK_Mesh:BOOL=FALSE \\\n      -D ENABLE_MOAB_Mesh:BOOL=FALSE \\\n      ${SOURCE}\n    make -j\n    make test\n    make install\n    exit\n\n## Snow\n\nIf you want to build only Jali, execute the following from the Jali\nroot directory (you may have to modify the exact version number of the\nTPLs directory depending on how out-of-sync this file is with whats on\nyour system):\n\n    /bin/tcsh\n    module load intel/17.0.4 openmpi/2.1.2\n    setenv SOURCE `pwd`\n    setenv CMAKE_INSTALL_PREFIX /usr/projects/ngc/private/jali-tpl/1.1.0-intel-17.0.4-openmpi-2.1.2\n    setenv JALI_INSTALL_PREFIX $SOURCE/inst-jali\n    mkdir build-jali\n    cd build-jali\n    cmake \\\n      -C $CMAKE_INSTALL_PREFIX/share/cmake/Jali-tpl-config.cmake \\\n      -D CMAKE_BUILD_TYPE=Release \\\n      -D CMAKE_CXX_FLAGS='-std=c++11' \\\n      -D CMAKE_INSTALL_PREFIX:FILEPATH=$JALI_INSTALL_PREFIX \\\n      -D HDF5_NO_SYSTEM_PATHS:BOOL=TRUE \\\n      -D BOOST_ROOT:FILEPATH=$CMAKE_INSTALL_PREFIX \\\n      -D ENABLE_MSTK_Mesh:BOOL=TRUE \\\n      -D ENABLE_STK_Mesh:BOOL=FALSE \\\n      -D ENABLE_MOAB_Mesh:BOOL=FALSE \\\n      ${SOURCE}\n    make -j\n    make test\n    make install\n    exit\n\nIf you want to build a custom set of Jali TPLs and build Jali using\nthese TPLs, execute the following from the Jali root directory: \n\n    /bin/tcsh\n    module load intel/17.0.4 openmpi/2.1.2\n    setenv SOURCE `pwd`\n    setenv CMAKE_INSTALL_PREFIX $SOURCE/inst-tpl\n    setenv JALI_INSTALL_PREFIX $SOURCE/inst-jali\n    mkdir build-tpl\n    cd build-tpl\n    cmake \\\n        -D CMAKE_C_COMPILER=`which mpicc` \\\n        -D CMAKE_CXX_COMPILER=`which mpiCC` \\\n        -D CMAKE_Fortran_COMPILER=`which mpif90` \\\n        -D DISABLE_EXTERNAL_DOWNLOAD:BOOL=TRUE \\\n        -D TPL_DOWNLOAD_DIR:PATH=/usr/projects/ngc/private/tpl-downloads/ \\\n        -D CMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX \\\n        $SOURCE/config/SuperBuild/\n    make -j\n    make install\n    cd ..\n    mkdir build-jali\n    cd build-jali\n    cmake \\\n      -C $CMAKE_INSTALL_PREFIX/share/cmake/Jali-tpl-config.cmake \\\n      -D CMAKE_BUILD_TYPE=Release \\\n      -D CMAKE_CXX_FLAGS='-std=c++11' \\\n      -D CMAKE_INSTALL_PREFIX:FILEPATH=$JALI_INSTALL_PREFIX \\\n      -D HDF5_NO_SYSTEM_PATHS:BOOL=TRUE \\\n      -D BOOST_ROOT:FILEPATH=$CMAKE_INSTALL_PREFIX \\\n      -D ENABLE_MSTK_Mesh:BOOL=TRUE \\\n      -D ENABLE_STK_Mesh:BOOL=FALSE \\\n      -D ENABLE_MOAB_Mesh:BOOL=FALSE \\\n      ${SOURCE}\n    make -j\n    make test\n    make install\n    exit\n\n## XLAN (Varan or Barugon)\n\nIf you want to build only Jali, execute the following from the Jali\nroot directory (you may have to modify the exact version number of the\nTPLs directory depending on how out-of-sync this file is with whats on\nyour system):\n\n    /bin/tcsh\n    /opt/local/packages/Modules/default/init/sh\n    module load intel/17.0.1 openmpi/1.10.5\n    setenv SOURCE `pwd`\n    setenv CMAKE_INSTALL_PREFIX /usr/local/codes/ngc/private/jali-tpl/1.1.0-intel-17.0.1-openmpi-1.10.5\n    setenv JALI_INSTALL_PREFIX $SOURCE/inst-jali\n    mkdir build-jali\n    cd build-jali\n    cmake \\\n      -C $CMAKE_INSTALL_PREFIX/share/cmake/Jali-tpl-config.cmake \\\n      -D CMAKE_BUILD_TYPE=Release \\\n      -D CMAKE_CXX_FLAGS='-std=c++11' \\\n      -D CMAKE_INSTALL_PREFIX:FILEPATH=$JALI_INSTALL_PREFIX \\\n      -D HDF5_NO_SYSTEM_PATHS:BOOL=TRUE \\\n      -D BOOST_ROOT:FILEPATH=$CMAKE_INSTALL_PREFIX \\\n      -D ENABLE_MSTK_Mesh:BOOL=TRUE \\\n      -D ENABLE_STK_Mesh:BOOL=FALSE \\\n      -D ENABLE_MOAB_Mesh:BOOL=FALSE \\\n      ${SOURCE}\n    make -j\n    make test\n    make install\n    exit\n\nIf you want to build a custom set of Jali TPLs and build Jali using\nthese TPLs, execute the following from the Jali root directory: \n\n    /bin/tcsh\n    /opt/local/packages/Modules/default/init/sh\n    module load intel/17.0.1 openmpi/1.10.5\n    setenv SOURCE `pwd`\n    setenv CMAKE_INSTALL_PREFIX $SOURCE/inst-tpl\n    setenv JALI_INSTALL_PREFIX $SOURCE/inst-jali\n    mkdir build-tpl\n    cd build-tpl\n    cmake \\\n        -D CMAKE_C_COMPILER=`which mpicc` \\\n        -D CMAKE_CXX_COMPILER=`which mpiCC` \\\n        -D CMAKE_Fortran_COMPILER=`which mpif90` \\\n        -D DISABLE_EXTERNAL_DOWNLOAD:BOOL=TRUE \\\n        -D TPL_DOWNLOAD_DIR:PATH=/usr/local/codes/ngc/private/tpl-downloads/ \\\n        -D CMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX \\\n        $SOURCE/config/SuperBuild/\n    make -j\n    make install\n    cd ..\n    mkdir build-jali\n    cd build-jali\n    cmake \\\n      -C $CMAKE_INSTALL_PREFIX/share/cmake/Jali-tpl-config.cmake \\\n      -D CMAKE_BUILD_TYPE=Release \\\n      -D CMAKE_CXX_FLAGS='-std=c++11' \\\n      -D CMAKE_INSTALL_PREFIX:FILEPATH=$JALI_INSTALL_PREFIX \\\n      -D HDF5_NO_SYSTEM_PATHS:BOOL=TRUE \\\n      -D BOOST_ROOT:FILEPATH=$CMAKE_INSTALL_PREFIX \\\n      -D ENABLE_MSTK_Mesh:BOOL=TRUE \\\n      -D ENABLE_STK_Mesh:BOOL=FALSE \\\n      -D ENABLE_MOAB_Mesh:BOOL=FALSE \\\n      ${SOURCE}\n    make -j\n    make test\n    make install\n    exit\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanl%2Fjali","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanl%2Fjali","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanl%2Fjali/lists"}