Ejemplo n.º 1
0
################################################################################
#
# 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,
Ejemplo n.º 2
0
    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)
Ejemplo n.º 3
0
                       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)
Ejemplo n.º 4
0
                       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``.
Ejemplo n.º 5
0
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)
Ejemplo n.º 6
0
#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:
#--------------------
Ejemplo n.º 7
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)
]

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: