Skip to content

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,
/