CFD_DOMAIN

CFD

*CFD_DOMAIN
"Optional title"
coid, scheme
entype, enid, $\Delta$, air, geo_update, xsmooth, blocking_update
$x_0$, $y_0$, $z_0$, $x_1$, $y_1$, $z_1$
bc${}_{x0}$, bc${}_{y0}$, bc${}_{z0}$, bc${}_{x1}$, bc${}_{y1}$, bc${}_{z1}$
$t_{end}$

Parameter definition

Variable
Description
coid
Command ID
scheme
Advection scheme
options:
1 $\rightarrow$ Mixed 1st and 2nd order
2 $\rightarrow$ Full 2nd order
default: 1
entype
Structure entity type for fluid structure interaction
options: P, PS, ALL
enid
Structure entity ID
$\Delta$
Cell size
air
Option to begin with an air filled domain (before adding other materials)
options:
0 $\rightarrow$ domain is empty
1 $\rightarrow$ domain is filled with air
geo_update
Coupling geometry update interval (number of time steps)
default: no update (geometry is assumed to be fixed in space)
xsmooth
Spatial pressure smoothing level
default: inactive
blocking_update
Blocking update interval (number of time steps)
default: no blocking
$x_0$
CFD domain minimum x-coordinate
$y_0$
CFD domain minimum y-coordinate
$z_0$
CFD domain minimum z-coordinate
$x_1$
CFD domain maximum x-coordinate
$y_1$
CFD domain maximum y-coordinate
$z_1$
CFD domain maximum z-coordinate
bc${}_{x0}$
Boundary condition at $x=x_0$
options:
0 $\rightarrow$ non-reflecting boundary
1 $\rightarrow$ reflecting boundary
bc${}_{y0}$
Boundary condition at $y=y_0$
options:
0 $\rightarrow$ non-reflecting boundary
1 $\rightarrow$ reflecting boundary
bc${}_{z0}$
Boundary condition at $z=z_0$
options:
0 $\rightarrow$ non-reflecting boundary
1 $\rightarrow$ reflecting boundary
bc${}_{x1}$
Boundary condition at $x=x_1$
options:
0 $\rightarrow$ non-reflecting boundary
1 $\rightarrow$ reflecting boundary
bc${}_{y1}$
Boundary condition at $y=y_1$
options:
0 $\rightarrow$ non-reflecting boundary
1 $\rightarrow$ reflecting boundary
bc${}_{z1}$
Boundary condition at $z=z_1$
options:
0 $\rightarrow$ non-reflecting boundary
1 $\rightarrow$ reflecting boundary
$t_{end}$
Deactivation time
default: no CFD deactivation time

Description

CFD_DOMAIN activates a built-in CFD solver for compressible flow. The command is used to define the computational domain (location in space and boundary conditions), grid size, and to specify the interaction with embedded FE parts.

Accompanying commands are CFD_GAS, CFD_HE and CFD_DETONATION. These commands are used to fill the CFD domain with gases and high explosives and to define detonation points (if applicable).

The spatial pressure smoothing option is used to filter noise in the CFD-FE coupling interface. Typical xsmooth values range between 0 (no smooting) and 10 (strong smoothing).

CFD cells that are intersected by the Finite Element structure are treated as dead (empty). The geo_update parameter controls the interval (number of time steps) at which the intersection is updated.

The blocking_update parameter activates a check that prevents interaction between CFD cells and Finite Element faces shielded by (located behind) other faces. For performance reasons, this check is inactive by deafult.

Full coupling is automatically activated between CFD and SPH and between CFD and discrete soil particles.

Example

Air blast loaded rigid plate

A simple example with a TNT charge (diameter $60 \mathrm{mm}$) detonated above a rigid plate at stand-off distance $200 \mathrm{mm}$.

Alternative 1 - air is defined with the command CFD_GAS

*UNIT_SYSTEM SI *PARAMETER L = 1.0, "CFD domain size" W = 0.3, "plate size" h = 0.05, "plate thickness" soff = 0.2, "stand-off distance" R = 0.03, "charge radius" delta = 0.008, "grid size" *TIME 2.0e-4 # # --- MESH --- # *COMPONENT_BOX "plate" 1, 1, 10, 10, 1 [-%W/2], [-%W/2], [-%h], [%W/2], [%W/2], 0 # # --- MATERIAL --- # *MAT_RIGID 1, 7800.0 # # --- PART --- # *PART "plate" 1, 1 # # --- CFD --- # *CFD_DOMAIN "air blast" 1 ALL, 0, [%delta] [-%L/2], [-%L/2], [-%L/2], [%L/2], [%L/2], [%L/2] *CFD_GAS "air" 1 AIR, 1 *GEOMETRY_BOX 1 [-%L/2], [-%L/2], [-%L/2], [%L/2], [%L/2], [%L/2] *CFD_HE "TNT" 2 TNT, 2 *GEOMETRY_SPHERE 2 0, 0, [%soff], [%R] *CFD_DETONATION 1 0, 0, [%soff] *END

Alternative 2 - global domain is filled with air by setting air=1 in CFD_DOMAIN

*UNIT_SYSTEM SI *PARAMETER L = 1.0, "CFD domain size" W = 0.3, "plate size" h = 0.05, "plate thickness" soff = 0.2, "stand-off distance" R = 0.03, "charge radius" delta = 0.008, "grid size" air = 1, "fill global domain with air" *TIME 2.0e-4 # # --- MESH --- # *COMPONENT_BOX "plate" 1, 1, 10, 10, 1 [-%W/2], [-%W/2], [-%h], [%W/2], [%W/2], 0 # # --- MATERIAL --- # *MAT_RIGID 1, 7800.0 # # --- PART --- # *PART "plate" 1, 1 # # --- CFD --- # *CFD_DOMAIN "air blast" 1 ALL, 0, [%delta], [%air] [-%L/2], [-%L/2], [-%L/2], [%L/2], [%L/2], [%L/2] *CFD_HE "TNT" 2 TNT, 2 *GEOMETRY_SPHERE 2 0, 0, [%soff], [%R] *CFD_DETONATION 1 0, 0, [%soff] *END
Restart and mapping from fine to coarse grid

Large scaled distances are computationally challenging. The initial shock wave formation might require a grid resolution that is too fine to be used for the global domain. A possible solution is to model the process in two steps:

Step 1 - detonation and initial blast wave formation

This initial part of the process is modeled with a fine grid. Symmetry conditions are utilized. At termination a file impetus_state_cfd1.bin is generated. This file contains information about the final CFD state, i.e. densities, energies and velocities in all cells of the CFD grid.

*UNIT_SYSTEM SI *PARAMETER L = 0.5, "CFD domain size" R = 0.03, "charge radius" delta = 0.005, "grid size" air = 1, "fill global domain with air" *TIME 2.0e-4 # # --- CFD --- # *CFD_DOMAIN "air blast" 1 ALL, 0, [%delta], [%air] 0, 0, 0, [%L], [%L], [%L] 1, 1, 1, 0, 0, 0 *CFD_HE "C4" 1 C4, 1 *GEOMETRY_SPHERE 1 0, 0, 0, [%R] *CFD_DETONATION 1 0, 0, 0 *END

Step 2 - blast wave propagation

The results from Step 1 are imported and mapped to a corser grid and the shock wave propagation can be tracked over larger distances. Note that the solver identifies the 1/8 symmetry conditions from Step 1 and automatically mirrors the results to full 3D. The binary state file from Step 1 (impetus_state_cfd1.bin) is included from cfd_data.k. Hence, the positioning parameters in the INCLUDE command will also control the positioning of the data in the binary state file.

*UNIT_SYSTEM SI *PARAMETER L = 4.0, "CFD domain size" W = 1.0, "plate size" h = 0.05, "plate thickness" soff = 1.0, "stand-off distance" delta = 0.02, "grid size" air = 1, "fill global domain with air" *TIME 2.0e-3 # # --- MESH --- # *COMPONENT_BOX "plate" 1, 1, 10, 10, 1 [-%W/2], [-%W/2], [-%soff/2-%h], [%W/2], [%W/2], [-%soff/2] # # --- MATERIAL --- # *MAT_RIGID 1, 7800.0 # # --- PART --- # *PART "plate" 1, 1 # # --- CFD --- # *INCLUDE cfd_data.k 1, 1, 1 0, 0, 0, 0, 0, [%soff/2] *CFD_DOMAIN "air blast" 1 ALL, 0, [%delta], [%air] [-%L/2], [-%L/2], [-%L/2], [%L/2], [%L/2], [%L/2] *END
# # File: cfd_data.k *INCLUDE_BINARY ../Step_1/impetus_state_cfd1.bin *END