Nitsche Immersed Boundary#
These parameters are used for simulations using the Nitsche immersed boundary method. Nitsche immersed boundary method works by forcing the fluid at the location of the Gauss points of the solid triangulation in order to apply the noslip
boundary condition within the solid object.
See also
For further understanding about the numerical method used and advanced parameters, the interested reader is referred to this article (to be published).
Warning
The lethe-fluid-nitsche
solver must be used for the Nitsche solid to be accounted for.
subsection nitsche
#---------------------------------------------------
# General parameters
#---------------------------------------------------
set verbosity = quiet
set number of solids = 0
#---------------------------------------------------
# Solid parameters
#---------------------------------------------------
subsection nitsche solid 0
# Solid Mesh
#=================================================
subsection mesh
set type = dealii
set grid type = hyper_ball
set grid arguments = 0, 0 : 0.25 : true
set initial refinement = 5
set simplex = false
end
# Velocity boundary condition parameters
#=================================================
# Penalization term for Nitsche method, on the velocity
set beta = 10
# Solid velocity
subsection solid velocity
# Default values in 2D
set Function expression = 0 ; 0
# in 3D: set Function expression = 0 ; 0 ; 0
end
# Condition on the motion of particles
set enable particles motion = false
# Number of sub iterations for the motion of the particles
set particles sub iterations = 1
# Heat boundary condition parameters
#=================================================
set enable heat boundary condition = false
# Penalization term for Nitsche method, on the energy equation
set beta heat = 10
# Solid temperature
subsection solid temperature
set Function expression = 0
end
# Post-processing parameters
#=================================================
# Force and torque calculation on solid
set calculate force on solid = false
set solid force name = force_solid
set calculate torque on solid = false
set solid torque name = torque_solid
# Center of rotation, used for torque calculation
subsection center of rotation
set x = 0
set y = 0
# in 3D: set z = 0
end
# Simulation control parameters
#=================================================
# Enable stopping the simulation if Nitsche particles have been lost
set stop if particles lost = true
# Number of Nitsche (quadrature) points to insert in a 1D cell
set number quadrature points = 2
end
end
verbosity
: controls if Nitsche intermediate results are printed to the terminal.
Note
Even when verbosity = false
, Lethe produces additional files corresponding to the Nitsche immersed boundary:
the
<output-name>_solid_triangulation_<id>.pvd
, corresponding to the mesh of the solid with index<id>
;the
<output-name>_solid_particles_<id>.pvd
, corresponding to the discrete particles inserted at the Gauss points of the solid triangulation, for the index<id>
.
The solid particles enable the Nitsche restriction visualization, while the solid triangulation is used for animation purposes.
number of solids
: number of Nitsche solids in the simulation.
Warning
The number of solids must be specified explicitly. This is often a source of error.
Note
Each solid will then correspond to a subsection nitsche solid
.
subsection nitsche solid 0
: defines a solid object, with index0
, on which the Nitsche immersed boundary is applied. Multiple solids can be added in the same fashion (subsection nitsche solid 1
etc.).subsection mesh
: defines the solid mesh used to apply Nitsche immersed boundary. The syntax is the same as that of the mesh subsection, see Mesh for more details.
Warning
If set type = gmsh
and a simplex mesh is given, do not forget to set simplex = true
(default value is false
)
Tip
The solid mesh should have a characteristic size of the same order as the fluid dynamics mesh. Using a finer mesh will not cause any problem, but will increase the computational cost without benefits.
beta
: penalization term, which controls the intensity of the Nitsche method application on the velocity of the fluid region. Higher values ofbeta
lead to stiffer problems but prevent the fluid from penetrating the solid.
Tip
For flows with Reynolds numbers \(Re > 1\), we found that setting beta = 10
(default value) leads to satisfactory results.
For beta = 0
, the solid has no influence on the flow: this value can be used for debugging purposes.
In case of a static solid, beta
parameter has to be greatly increased, up to 100
or 1000
, to prevent the fluid moving through the solid. For highly viscous flows, even higher values of beta
could be used to compensate for the larger shear stresses acting on the immersed solid.
subsection solid velocity
: defines the velocity of the solid mesh. This velocity is defined by aFunction expression
and can depend on both space and time.
Examples of solid velocity Function expression
:
set Function expression = 2 ; 0 ; 0
: 3D simulation, the solid is translating along the x-axis, with a norm of \(2\).
set Function expression = 3 ; -4
: 2D simulation, the solid is translating along a composition of the x and y-axes, with a norm of \(\sqrt(3^2+(-4)^2) = 5\).
set Function expression = -y ; x
: 2D simulation, the solid is rotating in the anti-clockwise direction around the origin, with a tangential velocity of norm \(1\).
Tip
The unit of the solid velocity value depends on the units of the mesh: if the mesh is build with the meter as the base unit, the velocity will be in \(m/s\).
enable particles motion
: controls if the immersed boundary moves within the fluid domain.
Tip
For a rotating cylinder, the Nitsche solid
rotates but the boundary location does not change. For such static boundaries, the shape does not have to move within the fluid and this option can be set to false
. This saves significant computational time.
Warning
When the solid velocity
leads to a motion of the solid, use enable particles motion = true
.
particles sub iterations
: number of sub iterations for the motion of the particles.
Tip
When set particles sub iterations = 1
(default value), there is no sub iteration: the motion of the particle is solved at each time step
(see Simulation Control).
In case of particle loss, this parameter can be increased (set particles sub iterations = 5
is a good start value) to ensure that particles are always located efficiently as they move through the cell. This increases the computational cost, but not as much as lowering the time step
(in Simulation Control) would.
Generally, it is a good practice to have sufficient particles sub iterations
so as to ensure that particles do not move more than half a cell during a particle sub iteration.
enable heat boundary condition
: controls if a heat boundary condition is imposed on the Nitsche immersed boundary. Use to attribute a given temperature to the Nitsche solid (defined insubsection solid temperature
).beta heat
: penalization term on the heat equation, which controls the intensity of the Nitsche method application on the temperature of the fluid region. Higher values ofbeta
forces the fluid near the solid to have a temperature matching the one of the solid (defined insubsection solid temperature
).subsection solid temperature
: defines the temperature of the solid mesh. This temperature is defined by aFunction expression
and can depend on both space and time. This parameter is used only if:enable heat boundary condition = true
, andheat transfert = true
in Multiphysics subsection.
calculate force on solid
: controls if force calculation on the immersed geometry is enabled. If set totrue
, forces will written in the output file namedsolid force name
, with the solid index automatically added at the end.calculate torque on solid
: controls if torque calculation on the immersed geometry is enabled. If set totrue
, torques will be written in the file in the output file namedsolid torque name
, with the solid index automatically added at the end.subsection center of rotation
: \((x, y)\) coordinates of the center of the rotation, used for torque calculation. Default center of rotation is (0, 0). Addset z
for 3D simulations.stop if particles lost
: controls if the simulation is stopped when Nitsche particles have been lost. Iffalse
, the simulation will continue.
Tip
Particle loss can happen when particles move through multiple cells during a time step. This can be caused by a big time step
(see Simulation Control), a high fluid mesh refinement
(see Mesh), or a high CFL. To prevent particle loss, try increasing the number of particles sub iterations
.
number quadrature points
: number of Nitsche (quadrature) points to insert in a 1D cell. The number of inserted points will be higher for higher dimensions. Increasing this number will lead to a higher points density inside the solid.
See also
- The Nitsche immersed boundary method is used in the examples: