fontsize=10) plt.grid() plt.axis('scaled') plt.show() ################################################################################ # # Problem solving: #-------------------- # river = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, fluvial_flowrates=fluvial_flowrates, fluvial_heights=fluvial_heights) river.solve() ################################################################################ # # Basic plots of velocity components: #-------------------------------------- # #First velocity components are plotted on the middle layer (see *LAYER_IDX*). x = np.asarray(triangular_mesh.triangulation.x) y = np.asarray(triangular_mesh.triangulation.y)
NB_VTK = 10 vtk_writer = fk.VTKWriter(triangular_mesh, scheduler=fk.schedules(count=NB_VTK), scale_h=5.) ################################################################################ # # Problem definition: #-------------------- problem = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, fluvial_heights=fluvial_heights, fluvial_flowrates=fluvial_flowrates, tracers=tracers, external_effects=external_effects, vtk_writer=vtk_writer) ################################################################################ # # Problem solving: #----------------- problem.solve() ################################################################################ # # Basic plots:
# Writter: #---------------------- # vtk_writer = fk.VTKWriter(triangular_mesh, scheduler=fk.schedules(count=10), scale_h=1.) ################################################################################ # # Problem definition: #-------------------- problem = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, numerical_parameters=NUM_PARAMS, vtk_writer=vtk_writer, custom_funct={'plot': fk_plt.plot_freesurface_3d}, custom_funct_scheduler=create_figure_scheduler) ################################################################################ # # Problem solving: #----------------- problem.solve() plt.show()
# for C, law in enumerate(cases): print(" ") print(" ") print( " SOLVING CASE: ") print(" ") print(" ") problem_l.append( fk.Problem(simutime_l[C], triangular_mesh, layer_l[C], primitives_l[C], slides=slides, physical_parameters=PHY_PARAMS, external_effects=external_effects_l[C])) problem_l[C].solve() ################################################################################ # # Plots: #----------------- # #Vertical velocity is plotted for max layer case as well as x velocity profiles #for each discretization. plt.rcParams["figure.figsize"] = [12, 8]
triangular_mesh_list[mesh_id], topography=thacker3d_analytic_list[I].topography)) primitives_list.append( fk.Primitive(triangular_mesh_list[mesh_id], layer_list[I], height=thacker3d_analytic_list[I].H, Uinit=thacker3d_analytic_list[I].U, Vinit=thacker3d_analytic_list[I].V, HRhoinit=thacker3d_analytic_list[I].HRho)) problem_list.append( fk.Problem(simutime_list[I], triangular_mesh_list[mesh_id], layer_list[I], primitives_list[I], analytic_sol=thacker3d_analytic_list[I], numerical_parameters=NUM_PARAMS, physical_parameters=PHY_PARAMS, fluvial_heights=fluvial_heights)) problem_list[I].solve() CPUTime_list.append(time.time() - start) error_H = np.zeros((N_mesh, 2)) error_QX = np.zeros((N_mesh, 2)) error_QY = np.zeros((N_mesh, 2)) error_Rho = np.zeros((N_mesh, 2)) error_H_cumul = np.zeros((N_mesh, 2)) error_QX_cumul = np.zeros((N_mesh, 2)) error_QY_cumul = np.zeros((N_mesh, 2))
NB_VTK = 10 vtk_writer = fk.VTKWriter(triangular_mesh, scheduler=fk.schedules(count=NB_VTK), scale_h=20.) ################################################################################ # # Problem definition: #-------------------- problem = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, tracers=tracers, numerical_parameters=NUM_PARAMS, physical_parameters=PHY_PARAMS, vtk_writer=vtk_writer, custom_funct=custom_functions, custom_funct_scheduler=custom_scheduler) ################################################################################ # # Problem solving: #----------------- problem.solve() ################################################################################ #
scheduler=fk.schedules(count=10), scale_h=10.) ################################################################################ # # Problem definition: #-------------------- # #Problem is called with basic parameters (simutime, mesh, layer, primitives and #boundary conditions). See API for other useful ``fk.Problem`` parameters. river = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, fluvial_flowrates=fluvial_flowrates, fluvial_heights=fluvial_heights, numerical_parameters=NUM_PARAMS, physical_parameters=PHY_PARAMS, vtk_writer=vtk_writer) ################################################################################ # # Problem solving: #----------------- river.solve() ################################################################################ # # Basic plots:
torrential_outs = [fk.TorrentialOut(ref=2)] slides = [fk.Slide(ref=3), fk.Slide(ref=4)] ################################################################################ # # Problem definition: #-------------------- if FLOW == 'sub' or 'trans_shock': problem = fk.Problem( simutime, triangular_mesh, layer, primitives, fluvial_flowrates=fluvial_flowrates, fluvial_heights=fluvial_heights, slides=slides, numerical_parameters={'space_second_order': True}, analytic_sol=bump_analytic, custom_funct={'plot': fk_plt.plot_freesurface_3d_analytic}, custom_funct_scheduler=create_figure_scheduler) elif FLOW == 'trans': problem = fk.Problem( simutime, triangular_mesh, layer, primitives, fluvial_flowrates=fluvial_flowrates, torrential_outs=torrential_outs, slides=slides,
primitives_l.append( fk.Primitive(triangular_mesh, layer_l[C], height=H0, QXinit=1.)) PHYSICAL_PARAMS = { 'friction_law': law, 'friction_coeff': coef, 'horizontal_viscosity': .02, 'vertical_viscosity': .02 } problem_l.append( fk.Problem(simutime=simutime_l[C], triangular_mesh=triangular_mesh, layer=layer_l[C], primitives=primitives_l[C], numerical_parameters=NUMERICAL_PARAMS, physical_parameters=PHYSICAL_PARAMS, slides=slides, fluvial_flowrates=fluvial_flowrates, fluvial_heights=fluvial_heights)) problem_l[C].solve() C += 1 ################################################################################ # # Plot velocity profile: #----------------------- # if not args.nographics: cell = 233 #Middle domain
# vtk_writer = fk.VTKWriter(triangular_mesh, scheduler=fk.schedules(count=10), scale_h=20.) ################################################################################ # # Problem definition: #-------------------- problem = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, external_effects=external_effects, vtk_writer=vtk_writer, custom_funct={'plot': fk_plt.plot_freesurface_3d}, custom_funct_scheduler=create_figure_scheduler) ################################################################################ # # Problem solving: #----------------- problem.solve() if not args.nographics: plt.show()
NB_VTK = 10 vtk_writer = fk.VTKWriter(triangular_mesh, scheduler=fk.schedules(count=NB_VTK), scale_h=2.) ################################################################################ # # Problem definition: #-------------------- problem = fk.Problem(simutime, triangular_mesh, layer, primitives, tracers=tracers, slides=slides, vertical_flowrates=vertical_flowrates, numerical_parameters=NUM_PARAMS, vtk_writer=vtk_writer) ################################################################################ # # Problem solving: #----------------- problem.solve() ################################################################################ # # Plots:
# Boundary conditions: #--------------------- slides = [fk.Slide(ref=r) for r in [1, 2, 3, 4]] ################################################################################ # # Problem definition: #-------------------- problem = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, numerical_parameters={ 'ipres': True, 'space_second_order': True }, custom_funct={'plot': fk_plt.plot_height_2d_3d}, custom_funct_scheduler=create_figure_scheduler) ################################################################################ # # Problem solving: #----------------- problem.solve() if not args.nographics: plt.show()
scheduler=fk.schedules(count=NB_VTK), scale_h=5.) txt_writer = fk.TXTWriter([84], scheduler=fk.schedules(count=5)) ################################################################################ # # Problem definition: #-------------------- problem = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, lagrangian=lagrangian, tracers=tracers, external_effects=external_effects, numerical_parameters={'space_second_order': False}, physical_parameters=PHY_PARAMS, vtk_writer=vtk_writer, txt_writer=txt_writer) ################################################################################ # # Problem solving: #----------------- problem.solve() ################################################################################ # # Post-processing with paraview:
free_surface=FREE_SURFACE_0, QXinit=Q_IN, QYinit=0.)) if PLOT_SOL: create_figure = {'plot':fk_plt.plot_freesurface_3d_analytic} create_figure_scheduler = fk.schedules(times=[0.99*FINAL_TIME]) else: create_figure = None create_figure_scheduler = None problem_list.append(fk.Problem( simutime_list[I], triangular_mesh_list[mesh_id], layer_list[I], primitives_list[I], analytic_sol=bump_analytic_list[I], numerical_parameters=numerical_params, fluvial_flowrates=fluvial_flowrates, fluvial_heights=fluvial_heights, slides=slides, custom_funct=create_figure, custom_funct_scheduler=create_figure_scheduler)) problem_list[I].solve() if PLOT_SOL: plt.show() ################################################################################ # # Errors: #-------------------- # #Errors computed during solving loop are stored in ``error_*`` matrix.
time_dependent_flowrate=flowrate, rectangular_tube=tube, x_flux_direction=1.0, y_flux_direction=0.0) ] ################################################################################ # # Problem definition: #-------------------- thacker = fk.Problem(simutime, triangular_mesh, layer, primitives, tracers=tracers, slides=slides, numerical_parameters={'space_second_order': SECOND_ORDER}, torrential_outs=torrential_outs, fluvial_flowrates=fluvial_flowrates) ################################################################################ # # Problem solving: #----------------- if not args.nographics: # Plot triangular mesh. TG = thacker.triangular_mesh.triangulation x = np.asarray(TG.x)
return h primitives = fk.Primitive(triangular_mesh, layer, height_funct=H_0) tracers = [fk.Tracer(triangular_mesh, layer, primitives, Tinit=1.0)] slides = [fk.Slide(ref=r) for r in [1, 2, 3, 4]] vtk_writer = fk.VTKWriter(triangular_mesh, scheduler=fk.schedules(count=10), scale_h=1.) problem = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, numerical_parameters={'space_second_order': True}, tracers=tracers, vtk_writer=vtk_writer, restart_scheduler=restart_scheduler, custom_funct={'plot': fk_plt.plot_freesurface_3d}, custom_funct_scheduler=create_figure_scheduler) ################################################################################ # # Solving first part: #-------------------- # #The restart sheduler first time being set to 1s, the ``solve()`` function will #stop and save data at time=1s. # problem.solve()
#--------------------- fluvial_heights = [fk.FluvialHeight(ref=r, height=0.0) for r in [1, 2, 3, 4]] ################################################################################ # # Problem definition: #-------------------- problem = fk.Problem( simutime, triangular_mesh, layer, primitives, fluvial_heights=fluvial_heights, analytic_sol=thacker2d_analytic, numerical_parameters={ 'ipres': IPRES, 'space_second_order': SECOND_ORDER }, custom_funct={'plot': fk_plt.plot_freesurface_3d_analytic_2}, custom_funct_scheduler=create_figure_scheduler) ################################################################################ # # Problem solving: #----------------- # #When a figure plot is scheduled thacker2d.compute is called to compute analytic solution. problem.solve()
vtk_writer = fk.VTKWriter(triangular_mesh, scheduler=output_scheduler, scale_h=SCALE_H) ################################################################################ # # Problem definition: #-------------------- raceway = fk.Problem(simutime, triangular_mesh, layer, primitives, slides=slides, numerical_parameters=NUM_PARAMS, physical_parameters=PHY_PARAMS, external_effects=external_effects, vtk_writer=vtk_writer, tracers=tracers, lagrangian=lagrangian) ################################################################################ # # Problem solving: #----------------- raceway.solve() ################################################################################ #
print(" SOLVING CASE {} ".format(C)) print(" ") print(" ") simutime_l.append(fk.SimuTime(final_time=1., time_iteration_max=100000)) layer_l.append(fk.Layer(NL, triangular_mesh, topography=0.)) primitives_l.append(fk.Primitive(triangular_mesh, layer_l[C], free_surface=2., QXinit=1.)) problem_l.append(fk.Problem(simutime=simutime_l[C], triangular_mesh=triangular_mesh, layer=layer_l[C], primitives=primitives_l[C], physical_parameters=PHY_PARAMS, slides=slide, fluvial_flowrates=fluvial_flowrates, fluvial_heights=fluvial_heights)) problem_l[C].solve() ################################################################################ # # Plot velocity profile: #----------------------- # cell = 233 #Middle domain u = np.zeros((NL)) z = np.zeros((NL))