本文整理汇总了Python中landlab.HexModelGrid.calculate_gradients_at_active_links方法的典型用法代码示例。如果您正苦于以下问题:Python HexModelGrid.calculate_gradients_at_active_links方法的具体用法?Python HexModelGrid.calculate_gradients_at_active_links怎么用?Python HexModelGrid.calculate_gradients_at_active_links使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类landlab.HexModelGrid
的用法示例。
在下文中一共展示了HexModelGrid.calculate_gradients_at_active_links方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: main
# 需要导入模块: from landlab import HexModelGrid [as 别名]
# 或者: from landlab.HexModelGrid import calculate_gradients_at_active_links [as 别名]
def main():
"""
In this simple tutorial example, the main function does all the work:
it sets the parameter values, creates and initializes a grid, sets up
the state variables, runs the main loop, and cleans up.
"""
# INITIALIZE
# User-defined parameter values
numrows = 7 # number of rows in the grid
basenumcols = 6 # number of columns in the grid
dx = 10.0 # grid cell spacing
kd = 0.01 # diffusivity coefficient, in m2/yr
uplift_rate = 0.001 # baselevel/uplift rate, in m/yr
num_time_steps = 1000 # number of time steps in run
# Derived parameters
dt = 0.1*dx**2 / kd # time-step size set by CFL condition
# Create and initialize a raster model grid
mg = HexModelGrid(numrows, basenumcols, dx)
# Set up scalar values: elevation and elevation time derivative
z = mg.add_zeros('node', 'Land_surface__elevation')
dzdt = mg.add_zeros('node', 'Land_surface__time_derivative_of_elevation')
# Get a list of the core nodes
core_nodes = mg.core_nodes
# Display a message
print( 'Running diffusion_with_model_hex_grid.py' )
print( 'Time-step size has been set to ' + str( dt ) + ' years.' )
start_time = time.time()
# RUN
# Main loop
for i in range(0, num_time_steps):
# Calculate the gradients and sediment fluxes
g = mg.calculate_gradients_at_active_links(z)
qs = -kd*g
# Calculate the net deposition/erosion rate at each node
dqsds = mg.calculate_flux_divergence_at_nodes(qs)
# Calculate the total rate of elevation change
dzdt = uplift_rate - dqsds
# Update the elevations
z[core_nodes] = z[core_nodes] + dzdt[core_nodes] * dt
# FINALIZE
import numpy
# Test solution for a 1-cell hex grid
if mg.number_of_nodes==7: # single cell with 6 boundaries
perimeter = dx*6*(numpy.sqrt(3.)/3.)
flux = kd*(numpy.amax(z)/dx)
total_outflux = perimeter*flux
total_influx = mg.cell_areas*uplift_rate # just one cell ...
print 'total influx=',total_influx,'total outflux=',total_outflux
print('Run time = '+str(time.time()-start_time)+' seconds')
# Plot the points, colored by elevation
pylab.figure()
maxelev = numpy.amax(z)
for i in range(mg.number_of_nodes):
mycolor = str(z[i]/maxelev)
pylab.plot(mg.node_x[i], mg.node_y[i], 'o', color=mycolor, ms=50)
pylab.show()
mg.display_grid()