{"id":19706086,"url":"https://github.com/llnl/rescal-snow","last_synced_at":"2026-03-04T12:02:22.226Z","repository":{"id":66083009,"uuid":"201509634","full_name":"LLNL/Rescal-snow","owner":"LLNL","description":"A model for dunes and snow waves","archived":false,"fork":false,"pushed_at":"2019-10-24T19:09:29.000Z","size":104191,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-12T05:03:39.743Z","etag":null,"topics":["application","simulation"],"latest_commit_sha":null,"homepage":"","language":"Roff","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LLNL.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","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":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-09T17:03:45.000Z","updated_at":"2021-04-24T12:48:46.000Z","dependencies_parsed_at":"2023-06-26T10:15:32.257Z","dependency_job_id":null,"html_url":"https://github.com/LLNL/Rescal-snow","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/LLNL/Rescal-snow","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FRescal-snow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FRescal-snow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FRescal-snow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FRescal-snow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LLNL","download_url":"https://codeload.github.com/LLNL/Rescal-snow/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LLNL%2FRescal-snow/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30079565,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-04T11:57:42.557Z","status":"ssl_error","status_checked_at":"2026-03-04T11:56:10.793Z","response_time":59,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["application","simulation"],"created_at":"2024-11-11T21:33:48.358Z","updated_at":"2026-03-04T12:02:22.176Z","avatar_url":"https://github.com/LLNL.png","language":"Roff","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Rescal-snow\nA model of dunes and snow waves\n\n[![status](https://joss.theoj.org/papers/822d9380fa5ce6f89cbbdebf1605df14/status.svg)](https://joss.theoj.org/papers/822d9380fa5ce6f89cbbdebf1605df14)\n\n![](docs/example_images/snowfall_example.gif)\n\n1. [Motivation](#1-motivation)\n2. [Getting started](#2-getting-started)\n    1. [Prerequisites](#21-prerequisites)\n    2. [Dependencies](#22-dependencies)\n    3. [Download](#23-download)\n    4. [Installation](#24-installation)\n3. [Features](#3-features)\n    1. [Example 1: a snow cone](#31-sand-and-snow-dunes)\n    2. [Example 2: sintering snow](#32-sintering-snow)\n    3. [Example 3: dune growth by snowfall](#33-dune-growth-by-snowfall)\n    4. [Example 4: parameter space exploration](#34-parallel-instances-and-parameter-space-exploration)\n4. [References and further reading](#4-references-and-further-reading)\n5. [Community guidelines](#5-community-guidelines)\n    1. [Citation](#51-citation)\n    2. [Support](#52-support)\n    3. [Contributing](#53-contributing)\n6. [Contributors](#6-contributors)\n7. [License](#7-license)\n\n### 1. Motivation\n\nWhen wind blows over snow, it self-organizes. This forms surface features, such as ripples and dunes, that alter the reflectivity and thermal conductivity of the snow.\n\n![](docs/example_images/field_examples.png)\n\nStudying these features in the field is cold and challenging ([we've tried](https://doi.org/10.5194/tc-2019-45)), so\nwe created rescal-snow to enable snow scientists to study snow features in controlled numerical experiments.\nWe hope that this model will be useful to researchers in snow science, geomorphology, and polar climate.\n\nRescal-snow is able to simulate:\n\n - Snow/sand grain erosion and deposition by wind\n - Snowfall\n - Time-dependent cohesion (snow sintering)\n - Avalanches of loose grains\n\nRescal-snow is also designed for robust, reproducible science, and contains tools for high-performance computing, data management, and data analysis, including:\n\n - Workflow tools for generating and running many simulations in parallel\n - A python-based workflow that manages data and analysis at runtime\n\n\n## 2. Getting started\n\n### 2.1 Prerequisites\n\nWe assume you have reasonable familiarity with bash and terminal commands.\nIf you have never used bash, we recommend you stop and work through a short tutorial.\n(Our favorite is ['The Unix Shell' from Software Carpentry](http://swcarpentry.github.io/shell-novice/).)\nIf you modify rescal-snow, you will need to modify and compile C code. We have also included some setup and analysis tools (used in Example 5) written in Python.\n\n### 2.2 Dependencies\n\n * C compiler (GCC and CLANG are known to work)\n * [CMake] \u003e= 3.9 (used for compiling)\n * make (used for compiling)\n * [libpng](http://www.libpng.org/pub/png/libpng.html) (known to work with v1.6.37)\n * Optional packages used for analysis (see the [analysis](analysis) and [scripts/utilities](scripts/utilities) directories):\n   * Python3 (used for analysis)\n   * numpy (used by Python3 for analysis)\n   * pandas (used by Python3 for analysis)\n   * scipy (used by Python3 for analysis)\n\n\nOn a Debian-based/Ubuntu Linux machine, the dependencies can be acquired using: \n\n```bash\nsudo apt install gcc cmake make libpng-dev zlib1g-dev python3 python3-numpy python3-pandas python3-scipy\n```\n\nOn most machines, the Python packages can also be acquired using:\n\n```bash\npip3 install numpy pandas scipy\n```\n\n### 2.3 Download\nDownload rescal-snow by cloning this repository with git:\n\n```bash\ngit clone https://github.com/kellykochanski/rescal-snow.git\ncd rescal-snow\n```\n\nYou may also download the repository manually from [Github](https://github.com/kellykochanski/rescal-snow).\n\n### 2.4 Installation\n\nIn a terminal, navigate into the main rescal-snow directory (shown above). Run:\n```bash\nmkdir build\ncd build\ncmake -Wno-dev -DCMAKE_BUILD_TYPE=Release .. #Debug can be used instead of Release\nmake -j 4                                    #Adjust to the number of cores you have for a speedy build\n```\n\n## 3. Features\n\nThe examples below are fully described in the tutorial: [docs/rescal-snow-tutorial.md](docs/rescal-snow-tutorial.md).\nThe [docs](docs) folder also contains descriptions of additional configuration and analysis options; check these if you're looking for functionality not found in the tutorial.\n\n### 3.1 Sand and snow dunes\n\nThe default configuration for Rescal-snow simulates snow (or sand) dune formation. This simulates processes including air flow; grain entrainment, saltation, suspension and deposition; and granular avalanches.\n\nIn these conditions, a pile of sand/snow (left) evolves into a dart-shaped barchan dune (middle), then dwindles as grains blow away without being resupplied (right).\n\n|Initial condition, t = 0t0 \t|  t = 30t0   | t = 90t0  |\n|------------------------|--------------------|------------------|\n| ![](docs/example_images/snow_cone/00.png) | ![](docs/example_images/snow_cone/03.png) | ![](docs/example_images/snow_cone/09.png) |\n\nEach of the three images above shows a shaded top-down view of a dune (top left), cross-sections through the dune, along the dashed lines (middle left, top right), and a cross-section showing the pressure intensity in the fluid (bottom left).\n\n### 3.2 Sintering snow\n\nSnow cohesion increases over time: this is called sintering.\nRescal-snow is able to simulate the transition of loose (beige) grains into sintered (light purple) grains within waves and dunes.\n\n![](docs/example_images/sintering/sintering.gif)\n\n### 3.3 Dune growth by snowfall\n\nRescal-snow simulates snow by adding loose grains to the top of the simulation. The gif at the top of this page shows a height-map of a field of dunes and waves growing during snowfall.\n\n### 3.4 Parallel instances and parameter space exploration\nWe believe that building robust, trustworthy models is much simpler when it's easy to make many model runs.\n\nRescal-snow contains a series of tools for running many simulation instances in parallel, and managing the associated flows of input and output data.\n\nThe following phase diagram shows images produced by ten parallel runs simulating different rates of snowfall (lambda\\_I) and wind speed (Tau\\_min). \n\n![snowfall-wind phase diagram](docs/example_images/phase_space_exploration/phase_diagram1.png)\n\n\n\n## 4. References and further reading\n\nThe [docs](docs) folder contains additional information on \n[performance and parallelization issues](docs/performance_and_parallelization.md), \n[model inputs and configuration](docs/rescal-snow-inputs.md),\n[model calibration and validation](docs/calibration_and_validation.md),\nand [development history](docs/NEWS.md)\n\nFor more background on snow dunes, sintering, and self-organization, see:\n - ['Snow bedforms: A review, new data, and a formation model', Filhol and Sturm, 2015](https://doi.org/10.1002/2015JF003529)\n - ['The evolution of snow bedforms in the Colorado Front Range', Kochanski, Anderson and Tucker, 2019](https://doi.org/10.5194/tc-13-1267-2019)\n - ['Statistical classification of self-organized snow surfaces', Kochanski, Anderson and Tucker, 2018](https://doi.org/10.1029/2018GL077616)\n - ['Studies on interaction between wind and dry snow surface', Kobayashi, 1980](https://eprints.lib.hokudai.ac.jp/dspace/bitstream/2115/20242/1/A29_p1-64.pdf)\n\nFor more information about the backend function of the cellular automaton and lattice gas model, see:\n - ['Setting the length and timescales of a cellular automaton dune model', Narteau et al., 2009](https://doi.org/10.1029/2008JF001127)\n - ['A real-space cellular automaton laboratory', Rozier and Narteau, 2014](dx.doi.org/10.1002/esp.3479)\n - ['Transport capacity and saturation mechanism in a real-space cellular automaton dune model', Gao et al., 2014](dx.doi.org/10.5194/adgeo-37-47-2014)\nTo learn the underlying principles of the lattice gas cellular automaton (LGCA)  model (recommended before modifying the LGCA, the boundary conditions, or the aspect ratio of the simulation) see:\n - ['Lattice-gas automata for the Navier-Stokes equation', Frisch, Hasslacher and Pomeau, 1986'](https://doi.org/10.1103/PhysRevLett.56.1505)\n\n## 5. Community guidelines\n\nWe encourage you to interact with the project through Github (see below). This will allow easy integration of your changes and prevent rescal-snow from fragmenting excessively.\nWe use [this](https://nvie.com/posts/a-successful-git-branching-model/) git workflow,\nwith the expectation that new changes will be tested on the examples in the README, docs, or tutorials.\nIf you're not familiar with git, see [the software carpentry git tutorial](https://swcarpentry.github.io/git-novice/).\n\n### 5.1 Citation\n\nDo you want to incentivize developers to build and maintain the software you need? Cite us!\n - ['Rescal-snow: Simulating snow dunes with cellular automata', K Kochanski et al. (2019) Journal of Open Source Software, 4(42), 1699, https://doi.org/10.21105/joss.01699](https://joss.theoj.org/papers/10.21105/joss.01699#)\n\nThis software inherits many features from the Real-Space Cellular Automaton Laboratory, ReSCAL. Credit them by citing:\n - ['A real-space cellular automaton laboratory', O Rozier and C Narteau (2013), Earth Surface Processes and Landforms 39(1) 98-109, doi=10.1002/esp.3479](https://onlinelibrary.wiley.com/doi/abs/10.1002/esp.3479)\n\n\n### 5.2 Support\n\nIf you have challenges or questions, look at the material under 'further information' or reach out to us.\n\nIssues should be reported using Github's issue tracking function on this repository, [here](https://github.com/kellykochanski/rescal-snow/issues).\n\nIssues which cannot be handled via Github can be addressed to\n\n    Kelly Kochanski\n    kelly.kochanski@gmail.com\n    www.github.com/kellykochanski\n\n\n### 5.3 Contributing\n\nIf you wish to contribute a new feature or report a bug, welcome!\nSee how to do this in [CONTRIBUTING.md](CONTRIBUTING.md).\nRescal-snow is distributed under the GNU GPL 3.0 license; all contributions must be made under this license or a later version.\n\n## 6. Contributors\nSee [AUTHORS.md](AUTHORS.md).\n\nRescal-snow branched off of ReSCAL (v1.6) in 2016, and continues to use the ReSCAL backend for the cellular automaton and lattice gas models. This history is described in [NEWS.md](NEWS.md) and the original code is available on branch `rescal-1.6`. Ongoing ReSCAL development is described at [http://www.ipgp.fr/~rozier/rescal/rescal.html](http://www.ipgp.fr/~rozier/rescal/rescal-fr.html) (the English version of this website is updated less regularly than the French). Our code is no longer easily compatible with ReSCAL, as we have removed features, unused code, and dependencies that were not related to wind-blown snow and reduced performance on high-performance computing systems. We are adopting a small fraction of new ReSCAL features on a case-by-case basis depending on their relevance to wind blown snow.\n\n## 7. License\nGNU GPL 3.0 or any later version. See [LICENSE](LICENSE). SPDX-License-Identifier: GPL-3.0-or-later.\nThis document was released from Lawrence Livermore National Laboratory under open source software release LLNL-CODE-785837; see [NOTICE](NOTICE) for details.\n\n\u003c!-- Links --\u003e\n\n[CMake]: https://cmake.org\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Frescal-snow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fllnl%2Frescal-snow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fllnl%2Frescal-snow/lists"}