{"id":19705900,"url":"https://github.com/llnl/umt","last_synced_at":"2026-01-31T14:31:36.606Z","repository":{"id":29207377,"uuid":"120546793","full_name":"LLNL/UMT","owner":"LLNL","description":"UMT (Unstructured Mesh Transport) is an LLNL ASC proxy application (mini-app) that solves a thermal radiative transport equation using discrete ordinates (Sn). It utilizes an upstream corner balance method to compute the solution to the Boltzmann transport equation on unstructured spatial grids.","archived":false,"fork":false,"pushed_at":"2025-03-03T21:38:14.000Z","size":2975,"stargazers_count":8,"open_issues_count":6,"forks_count":10,"subscribers_count":58,"default_branch":"develop","last_synced_at":"2025-06-10T14:49:49.496Z","etag":null,"topics":["hpc","proxy-application","radiation-transport","scientific-computing","unstructured-meshes"],"latest_commit_sha":null,"homepage":"","language":"Fortran","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","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-MIT.md","code_of_conduct":null,"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":"2018-02-07T01:35:19.000Z","updated_at":"2025-03-03T21:38:17.000Z","dependencies_parsed_at":"2025-02-27T14:44:58.102Z","dependency_job_id":"5d994562-6448-402f-9bb8-374f41acc8bb","html_url":"https://github.com/LLNL/UMT","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/LLNL/UMT","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FUMT","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FUMT/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FUMT/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FUMT/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/UMT/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FUMT/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28945602,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-31T14:26:55.697Z","status":"ssl_error","status_checked_at":"2026-01-31T14:26:52.545Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: 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":["hpc","proxy-application","radiation-transport","scientific-computing","unstructured-meshes"],"created_at":"2024-11-11T21:31:37.668Z","updated_at":"2026-01-31T14:31:36.588Z","avatar_url":"https://github.com/LLNL.png","language":"Fortran","funding_links":[],"categories":[],"sub_categories":[],"readme":"UMT Introduction\n==================\n\n![Teton obscured by clouds](img/TetonAboveCloudsCropped.jpg \"Teton obscured by clouds\")\n\nUMT (Unstructured Mesh Transport) is an LLNL ASC proxy application (mini-app)\nthat solves a thermal radiative transport equation using discrete ordinates\n(Sn).  It utilizes an upstream corner balance method to compute the solution to\nthe Boltzmann transport equation on unstructured spatial grids.\n\nThis class of problems is characterized by tens of thousands of unknowns\nper zone and upwards of millions of zones, thus requiring large, scalable,\nparallel computing platforms with tens of processors per node.\n\nTo achieve scalability, the application exploits both spatial decomposition\nusing message passing between nodes and a threading algorithm across angles\nand energy groups across processors within the node.  More recent versions of\nUMT are also capable of utilizing both CPUs and GPUs on heterogeneous platforms.\n\nThe code is primarily written in Fortran 2003 with some C++ and Cuda.\n\nBuilding\n===============\n\nUMT uses the [CMake](https://cmake.org/) build system.  A MPI compiler is\nrequired.\n\nMore information on building UMT can be found in BUILDING.md\n\nThird party libraries\n-----------------------\nUMT depends on several libraries, some of them optionally. See the DEPENDENCIES.md file for more information.\n\nTest problems\n===============\n\nUMT can run different test problems, depending on how it was configured and built.\n\nBlueprint test problem\n------------------------\nUMT can dynamically generate an unstructured 2D or 3D mesh when built against Conduit\nversion 0.8.9 or later. This mode is selected using the -B command line argument.\nEach MPI rank in UMT will construct a mesh domain by repeating a Blueprint tile topology\ninto a larger, repeated pattern arranged as a square tiling of the tile topology.\nBy default, UMT will use the tile pattern that is built into Conduit, although other\ntile patterns can be supplied.\n\n![Default tile](img/tile.jpg \"Default tile\")\n\nUseful command line arguments for this problem:\n\n| Argument       | Description                                                                  |\n|----------------|------------------------------------------------------------------------------|\n| -B             | Selects Blueprint tiled mode. This argument is required to run this problem. |\n| -d x,y,z       | Determines the number of tiles generated in X,Y,Z dimensions in each domain. The default is 10,10,10. In 2D, supply 0 for the z value. For 3D, supply a z value greater than 0. Generally, the number of zones in a domain will be equal to the product of these numbers (excluding 0's). Naturally, larger x,y,z values will result in more zones.|\n| -M kdtree,none | The tiled mesh will apply some mesh zone re-ordering rules by default to try and improve memory locality. Pass a value of `none` to disable this behavior. |\n| -i filename    | This option can be used to supply a Conduit .yaml or .json file containing an alternate tile definition, represented as a Blueprint topology. See Conduit/Blueprint documentation for more information on creating a new tile definition. |\n| -P number      | Set a new number of polar angles. The default is 2. |\n| -A number      | Set a new number of azimuthal angles. The default is 2. |\n| -G number      | Set a new number of groups. The default is 2. |\n\nEach MPI rank creates an identical mesh domain that makes up part of the whole problem. The\noverall problem domain is a unit cube that is divided spatially into nx,ny,nz bricks. The\nnx,ny,nz values are determined by an heuristic in UMT. Essentially, the number of MPI ranks\nis factored into prime factors and these factors are multiplied round-robin in reverse\norder by [nz,]ny,nz until all factors have been assigned to a dimension. The product of the\nnumbers is the MPI size. For MPI ranks that are prime numbers, this results in strips of\ndomains in Y for 2D and slabs of domains in Z for 3D. If the decomposition results in\nhigh aspect ratio domains, then adjust the number of tiles in x,y,z using the `-d`\ncommand line argument.\n\nTo run this problem:\n1. Build UMT \n2. Run the test driver in 3D. In the below example, the problem will run for 10 cycles. The `-d 10,10,10` argument will create a mesh domain with 10x10x10 = 1000 tiles, resulting in ~24000 zones/domain. Overall, there would be 8 times that number of zones due to running on 8 MPI ranks. The domains will be arranged in 2x2x2 layout. Run 'test_driver -h' for more info on the arguments.\n```\nsrun -n 8 /path/to/install/bin/test_driver -c 10 -B -d 10,10,10\n```\n3. Run the test driver in 2D. In the below example, the problem will run for 10 cycles. The `-d 10,10,0` argument will create a 2D mesh domain with 10x10 = 100 tiles, resulting in ~2400 zones/domain. The domains will be arranged in a 2x2 layout.\n```\nsrun -n 4 /path/to/install/bin/test_driver -c 10 -B -d 10,10,0\n```\n\nReferences\n==============\n* Nemanic, M K, and Nowak, P. \"Radiation transport calculations on unstructured\n  grids using a spatially decomposed and threaded algorithm\". United States: N.\n  p., 1999. https://www.osti.gov/servlets/purl/14136\n\n* Nowak, P. \"Deterministic Methods for Radiation Transport: Lessons Learned and\n  Future Directions.\" United States: N. p., 2004.\n  https://www.osti.gov/servlets/purl/15014024\n\n* Howell, Louis H., Gunney, Brian T., and Bhatele, Abhinav. \"Characterization of\n  Proxy Application Performance on Advanced Architectures. UMT2013, MCB,\n  AMG2013.\" United States: N. p., 2015. Web. doi:10.2172/1224409.\n\n* Maginot, P G, Nowak, P F, and Adams, M L. \"A Review of the Upstream Corner\n  Balance Spatial Discretization\". United States: N. p., 2017,\n  https://www.osti.gov/servlets/purl/1357379\n\n* Thomas A. Brunner, Terry S. Haut \u0026 Paul F. Nowak \"Nonlinear Elimination\n  Applied to Radiation Diffusion\", Nuclear Science and Engineering, 2020,\n  194:11, 939-951, DOI: 10.1080/00295639.2020.1747262\n\n* P. Nowak, A. Black, S. Rennich, D. Appelhans, R. Chen, T.  Haut, P. Maginot,\n  T. Bailey, P. Brown, A. Kunen, J. Loffeld, B. Tagani, \"Porting Teton, a\n  Discrete-Ordinates Thermal Radiative Transfer Code, to Sierra\",\n  Proceedings, M\u0026C 2019, Portland, OR, August 25-29, 2019, Pages 2128-2137\n\n* Steven J. Plimpton, Bruce Hendrickson, Shawn P. Burns, William McLendon III \u0026\n  Lawrence Rauchwerger (2005) \"Parallel Sn Sweeps on Unstructured Grids:\n  Algorithms for Prioritization, Grid Partitioning, and Cycle Detection\", Nuclear\n  Science and Engineering, 150:3, 267-283, DOI: 10.13182/NSE150-267\n\n* Nowak, P. \"Unstructured-Mesh Deterministic Radiation Transport. Single Physics\n  Package Code\". Computer software. Vers. 01. USDOE. 1 May. 2013.\n  LLNL-CODE-638452, https://github.com/LLNL/UMT\n\nRelease\n==============\nLLNL-CODE-829542\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fumt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Fumt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Fumt/lists"}