# ____ _ # | _ \ ___ _ __ ___ __ _(_)_ __ # | | | |/ _ \| '_ ` _ \ / _` | | '_ \ # | |_| | (_) | | | | | | (_| | | | | | # |____/ \___/|_| |_| |_|\__,_|_|_| |_| # Domain # All geometrical options go here (but not mesh options) domain = Domain.PiecewiseLinearComplexDomain() # ----- SHAPES ----- # # TANK tank = st.Tank3D(domain, tank_dim) # CAISSON radius = 0.1 caisson = st.Cuboid(domain, dim=[2*radius, 2*radius, 2*radius], coords=(tank_dim[0]/2., tank_dim[1]/2., water_level+radius/10.), barycenter=(tank_dim[0]/2., tank_dim[1]/2., water_level+radius/10.)) caisson.setHoles([caisson.barycenter]) caisson.holes_ind = np.array([0]) # let gmsh know that the caisson is IN the tank tank.setChildShape(caisson, 0) # ____ _ ____ _ _ _ _ # | __ ) ___ _ _ _ __ __| | __ _ _ __ _ _ / ___|___ _ __ __| (_) |_(_) ___ _ __ ___
rho_0 = 1000. nu_0 = 1.004e-6 rho_1 = 1.205 nu_1 = 1.500e-5 sigma_01 = 0.0 g = [0., 0., -9.81] he = 2.5 water_level = 2.5 # GEOMETRY domain = Domain.PiecewiseLinearComplexDomain() nd = 3 tank_dim = [5., 5., 5.] tank = st.Tank3D(domain, dim=tank_dim) rect = st.Cuboid(domain, dim=[1., 1., 1.], coords=[ old_div(tank_dim[0], 2.), old_div(tank_dim[1], 2.), old_div(tank_dim[2], 2.) ]) rect.setHoles(holes=np.array([rect.coords])) domain.MeshOptions.he = he # BOUNDARY CONDITIONS tank.BC['x+'].setNoSlip() tank.BC['x-'].setNoSlip() tank.BC['y-'].setNoSlip()