forked from narusehajime/turb2d
-
Notifications
You must be signed in to change notification settings - Fork 0
2DH model for simulating turbidity currents
License
iCFD/turb2d
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
TURB2D ======================== This is a code for simulation of turbidity currents on 2D grids. --------------- Installation Here is an example of installation command. python setup.py install Please note that Visual C++ or other cpp compiler is installed in your environemnts if you use windows. This is because this code uses Cython. --------------- Usage A simple usage of this program is as follows: Example 01: Surge-like turbidity current in artificial canyon --------- from turb2d import create_topography, from turb2d import create_init_flow_region, from turb2d import TurbidityCurrent2D from landlab.io.netcdf import write_netcdf from landlab.io.native_landlab import save_grid # First, make a landlab grid with artificial topography grid = create_topography( length=5000, width=2000, spacing=10, slope_outside=0.2, slope_inside=0.05, slope_basin_break=2000, canyon_basin_break=2200, canyon_center=1000, canyon_half_width=100, ) # Next, add initial flow region on the topography create_init_flow_region( grid, initial_flow_concentration=0.01, initial_flow_thickness=100, initial_region_radius=100, initial_region_center=[1000, 4000], ) # Create instance of TurbidityCurrent2D tc = TurbidityCurrent2D(grid, Cf=0.004, alpha=0.1, Ds=80 * 10**-6, ) # Save the initial condition to a netcdf file which can be read by # paraview write_netcdf('tc{:04d}.nc'.format(0), grid) # Start Calculation for 10 seconds for i in range(10): tc.run_one_step(dt=1.0) write_netcdf('tc{:04d}.nc'.format(i), grid) print("", end="\r") print("{:.1f}% finished".format(i / last * 100), end='\r') # Save the result save_grid(grid, 'tc{:04d}.nc'.format(i)) Example 02: Use natural topography from GEOTIFF ---------------- from turb2d import create_topography_from_geotiff from turb2d import create_init_flow_region from turb2d import TurbidityCurrent2D from landlab.io.netcdf import write_netcdf from landlab.io.native_landlab import save_grid grid = create_topography_from_geotiff('depth500.tif', spacing=500) create_init_flow_region( grid, initial_flow_concentration=0.01, initial_flow_thickness=500, initial_region_radius=30000, initial_region_center=[200000, 125000], ) # making turbidity current object tc = TurbidityCurrent2D(grid, Cf=0.004, alpha=0.1, Ds=80 * 10**-6, ) write_netcdf('tc{:04d}.nc'.format(0), grid) for i in range(10): tc.run_one_step(dt=1.0) write_netcdf('tc{:04d}.nc'.format(i), grid) print("", end="\r") print("{:.1f}% finished".format(i / last * 100), end='\r') save_grid(grid, 'tc{:04d}.nc'.format(i)) ------------------------- Limitation and future implementation Single grain-size only. Boundary condition are always 'open' (no gradient).
About
2DH model for simulating turbidity currents
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published
Languages
- Python 93.4%
- Cython 5.9%
- Other 0.7%