Пример #1
0

#  ____                        _
# |  _ \  ___  _ __ ___   __ _(_)_ __
# | | | |/ _ \| '_ ` _ \ / _` | | '_ \
# | |_| | (_) | | | | | | (_| | | | | |
# |____/ \___/|_| |_| |_|\__,_|_|_| |_|
# 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)


#  ____                        _                   ____                _ _ _   _
# | __ )  ___  _   _ _ __   __| | __ _ _ __ _   _ / ___|___  _ __   __| (_) |_(_) ___  _ __  ___
Пример #2
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()