################################################################################ # # Boundary conditions: #--------------------- fluvial_flowrates = [ fk.FluvialFlowRate(ref=1, flowrate=Q_IN, x_flux_direction=1.0, y_flux_direction=0.0) ] fluvial_heights = [fk.FluvialHeight(ref=2, height=H_OUT)] 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,
lagrangian = fk.Lagrangian(positions, triangular_mesh, layer, primitives, scheduler=output_scheduler_lag) else: lagrangian = None ################################################################################ # # Boundary conditions: #--------------------- slides = [ fk.Slide(ref=101, horizontal_viscosity=VISCOSITY, wall_friction_coeff=WALL_FRICTION), fk.Slide(ref=102, horizontal_viscosity=VISCOSITY, wall_friction_coeff=WALL_FRICTION) ] ################################################################################ # # External effects: #--------------------- angular_velocity = CIRC_VELOCITY / RADIUS rotating = fk.Rotating(angles_number=N_WHEELS, angular_velocity=angular_velocity, phase=-np.pi)
time_iteration_max=20000, second_order=True) create_figure_scheduler = fk.schedules(times=[0., 1., 2., 3., 4., 5.]) triangular_mesh = fk.TriangularMesh.from_msh_file( '../simulations/inputs/square2.mesh') layer = fk.Layer(1, triangular_mesh, topography=0.) def H_0(x, y): h = 2.4 * (1.0 + np.exp(-0.25 * ((x - 10.05)**2 + (y - 10.05)**2))) 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)
tracers_inlet={ 'polluant_0': 0., 'polluant_1': 10. }) ] fluvial_heights = [ fk.FluvialHeight(ref=2, height=2., tracers_inlet={ 'polluant_0': 0., 'polluant_1': 10. }) ] slides = [fk.Slide(ref=3)] ################################################################################ # #.. note:: # Note that tracer labels have been used to provide tracer value at inlet # boundary condition. In our case, we provide the same boundary condition inlet # values as for tracer initialization. ################################################################################ # # External effects (tracer source terms): #---------------------------------------- # #``ExternalEffects`` objects are called in ``problem.solve()`` at each time step. In #this example external effects are ``TracerSource``.
NL = 8 layer = fk.Layer(NL, triangular_mesh, topography=0.) primitives = fk.Primitive(triangular_mesh, layer, height=1.0) flowrate = fk.TimeDependentFlowRate(times=[0.0, 1000.0, 10000], flowrates=[0.0, 10.0, 10.0]) fluvial_flowrates = [ fk.FluvialFlowRate(ref=2, time_dependent_flowrate=flowrate, x_flux_direction=1.0, y_flux_direction=0.0) ] slides = [fk.Slide(ref=1)] fluvial_heights = [fk.FluvialHeight(ref=3, height=1.)] ################################################################################ # # Plot boundary conditions on mesh: #----------------------------------- # #To check boundary labels: # colors = {0: 'blue', 1: 'red', 2: 'green', 3: 'purple'} fig = plt.figure() ax = fig.add_subplot(111) ax.triplot(triangular_mesh.triangulation.x, triangular_mesh.triangulation.y, triangular_mesh.triangulation.trivtx)
#Plot initial free surface in (x,z) slice plane: if not args.nographics: fk_plt.plot_init_1d_slice(triangular_mesh, surf_xy=eta_0, topo_xy=Topography, primitive_xy=T_0) primitives = fk.Primitive(triangular_mesh, layer, free_surface_funct=eta_0) tracers = [fk.Tracer(triangular_mesh, layer, primitives, Tinit_funct=T_0)] ################################################################################ # # Boundary conditions: #--------------------- slides = [fk.Slide(ref=1), fk.Slide(ref=3)] torrential_outs = [fk.TorrentialOut(ref=2)] tube = fk.RectangularTube(xlim=(0.0, 4.0), ylim=(0.0, 6.0), zlim=(0.0, 6.0)) flowrate = fk.TimeDependentFlowRate(times=[0.0, 0.0], flowrates=[0.0, 0.0]) fluvial_flowrates = [ fk.FluvialFlowRate(ref=4, time_dependent_flowrate=flowrate, rectangular_tube=tube, x_flux_direction=1.0, y_flux_direction=0.0) ] ################################################################################ # # Problem definition: #--------------------
flowrate = fk.TimeDependentFlowRate(times=[0.0, 1000.0, 10000], flowrates=[0.0, 10.0, 10.0]) fluvial_flowrates = [ fk.FluvialFlowRate(ref=2, time_dependent_flowrate=flowrate, x_flux_direction=1.0, y_flux_direction=0.0) ] fluvial_heights = [fk.FluvialHeight(ref=3, height=10.)] slides = [ fk.Slide(ref=1, horizontal_viscosity=PHY_PARAMS['horizontal_viscosity'], wall_friction_coeff=PHY_PARAMS['friction_coeff']) ] ################################################################################ # # Writter: #---------------------- vtk_writer = fk.VTKWriter(triangular_mesh, scheduler=fk.schedules(count=10), scale_h=10.) ################################################################################ # # Problem definition: