InĀ [1]:
# Import package
from flumy import *
nx = 250 # Number of grid nodes along Ox
ny = 200 # Number of grid nodes along Oy
mesh = 10 # Horizontal grid mesh size: 10m
hmax = 3 # Maximum channel depth: 3m
ng = 30 # Required Net-to-Gross: 30%
isbx = 80 # Required sand bodies extension (medium extension = few meander cutoffs)
verbose = True # Verbose mode
res = 30 # Vertical resolution (increase 'res' to get higher resolution)
dz = hmax / res # Vertical discretization step (0.1m)
zul = 4 * hmax # Fill a reservoir of 4 x hmax height (12m)
nz = int(3 * hmax / dz) # Number of vertical nodes of the resulted block of sediments (9m)
InĀ [2]:
%%javascript
IPython.OutputArea.prototype._should_scroll = function(lines) {
return false;
}
InĀ [3]:
# Launch the simulation
seed = 123456 # Simulation seed
# Create the simulator
flsim = Flumy(nx, ny, mesh, verbose)
# Launch up to zul
success = flsim.launch(seed, hmax, isbx, ng, zul)
if (not success):
print("Error while running Flumy")
Flumy (8.000) / 2025-02-04 Info : Launching Flumy with: - MaxDepth = 3m - SandBodyIndex = 80, - NetToGross = 30% Info : Flumy Non Expert User (standard): : NEXUS input: : hmax=3m : isbx=80 : sand=30% : adapt_grid=0 : NEXUS output: : width=30m : e=4e-08 : slope=0.001 : wavelength=375m : trav=600it : tlvb=312it : tob=39it : iob=0.1m : lambda=892m : Intermediate values: : hmean=2m : cf=0.0158(unit?) : velocity=0.909862m/s : lambda (raw)=900m : ios=0.03m : tav=387.326it : Forecasts: : rel_flw_dir=0deg : adx=2720m : forecast_sand=30% : forecast_aggrate=7.99m/10000it : forecast_migrate=0.34m/it : Inference constants: : kvp=0.871513 : kmig=0.749987 : kob=0.6 Info : Iteration 0 : Load upper limit (val=12) Info : Iteration 0 : Launching system Fluvial Info : Iteration 0 : Automatic channel creation Info : Steepest Channel Creation Success Info : Iteration 15 : Overbank Flow Info : Iteration 38 : Overbank Flow Info : Iteration 64 : Overbank Flow Info : Iteration 100 : Overbank Flow Info : Iteration 168 : Levee Breaches (others) Info : Local Avulsion Success - New path downstream Info : Iteration 209 : Overbank Flow Info : Iteration 227 : Overbank Flow Info : Iteration 256 : Levee Breaches (others) Info : Iteration 311 : Overbank Flow Info : Iteration 356 : Overbank Flow Info : Iteration 387 : Overbank Flow Info : Iteration 401 : Overbank Flow Info : Iteration 435 : Overbank Flow Info : Iteration 526 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 548 : Overbank Flow Info : Iteration 582 : Levee Breaches (others) Info : Local Avulsion Success - New path downstream Info : Iteration 589 : Overbank Flow Info : Iteration 623 : Overbank Flow Info : Iteration 626 : Overbank Flow Info : Iteration 725 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 784 : Overbank Flow Info : Iteration 793 : Overbank Flow Info : Iteration 798 : Overbank Flow Info : Iteration 806 : Overbank Flow Info : Iteration 891 : Overbank Flow Info : Iteration 902 : Overbank Flow Info : Iteration 917 : Overbank Flow Info : Iteration 927 : Overbank Flow Info : Iteration 970 : Overbank Flow Info : Iteration 982 : Overbank Flow Info : Iteration 999 : Overbank Flow Info : Iteration 1023 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - New path downstream Info : Iteration 1056 : Overbank Flow Info : Iteration 1059 : Overbank Flow Info : Iteration 1104 : Overbank Flow Info : Iteration 1110 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 1112 : Overbank Flow Info : Iteration 1120 : Overbank Flow Info : Iteration 1351 : Overbank Flow Info : Iteration 1352 : Overbank Flow Info : Iteration 1376 : Overbank Flow Info : Iteration 1414 : Overbank Flow Info : Iteration 1423 : Overbank Flow Info : Iteration 1443 : Overbank Flow Info : Iteration 1467 : Overbank Flow Info : Iteration 1490 : Overbank Flow Info : Iteration 1491 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 1508 : Overbank Flow Info : Iteration 1521 : Overbank Flow Info : Iteration 1545 : Overbank Flow Info : Iteration 1624 : Overbank Flow Info : Iteration 1644 : Overbank Flow Info : Iteration 1652 : Levee Breaches (others) Info : Iteration 1677 : Overbank Flow Info : Iteration 1716 : Overbank Flow Info : Iteration 1721 : Overbank Flow Info : Iteration 1724 : Overbank Flow Info : Iteration 1742 : Overbank Flow Info : Iteration 1749 : Overbank Flow Info : Iteration 1807 : Overbank Flow Info : Iteration 1813 : Overbank Flow Info : Iteration 1814 : Overbank Flow Info : Iteration 1833 : Overbank Flow Info : Iteration 1870 : Overbank Flow Info : Iteration 1940 : Overbank Flow Info : Iteration 1953 : Overbank Flow Info : Iteration 1976 : Overbank Flow Info : Iteration 1979 : Overbank Flow Info : Iteration 1984 : Overbank Flow Info : Iteration 1986 : Overbank Flow Info : Iteration 2014 : Overbank Flow Info : Iteration 2116 : Overbank Flow Info : Iteration 2216 : Overbank Flow Info : Iteration 2226 : Overbank Flow Info : Iteration 2227 : Overbank Flow Info : Iteration 2242 : Overbank Flow Info : Iteration 2270 : Overbank Flow Info : Iteration 2291 : Overbank Flow Info : Iteration 2292 : Overbank Flow Info : Iteration 2298 : Overbank Flow Info : Iteration 2339 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - New path downstream Info : Iteration 2473 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 2478 : Overbank Flow Info : Iteration 2523 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 2548 : Levee Breaches (others) Info : Iteration 2560 : Overbank Flow Info : Iteration 2575 : Overbank Flow Info : Iteration 2646 : Overbank Flow Info : Iteration 2646 : Levee Breaches (others) Info : Iteration 2713 : Overbank Flow Info : Iteration 2761 : Overbank Flow Info : Iteration 2799 : Overbank Flow Info : Iteration 2827 : Overbank Flow Info : Iteration 2851 : Overbank Flow Info : Iteration 2939 : Overbank Flow Info : Iteration 2964 : Overbank Flow Info : Iteration 2968 : Overbank Flow Info : Iteration 2981 : Overbank Flow Info : Iteration 2982 : Overbank Flow Info : Iteration 3044 : Overbank Flow Info : Iteration 3093 : Overbank Flow Info : Iteration 3099 : Overbank Flow Info : Iteration 3108 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 3185 : Overbank Flow Info : Iteration 3208 : Overbank Flow Info : Iteration 3224 : Overbank Flow Info : Iteration 3281 : Overbank Flow Info : Iteration 3282 : Overbank Flow Info : Iteration 3366 : Overbank Flow Info : Iteration 3375 : Overbank Flow Info : Iteration 3411 : Overbank Flow Info : Iteration 3476 : Overbank Flow Info : Iteration 3478 : Overbank Flow Info : Iteration 3491 : Overbank Flow Info : Iteration 3505 : Overbank Flow Info : Iteration 3516 : Overbank Flow Info : Iteration 3529 : Overbank Flow Info : Iteration 3536 : Overbank Flow Info : Iteration 3540 : Overbank Flow Info : Iteration 3574 : Overbank Flow Info : Iteration 3584 : Overbank Flow Info : Iteration 3606 : Overbank Flow Info : Iteration 3621 : Overbank Flow Info : Iteration 3622 : Overbank Flow Info : Iteration 3626 : Overbank Flow Info : Iteration 3636 : Overbank Flow Info : Iteration 3651 : Overbank Flow Info : Iteration 3655 : Overbank Flow Info : Iteration 3663 : Overbank Flow Info : Iteration 3695 : Overbank Flow Info : Iteration 3703 : Overbank Flow Info : Iteration 3707 : Overbank Flow Info : Iteration 3709 : Overbank Flow Info : Iteration 3710 : Overbank Flow Info : Iteration 3736 : Overbank Flow Info : Iteration 3760 : Overbank Flow Info : Iteration 3788 : Overbank Flow Info : Iteration 3792 : Overbank Flow Info : Iteration 3809 : Overbank Flow Info : Iteration 3844 : Overbank Flow Info : Iteration 3851 : Overbank Flow Info : Iteration 3892 : Overbank Flow Info : Iteration 3920 : Overbank Flow Info : Iteration 3950 : Overbank Flow Info : Iteration 3990 : Overbank Flow Info : Iteration 4029 : Overbank Flow Info : Iteration 4030 : Overbank Flow Info : Iteration 4058 : Overbank Flow Info : Iteration 4072 : Overbank Flow Info : Iteration 4078 : Overbank Flow Info : Iteration 4079 : Overbank Flow Info : Iteration 4098 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 4164 : Overbank Flow Info : Iteration 4191 : Overbank Flow Info : Iteration 4239 : Overbank Flow Info : Iteration 4260 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 4286 : Overbank Flow Info : Iteration 4321 : Overbank Flow Info : Iteration 4324 : Levee Breaches (others) Info : Iteration 4407 : Overbank Flow Info : Iteration 4419 : Overbank Flow Info : Iteration 4422 : Overbank Flow Info : Iteration 4479 : Overbank Flow Info : Iteration 4509 : Overbank Flow Info : Iteration 4513 : Overbank Flow Info : Iteration 4534 : Overbank Flow Info : Iteration 4591 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 4594 : Overbank Flow Info : Iteration 4601 : Overbank Flow Info : Iteration 4672 : Overbank Flow Info : Iteration 4677 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 4680 : Overbank Flow Info : Iteration 4708 : Overbank Flow Info : Iteration 4716 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 4732 : Overbank Flow Info : Iteration 4744 : Overbank Flow Info : Iteration 4754 : Overbank Flow Info : Iteration 4766 : Overbank Flow Info : Iteration 4836 : Overbank Flow Info : Iteration 4853 : Overbank Flow Info : Iteration 4898 : Overbank Flow Info : Iteration 4904 : Overbank Flow Info : Iteration 4961 : Overbank Flow Info : Iteration 5048 : Overbank Flow Info : Iteration 5126 : Overbank Flow Info : Iteration 5156 : Overbank Flow Info : Iteration 5237 : Overbank Flow Info : Iteration 5265 : Overbank Flow Info : Iteration 5307 : Overbank Flow Info : Iteration 5320 : Overbank Flow Info : Iteration 5444 : Overbank Flow Info : Iteration 5473 : Overbank Flow Info : Iteration 5477 : Overbank Flow Info : Iteration 5514 : Overbank Flow Info : Iteration 5547 : Overbank Flow Info : Iteration 5639 : Overbank Flow Info : Iteration 5665 : Overbank Flow Info : Iteration 5692 : Overbank Flow Info : Iteration 5741 : Overbank Flow Info : Iteration 5779 : Levee Breaches (others) Info : Iteration 5783 : Overbank Flow Info : Iteration 5846 : Overbank Flow Info : Iteration 5850 : Overbank Flow Info : Iteration 5908 : Overbank Flow Info : Iteration 5920 : Overbank Flow Info : Iteration 5921 : Overbank Flow Info : Iteration 5925 : Overbank Flow Info : Iteration 5965 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 5999 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 6004 : Overbank Flow Info : Iteration 6009 : Overbank Flow Info : Iteration 6072 : Overbank Flow Info : Iteration 6205 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 6209 : Overbank Flow Info : Iteration 6233 : Overbank Flow Info : Iteration 6241 : Overbank Flow Info : Iteration 6357 : Overbank Flow Info : Iteration 6385 : Overbank Flow Info : Iteration 6407 : Overbank Flow Info : Iteration 6423 : Overbank Flow Info : Iteration 6515 : Overbank Flow Info : Iteration 6526 : Overbank Flow Info : Iteration 6537 : Overbank Flow Info : Iteration 6581 : Overbank Flow Info : Iteration 6651 : Overbank Flow Info : Iteration 6651 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - New path downstream Info : Iteration 6689 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 6716 : Overbank Flow Info : Iteration 6744 : Overbank Flow Info : Iteration 6805 : Overbank Flow Info : Iteration 6850 : Overbank Flow Info : Iteration 6852 : Overbank Flow Info : Iteration 6858 : Overbank Flow Info : Iteration 6865 : Overbank Flow Info : Iteration 6887 : Overbank Flow Info : Iteration 6898 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - New path downstream Info : Iteration 6934 : Overbank Flow Info : Iteration 7046 : Overbank Flow Info : Iteration 7059 : Overbank Flow Info : Iteration 7091 : Overbank Flow Info : Iteration 7106 : Overbank Flow Info : Iteration 7138 : Overbank Flow Info : Iteration 7138 : Levee Breaches (others) Info : Local Avulsion Success - New path joining current channel Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 7214 : Overbank Flow Info : Iteration 7252 : Overbank Flow Info : Iteration 7262 : Overbank Flow Info : Iteration 7270 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - New path joining current channel Info : Local Avulsion Success - New path downstream Info : Iteration 7277 : Overbank Flow Info : Iteration 7279 : Overbank Flow Info : Iteration 7297 : Overbank Flow Info : Iteration 7301 : Overbank Flow Info : Iteration 7362 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 7369 : Overbank Flow Info : Iteration 7428 : Overbank Flow Info : Iteration 7443 : Overbank Flow Info : Iteration 7453 : Overbank Flow Info : Iteration 7545 : Overbank Flow Info : Iteration 7564 : Overbank Flow Info : Iteration 7567 : Overbank Flow Info : Iteration 7572 : Overbank Flow Info : Iteration 7588 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 7636 : Overbank Flow Info : Iteration 7641 : Overbank Flow Info : Iteration 7650 : Overbank Flow Info : Iteration 7677 : Overbank Flow Info : Iteration 7724 : Overbank Flow Info : Iteration 7737 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 7842 : Overbank Flow Info : Iteration 7862 : Overbank Flow Info : Iteration 7875 : Overbank Flow Info : Iteration 7922 : Overbank Flow Info : Iteration 7932 : Overbank Flow Info : Iteration 7936 : Overbank Flow Info : Iteration 7977 : Overbank Flow Info : Iteration 7986 : Overbank Flow Info : Iteration 7991 : Overbank Flow Info : Iteration 7996 : Overbank Flow Info : Iteration 8015 : Overbank Flow Info : Iteration 8072 : Overbank Flow Info : Iteration 8134 : Overbank Flow Info : Iteration 8162 : Levee Breaches (others) Info : Local Avulsion Success - New path downstream Info : Iteration 8206 : Overbank Flow Info : Iteration 8224 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 8238 : Overbank Flow Info : Iteration 8242 : Overbank Flow Info : Iteration 8310 : Overbank Flow Info : Iteration 8314 : Overbank Flow Info : Iteration 8409 : Overbank Flow Info : Iteration 8443 : Levee Breaches (others) Info : Iteration 8472 : Overbank Flow Info : Iteration 8485 : Overbank Flow Info : Iteration 8507 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 8537 : Overbank Flow Info : Iteration 8678 : Overbank Flow Info : Iteration 8689 : Overbank Flow Info : Iteration 8720 : Overbank Flow Info : Iteration 8840 : Overbank Flow Info : Iteration 8925 : Overbank Flow Info : Iteration 8978 : Overbank Flow Info : Iteration 8987 : Overbank Flow Info : Iteration 8991 : Overbank Flow Info : Iteration 8997 : Overbank Flow Info : Iteration 9003 : Overbank Flow Info : Iteration 9187 : Overbank Flow Info : Iteration 9212 : Overbank Flow Info : Iteration 9215 : Overbank Flow Info : Iteration 9343 : Overbank Flow Info : Iteration 9404 : Overbank Flow Info : Iteration 9405 : Overbank Flow Info : Iteration 9408 : Overbank Flow Info : Iteration 9409 : Overbank Flow Info : Iteration 9428 : Overbank Flow Info : Iteration 9434 : Overbank Flow Info : Iteration 9463 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 9481 : Overbank Flow Info : Iteration 9510 : Overbank Flow Info : Iteration 9560 : Overbank Flow Info : Iteration 9573 : Overbank Flow Info : Iteration 9596 : Overbank Flow Info : Iteration 9638 : Overbank Flow Info : Iteration 9641 : Overbank Flow Info : Iteration 9736 : Overbank Flow Info : Iteration 9782 : Overbank Flow Info : Iteration 9803 : Overbank Flow Info : Iteration 9851 : Overbank Flow Info : Iteration 9875 : Overbank Flow Info : Iteration 9886 : Overbank Flow Info : Iteration 9928 : Overbank Flow Info : Iteration 10000 : Mean topography: 13m Info : Iteration 10018 : Overbank Flow Info : Iteration 10020 : Overbank Flow Info : Iteration 10027 : Levee Breaches (others) Info : Local Avulsion Success - New path joining current channel Info : Iteration 10069 : Overbank Flow Info : Iteration 10109 : Overbank Flow Info : Iteration 10136 : Overbank Flow Info : Iteration 10176 : Overbank Flow Info : Iteration 10195 : Overbank Flow Info : Iteration 10211 : Overbank Flow Info : Iteration 10220 : Overbank Flow Info : Iteration 10245 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 10309 : Overbank Flow Info : Iteration 10329 : Overbank Flow Info : Iteration 10377 : Overbank Flow Info : Iteration 10571 : Overbank Flow Info : Iteration 10601 : Overbank Flow Info : Iteration 10644 : Overbank Flow Info : Iteration 10658 : Overbank Flow Info : Iteration 10707 : Overbank Flow Info : Iteration 10747 : Levee Breaches (others) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Local Avulsion Success - Chute cutoff (no splay) Info : Iteration 10780 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 10804 : Overbank Flow Info : Iteration 10806 : Overbank Flow Info : Iteration 10808 : Regional Avulsion Info : Regional Avulsion Success Info : Iteration 10848 : Overbank Flow Info : Iteration 10864 : Overbank Flow Info : Iteration 10873 : Overbank Flow Info : Iteration 10961 : Overbank Flow Info : Iteration 10962 : Overbank Flow Info : Iteration 10982 : Overbank Flow Info : Iteration 11039 : Overbank Flow Info : Iteration 11046 : Overbank Flow Info : Iteration 11056 : Overbank Flow Info : Upper limit has been reached
InĀ [4]:
# Display the age of the simulation, the mean topography reached and the total number of meander cutoffs
print("Final age:",flsim.getAge(), "yr")
print("Mean topography:",round(flsim.getDomain().getMeanTopo(),2), "m")
print("Number of cutoffs:",flsim.getNbCutoff())
# Retrieve the simulated block informed with facies, grain size and age (in three numpy arrays)
fac,grain,age = flsim.getBlock(dz, zb=0 ,nz=nz)
print("type(fac):", type(fac))
print("fac.shape:", fac.shape)
# Display facies proportions
props = getFaciesProps(fac)
print("Facies proportions (%):", props)
# Sand proportion (PB) corresponds more or less to the required Net-to-Gross
# Display grain size class proportions
props = getGrainProps(fac)
print("Grain size class proportions (%):", props)
Final age: 11056 yr Mean topography: 13.77 m Number of cutoffs: 61 type(fac): <class 'numpy.ndarray'> fac.shape: (250, 200, 90) Facies proportions (%): {'CL': 2.08, 'PB': 35.74, 'SP': 0.77, 'CSI': 0.0, 'CCh': 0.02, 'CSII': 0.0, 'LV': 16.14, 'OB': 39.05, 'MP': 6.19} Grain size class proportions (%): {' 9 - Fine Sand (2)': 6.19, ' 8 - Very Fine Sand (3)': 39.05, ' 7 - Silt (4)': 16.14, ' 6 - Silt (5)': 0.0, ' 5 - Silt (6)': 0.02, ' 4 - Silt (7)': 0.0, ' 3 - Clay (8)': 0.77, ' 2 - Clay (9-10)': 35.74, ' 1 - Clay (11-14)': 2.08}
InĀ [5]:
# Display Facies cross-flow section
showSection(fac = fac[50,:,:], size = 8, legend = 1)
# Display Grain Size along-flow section
showSection(grain = grain[:,20,:], size = 8, legend = 1)
# Display Age horizontal slice section
showSection(age = age[:,:,2], size = 8, legend = 1, title = "Age horizontal slice")
InĀ [6]:
# Display Vertical Proportion Curve of the facies
showVPC(flsim, dz, 0, 6)
# Display Vertical Proportion Curve of the grain size classes
showVPC(flsim, dz, 0, 6, color=1)
InĀ [7]:
from dash import Dash, dcc, html, Input, Output, callback
app = Dash()
app.layout = html.Div([
dcc.Graph(id='graph-court'),
dcc.Slider(0, 89, 1,
value=5, marks=None,
id='iz-slider'
),
])
@callback(
Output('graph-court', 'figure'),
Input('iz-slider', 'value'))
def update_output(value):
# Display three slices for grain size for the following grid indices
data = [sliceFromGrid(grain,0,50),
sliceFromGrid(grain,1,20),
sliceFromGrid(grain,2,value)
]
fig1 = go.Figure(data=data)
fig1.layout.title = f"Grain Size Z-Slice at {value}m"
return fig1
app.run()