Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Major update V3 #181

Open
wants to merge 29 commits into
base: main
Choose a base branch
from
Open

Major update V3 #181

wants to merge 29 commits into from

Conversation

Sierd
Copy link
Collaborator

@Sierd Sierd commented Mar 11, 2024

Solver, vegetation, Landforms

Sierd and others added 27 commits August 9, 2023 12:18
- Updated steady state solver
- Updated euler explicit solver
- Nearest neighbor interpolation introduced to wind series interpolation. This avoids awkward values of wind directions.

Both solvers eliminate the iteration of the linear system of equations. Performance of these solvers looks very good so far.

No compatibility with spatially varying wind fields yet. Solvers only work when winds are located in 1 quadrant.
Sweeping method 2 has been introduced to facilitate spatially varying wind field. The solver seems not mass-conserving yet.
Duran grainspeed improved, such that us and un are 0 when ustar < uth
Fixed usage of threshold mask. 2D mask can be given as input and will be used to mask uth for each fraction over a loop
The addition of a vegetation-growth mask allows to disable vegetation growth at certain parts of the domain (for instance where vegetation species are non-burial resistant)
1. Included grain speed us & un from both upwind and current cell
2. Grain speeds determined at cell edge instead of center (now fluxes for mass conservation (and asymmetry))
When calling 'duran_full' under the grainspeed parameter, now the grainspeed equation (eq 1.61 in thesis Duran) is completely solved. This results in better outcomes for steep slopes. Implications for earlier simulations, e.g. barchans, parabolics is expected to be limited, but for more natural situations (mainly blowouts) this has a large (positive) impact on the outcomes.
solver could be optimized for speed
boundary conditions are still under development.
Most functionalities are operational but some work remains on the boundaries.
sweep3 is the new solver code. This is tested for continuity on all quadrants.

Sweep tests folder is added. This folder is to be deleted later.
- make facility for using supply file
- nearest interpolation of wind input
- sweep stopping criteria 1e-10 instead of 0
Vegetation.py updated, but not a definite version. Processes are missing and implementation is lacking. Waiting for a better description, before a clean and "final" implementation
Allow messy input files
Copy link
Collaborator

@niketagrawal niketagrawal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The path to the aeolis.txt file and the callback function used by the test function is incorrect.

@@ -100,8 +100,8 @@ class TestAeoLiSRunner:

def test_parse_callback_from_module(self):
"""Test if the callback function can be loaded from a file"""
runner = AeoLiSRunner("aeolis/tests/aeolis.txt")
callback = runner.parse_callback("aeolis/tests/callback_example.py:mock_callback")
runner = AeoLiSRunner("aeolis.txt")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This path to aeolis.txt file is incorrect. It is causing the callback test to fail.

The correct path is "aeolis/tests/aeolis.txt"

runner = AeoLiSRunner("aeolis/tests/aeolis.txt")
callback = runner.parse_callback("aeolis/tests/callback_example.py:mock_callback")
runner = AeoLiSRunner("aeolis.txt")
callback = runner.parse_callback("callback_example.py:mock_callback")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This path to the callback function is incorrect. It is causing the callback test to fail.

The correct path is "aeolis/tests/callback_example.py:mock_callback"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants