Immersed-boundary Block¶
The Immersed-boundary Block defines how complex, arbitrarily shaped solid boundaries are embedded into the computational domain without the need for body-fitted meshing. It provides mechanisms for prescribing solid geometry, enforcing no-slip and impermeability conditions, and applying forcing terms that reconstruct the correct boundary behavior within a Cartesian or structured mesh. This block offers flexible tools for simulating moving bodies, various thermal boundary conditions, and geometries with deformations, while preserving the simplicity and efficiency of regular-grid discretizations.
Warning
This block is optional.
Flags Overview¶
Note
All flags and their description are included in the table below. A detailed description of which values are possible for each input flag follows.
| Flag | Required | Description |
|---|---|---|
IB_GEOMETRY |
No | determine whether to activate the direct-boundary immersed boundary method. |
IB_GHOST |
No | determine whether to activate the directional ghost-cell immersed boundary method. |
IB_NUMBER |
No | specify the number of immersed bodies in the domain. |
IB_RADIUS |
No | real values, specify the radius of the spherical body. |
IB_RADIUS |
No | real values, specify the radius of the spherical body. |
READ_SDF |
No | determine how the level-set function is obtained for the immersed geometry. |
IB_XVEL |
No | real values, pre-defined velocity component in \(x\) direction for moving geometries. |
IB_YVEL |
No | real values, pre-defined velocity component in \(y\) direction for moving geometries. |
IB_ZVEL |
No | real values, pre-defined velocity component in \(z\) direction for moving geometries. |
IB_WVEL |
No | real values, pre-defined rotating velocity for moving geometries. |
IB_DATA |
No | string variable, defines the name of a binary data file describing a specific geometry when READ_SDF=.true.. |
IB_DATA_TYPE |
No | integer values, geometry data type, 0 for Eulerian data (coinciding with the grid location), 1 for Lagrangian data (not coinciding with the grid location). |
PROJECTION_POINTS |
No | positive integer number from 1 to 4, determines the interpolation order from Lagrangian points to the Eulerian ones. |
IB_FLOW |
No | string variable, determines whether the flow is internal ('internal_flow') or external ('external_flow'). |
PIS_VEL |
No | Moving piston velocity, specified for motion along the \(x\) direction. |
IC_COMPRESS |
No | determine whether to simulate the internal combustion engine with moving piston; the default is .false.. |
IC_REACTION |
No | determine whether to simulate the reaction flow in the internal combustion engine; the default is .false.. |
DINO_TIME_REACTION |
No | the current physical time used for evaluating time-dependent immersed-boundary motion. |
ISOTHERMAL_IBM |
No | determine whether to activate the iso-thermal boundary condition. |
ADIABATIC_IBM |
No | determine whether to activate the adiabatic boundary condition. |
CHT_IBM |
No | determine whether to activate the conjugate heat transfer boundary condition. |
SOLID_RHO |
No | real values, specify the density of the solid material when CHT_IBM=.true.. |
SOLID_CONDUC |
No | real values, specify the thermal conductivity of the solid material when CHT_IBM=.true.. |
SOLID_CP |
No | real values, specify the specific heat capacity of the solid material when CHT_IBM=.true.. |
HEAT_SOURCE |
No | real values, specify the heat source term within the solid when CHT_IBM=.true.. |
Flags Details¶
IB_GEOMETRY
- Type: boolean
- Default: .false.
- Description: To use Direct boundary IBM, you should generate your own geometry data file. The employed DB-IBM can only deliver 0th-order accuracy. Therefore, with DB-IBM, be prepared to use enough grid points. Note: this method is not recommended any more in the current version of DINO.
IB_GHOST
- Type: boolean
- Default: .true.
- Description: An advanced ghost-cell immersed-boundary formulation that reconstructs boundary conditions using directional interpolation aligned with the discretization directions. This method provides a sharp and accurate representation of complex geometries, significantly reducing numerical diffusion near solid surfaces and offering improved stability over traditional direct-forcing approaches. Note: this is the recommended immersed-boundary method in the current version of the code.
IB_NUMBER
- Type: integer
- Default: 1
- Description: Currently, only spherical bodies are supported. For other geometrically regular bodies that can be described analytically, the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
IB_RADIUS
- Type: REAL
- Default: 25E-6
-
Description: It determines the radius of each sphere of the immersed boundary, the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
-
Description: Currently, only spherical bodies are supported. For other geometrically regular bodies that can be described analytically, the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
IB_RADIUS
- Type: REAL
- Default: 25E-6
- Description: It determines the radius of each sphere of the immersed boundary, the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
READ_SDF
- Type: boolean
- Default: .false.
- Description: Specify how the level-set function, typically a signed distance representation of the geometry, is obtained, either from an analytical expression (READ_SDF=.false.) or reconstructed from an STL surface mesh (READ_SDF=.true.) . If READ_SDF=.false., the level-set function is generated internally in dino_ib_mod_no_surface_reaction.f90 using the corresponding explicit function to describe the signed distance from each grid point to the boundary. If READ_SDF = .true., the level-set values are loaded from a binary file generated using the tools SDFGen and write_io_parallel located in $dino_home/TOOLS/SDF.
IB_XVEL
- Type: REAL
- Default: 0
- Description: It determines the pre-defined velocity component in \(x\) in case of moving IBM, the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
IB_YVEL
- Type: REAL
- Default: 0
- Description: It determines the pre-defined velocity component in \(y\) in case of moving IBM, the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
IB_ZVEL
- Type: REAL
- Default: 0
- Description: It determines the pre-defined velocity component in \(z\) in case of moving IBM, the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
IB_WVEL
- Type: REAL
- Default: 0
- Description: It determines a pre-defined rotating velocity for moving geometries, the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
IB_DATA
- Type: String
- Default: 'file_name_ibm.sdf'
- Description: It defines the name of a binary data file describing a specific geometry when READ_SDF=.true.., the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
IB_DATA_TYPE
- Type: integer
- Default: 0
- Description: Integer values define the geometry data type, 0 for Eulerian data (coinciding with the grid location), 1 for Lagrangian data (not coinciding with the grid location), the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
PROJECTION_POINTS
- Type: Integer
- Default: 1
- Description: It is a positive integer number from 1 to 4, determines the interpolation order from Lagrangian points to the Eulerian ones, the corresponding treatment can be modified in the relevant sections of dino_ib_mod_no_surface_reaction.f90 and/or dino_ib_mod_surface_reaction.f90
IB_FLOW
- Type: String
- Default: 'external_flow'
- Description: It determines whether the flow is internal ('internal_flow') or external ('external_flow').
PIS_VEL
- Type: REAL
- Default: 0
- Description: Sets the piston velocity in x-direction in an internal combustion engine simulation.
IC_COMPRESS
- Type: boolean
- Default: .false.
- Description: Activates the computation of a compression stroke of an internal combustion engine.
IC_REACTION
- Type: boolean
- Default: .false.
- Description: Activates the reactive flow simulation for an internal combustion engine simulation.
DINO_TIME_REACTION
- Type: REAL
- Default: 0
- Description: The current physical time used for evaluating time-dependent immersed-boundary motion.
ISOTHERMAL_IBM
- Type: boolean
- Default: .true.
- Description: It determines whether to activate the iso-thermal boundary condition.
ADIABATIC_IBM
- Type: boolean
- Default: .false.
- Description: It determines whether to activate the adiabatic boundary condition (wall normal gradient is zero).
CHT_IBM
- Type: boolean
- Default: .false.
- Description: It determines whether to activate the conjugate heat transfer boundary condition. For multilayer solid-fluid interface, the corresponding treatment can be modified in the subroutine CHT_ghost_solid of dino_ib_ghost_cht.f90.
SOLID_RHO
- Type: REAL
- Default: 2700.
- Description: It specifies the density of the solid material when CHT_IBM=.true..
SOLID_CONDUC
- Type: REAL
- Default: 237.0
- Description: It specifies the thermal conductivity of the solid material when CHT_IBM=.true..
SOLID_CP
- Type: REAL
- Default: 897.0
- Description: It specifies the specific heat capacity of the solid material when CHT_IBM=.true..
HEAT_SOURCE
- Type: REAL
- Default: 0.0
- Description: It specifies the heat source term within the solid when CHT_IBM=.true..
Example:¶
&NML_IMMERSED_BOUNDARY
IB_GEOMETRY=.false.
IB_GHOST=.FALSE.
IB_NUMBER = 1,
IB_RADIUS = 1.e-3,
READ_SDF=.true.
IB_XVEL = 0.d0,
IB_YVEL = 0.d0,
IB_ZVEL = 0.d0,
IB_WVEL = 0.d0,
IB_DATA='bb_wo_coflow_2dslab_3DX_6DZ_binary.sdf',
IB_DATA_TYPE=0,
PROJECTION_POINTS=1,
IB_FLOW='external_flow',
PIS_VEL = 41800,
IC_COMPRESS = .false.
IC_REACTION = .false.
DINO_TIME_REACTION = 0.D0,
ISOTHERMAL_IBM = .true.
ADIABATIC_IBM = .false.
CHT_IBM = .false.
SOLID_RHO = 2700.
SOLID_CONDUC=237.0,
SOLID_CP=897.0,
HEAT_SOURCE=0.0,
/