Canal

This case is a canal to test the damping condition in one direction

import os, sys
import argparse
import numpy as np
import freshkiss3d as fk
import freshkiss3d.extra.plots as fk_plt
import math
import matplotlib.pyplot as plt
from matplotlib.pyplot import cm
import matplotlib.tri as mtri

os.system('rm -r outputs/hydrodynamic_vtk')
parser = argparse.ArgumentParser()
parser.add_argument('--nographics', action='store_true')
args = parser.parse_args()
#sphinx_gallery_thumbnail_number = 3


dir_path = os.path.abspath(os.path.dirname(sys.argv[0]))

Parameters:

mu = 12.5
sigma = 0.9
def topo_gaussian(x,y):
    topo = 1./(sigma * math.sqrt(2 * math.pi))*np.exp(-(x-mu)**2 / (2*sigma*sigma))
    return topo

Time loop:

FINAL_TIME = 20.

simutime = fk.SimuTime(final_time=FINAL_TIME, time_iteration_max=100000,
                       second_order=True)

Mesh:

triangular_mesh = fk.TriangularMesh.from_msh_file(dir_path+'/inputs/simple_canal.msh')

if not args.nographics:
  fk_plt.plot_mesh(triangular_mesh)
Mesh

Layers:

NL=1
layer = fk.Layer(NL, triangular_mesh, topography_funct=topo_gaussian)

Primitives:

def frees(x, y):
    if 0. <= x < 3.:
        free = 0.5
    else:
        free = 0.15
    return free


primitives = fk.Primitive(triangular_mesh, layer, free_surface_funct=frees)

if not args.nographics:
    fk_plt.plot_init_1d_slice(triangular_mesh, surf_xy=frees, topo_xy=topo_gaussian)
    plt.ylim(0, 1)
    plt.xlim(0, 25)
Initial condition

Boundary conditions:

case = 2
if case==1:
    slides = [fk.Slide(ref=r) for r in [1, 2, 3, 4]]
    damping_outs = []

if case==2:
    slides = [fk.Slide(ref=r) for r in [1, 3, 4]]
    damping_outs = [fk.DampingOut(ref=2, Kappa=1000., Theta=1000.)]

Writter:

times_figures = [1., 4., 8., 10., 12., 15., 19.]

create_figure_scheduler = fk.schedules(times=times_figures)

vtk_writer = fk.VTKWriter(triangular_mesh, scheduler=fk.schedules(times=times_figures),
                          scale_h=10)

Problem definition:

problem = fk.Problem(simutime, triangular_mesh, layer, primitives,
                     slides=slides,
                     damping_outs=damping_outs,
                     numerical_parameters={'space_second_order':True},
                     vtk_writer=vtk_writer,
                     custom_funct={'plot':fk_plt.plot_freesurface_3d},
                     custom_funct_scheduler=create_figure_scheduler)
===================================================================
|                          INITIALIZATION                         |
===================================================================
Problem size: Nodes=625, Layers=1, Triangles=1042,
Iter =        0 ; Dt = 0.0000s ; Time =     0.00s ; ETA =     0.00s

Problem solving:

problem.solve()

if not args.nographics:
    plt.show()
  • Height at time = 1.0s
  • Height at time = 4.0s
  • Height at time = 8.0s
  • Height at time = 10.0s
  • Height at time = 12.0s
  • Height at time = 15.0s
  • Height at time = 19.0s
===================================================================
|                            TIME LOOP                            |
===================================================================
Iter =       65 ; Dt = 0.0063s ; Time =     0.41s ; ETA =     6.42s
Iter =      129 ; Dt = 0.0064s ; Time =     0.82s ; ETA =     6.13s
Iter =      192 ; Dt = 0.0065s ; Time =     1.23s ; ETA =     5.89s
Iter =      255 ; Dt = 0.0066s ; Time =     1.64s ; ETA =     5.73s
Iter =      318 ; Dt = 0.0065s ; Time =     2.05s ; ETA =     5.60s
Iter =      380 ; Dt = 0.0066s ; Time =     2.45s ; ETA =     5.41s
Iter =      443 ; Dt = 0.0066s ; Time =     2.86s ; ETA =     5.30s
Iter =      505 ; Dt = 0.0065s ; Time =     3.27s ; ETA =     5.32s
Iter =      568 ; Dt = 0.0065s ; Time =     3.68s ; ETA =     5.09s
Iter =      630 ; Dt = 0.0065s ; Time =     4.08s ; ETA =     5.07s
Iter =      693 ; Dt = 0.0066s ; Time =     4.50s ; ETA =     4.84s
Iter =      753 ; Dt = 0.0069s ; Time =     4.90s ; ETA =     4.78s
Iter =      813 ; Dt = 0.0062s ; Time =     5.31s ; ETA =     5.18s
Iter =      875 ; Dt = 0.0072s ; Time =     5.72s ; ETA =     4.24s
Iter =      932 ; Dt = 0.0071s ; Time =     6.12s ; ETA =     4.27s
Iter =      991 ; Dt = 0.0069s ; Time =     6.54s ; ETA =     4.15s
Iter =     1050 ; Dt = 0.0069s ; Time =     6.94s ; ETA =     4.07s
Iter =     1109 ; Dt = 0.0069s ; Time =     7.35s ; ETA =     3.92s
Iter =     1168 ; Dt = 0.0070s ; Time =     7.76s ; ETA =     3.81s
Iter =     1226 ; Dt = 0.0070s ; Time =     8.17s ; ETA =     3.60s
Iter =     1285 ; Dt = 0.0069s ; Time =     8.57s ; ETA =     3.61s
Iter =     1345 ; Dt = 0.0068s ; Time =     8.99s ; ETA =     3.43s
Iter =     1404 ; Dt = 0.0069s ; Time =     9.39s ; ETA =     3.30s
Iter =     1464 ; Dt = 0.0069s ; Time =     9.80s ; ETA =     3.16s
Iter =     1523 ; Dt = 0.0069s ; Time =    10.21s ; ETA =     3.00s
Iter =     1583 ; Dt = 0.0069s ; Time =    10.62s ; ETA =     2.91s
Iter =     1642 ; Dt = 0.0070s ; Time =    11.03s ; ETA =     2.70s
Iter =     1701 ; Dt = 0.0070s ; Time =    11.43s ; ETA =     2.59s
Iter =     1759 ; Dt = 0.0068s ; Time =    11.84s ; ETA =     2.54s
Iter =     1819 ; Dt = 0.0069s ; Time =    12.25s ; ETA =     2.35s
Iter =     1878 ; Dt = 0.0070s ; Time =    12.66s ; ETA =     2.22s
Iter =     1936 ; Dt = 0.0070s ; Time =    13.06s ; ETA =     2.09s
Iter =     1994 ; Dt = 0.0071s ; Time =    13.47s ; ETA =     1.92s
Iter =     2051 ; Dt = 0.0072s ; Time =    13.88s ; ETA =     1.81s
Iter =     2107 ; Dt = 0.0073s ; Time =    14.29s ; ETA =     1.68s
Iter =     2163 ; Dt = 0.0073s ; Time =    14.70s ; ETA =     1.57s
Iter =     2218 ; Dt = 0.0074s ; Time =    15.11s ; ETA =     1.42s
Iter =     2273 ; Dt = 0.0074s ; Time =    15.52s ; ETA =     1.30s
Iter =     2328 ; Dt = 0.0073s ; Time =    15.93s ; ETA =     1.20s
Iter =     2382 ; Dt = 0.0076s ; Time =    16.33s ; ETA =     1.03s
Iter =     2437 ; Dt = 0.0074s ; Time =    16.74s ; ETA =     0.95s
Iter =     2492 ; Dt = 0.0075s ; Time =    17.15s ; ETA =     0.82s
Iter =     2546 ; Dt = 0.0077s ; Time =    17.56s ; ETA =     0.68s
Iter =     2598 ; Dt = 0.0080s ; Time =    17.97s ; ETA =     0.54s
Iter =     2648 ; Dt = 0.0081s ; Time =    18.37s ; ETA =     0.43s
Iter =     2699 ; Dt = 0.0081s ; Time =    18.78s ; ETA =     0.32s
Iter =     2749 ; Dt = 0.0081s ; Time =    19.19s ; ETA =     0.21s
Iter =     2800 ; Dt = 0.0077s ; Time =    19.60s ; ETA =     0.11s
Iter =     2854 ; Dt = 0.0022s ; Time =    20.00s ; ETA =     0.00s
===================================================================
|                               END                               |
===================================================================
Problem.solve() completed in 7.007403135299683s (wall time)

Total running time of the script: ( 0 minutes 9.012 seconds)

Gallery generated by Sphinx-Gallery