{"id":19706217,"url":"https://github.com/llnl/tribol","last_synced_at":"2025-04-29T16:33:09.720Z","repository":{"id":156558464,"uuid":"633049442","full_name":"LLNL/Tribol","owner":"LLNL","description":"Modular interface physics library featuring state-of-the-art contact physics methods.","archived":false,"fork":false,"pushed_at":"2025-04-25T16:31:06.000Z","size":3119,"stargazers_count":28,"open_issues_count":28,"forks_count":7,"subscribers_count":8,"default_branch":"develop","last_synced_at":"2025-04-25T17:45:15.101Z","etag":null,"topics":["math-physics"],"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/LLNL.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE-OF-CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2023-04-26T17:10:21.000Z","updated_at":"2025-04-17T18:43:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"c23e95fc-e151-4b59-9456-5906fbd01051","html_url":"https://github.com/LLNL/Tribol","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FTribol","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FTribol/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FTribol/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FTribol/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/Tribol/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251540485,"owners_count":21605910,"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":["math-physics"],"created_at":"2024-11-11T21:34:40.369Z","updated_at":"2025-04-29T16:33:04.705Z","avatar_url":"https://github.com/LLNL.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Tribol: Contact Interface Physics Library\n\nHigh fidelity simulations modeling complex interactions of moving bodies require specialized contact algorithms to\nenforce zero-interpenetration constraints between surfaces. Tribol provides a unified interface for various \ncontact algorithms, including contact search, detection and enforcement, thereby enabling the research and development \nof advanced contact algorithms.\n\n## Quick Start Guide\n\n### Clone the repository\n\n```\ngit clone --recursive git@github.com:LLNL/Tribol.git\n```\n\n### Setup for development\n\nDevelopment tools can optionally be installed through the Spack package manager. Development tools are typically not\nneeded when using Tribol. The command to install development tools is\n```\npython3 scripts/uberenv/uberenv.py --project-json=scripts/spack/devtools.json --spack-env-file=scripts/spack/configs/\u003cplatform\u003e/spack.yaml --prefix=../tribol_devtools\n```\nwhere `\u003cplatform\u003e` is one of `blueos_3_ppc64le_ib_p9`, `linux_ubuntu_20`, `linux_ubuntu_22`, `toss_4_x86_64_ib`, or\n`toss_4_x86_64_ib_cray`. Please verify `scripts/spack/configs/\u003cplatform\u003e/spack.yaml` matches your system configuration.\n\n### Installing dependencies\n\nTribol dependency installation is managed through uberenv, which invokes a local instance of the spack package manager\nto install and manage dependencies. To install dependencies, run\n\n```\npython3 scripts/uberenv/uberenv.py --spack-env-file=scripts/spack/configs/\u003cplatform\u003e/spack.yaml --prefix=../tribol_libs\n```\n\nSee additional options by running\n\n```\npython3 scripts/uberenv/uberenv.py --help\n```\n\nTribol is tested on three platforms: \n- Ubuntu 22.04 LTS (via Windows WSL 2)\n- TOSS 4\n- BlueOS\n\nSee `scripts/spack/packages/tribol/package.py` for possible variants in the spack spec. The file\n`scripts/spack/specs.json` lists spack specs which are known to build successfully on different platforms.  Note the\ndevelopment tools can be built with dependencies using the `+devtools` variant.\n\n### Build the code\n\nAfter running uberenv, a host config file is created in the tribol repo root directory.  Use the `config-build.py`\nscript to create build and install directories and invoke CMake.\n\n```\npython3 ./config-build.py -hc \u003chost-config\u003e\n```\n\nEnter the build directory and run\n\n```\nmake -j\n```\n\nto build Tribol.\n\n\n## Dependencies\n\nThe Tribol contact physics library requires:\n- CMake 3.14 or higher\n- C++14 compiler\n- MPI\n- mfem\n- axom\n\nTribol has optional dependencies on:\n- CUDA\n- HIP\n- RAJA\n- Umpire\n\n## License\n\nTribol is distributed under the terms of the MIT license. All new contributions must be \nmade under this license.\n\nSee [LICENSE](LICENSE) and [NOTICE](NOTICE) for details.\n\nSPDX-License-Identifier: MIT\n\nLLNL-CODE-846697\n\n## SPDX usage\n\nIndividual files contain SPDX tags instead of the full license text.\nThis enables machine processing of license information based on the SPDX\nLicense Identifiers that are available here: https://spdx.org/licenses/\n\nFiles that are licensed as MIT contain the following\ntext in the license header:\n\n    SPDX-License-Identifier: (MIT)\n\n## External Packages\n\nTribol bundles some of its external dependencies in its repository.  These\npackages are covered by various permissive licenses.  A summary listing\nfollows.  See the license included with each package for full details.\n\n\n[//]: # (Note: The spaces at the end of each line below add line breaks)\n\nPackageName: BLT  \nPackageHomePage: https://github.com/LLNL/blt  \nPackageLicenseDeclared: BSD-3-Clause  \n\nPackageName: uberenv  \nPackageHomePage: https://github.com/LLNL/uberenv  \nPackageLicenseDeclared: BSD-3-Clause  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Ftribol","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Ftribol","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Ftribol/lists"}