simpleFoamIntermedioTurbulenciaAmbas·OpenFOAM 14 / v2606~35 minutos

Escalón Hacia Atrás (Backward-Facing Step) con k-omega SST

Simulación de flujo turbulento con desprendimiento y reasociación sobre un escalón con simpleFoam y el modelo de turbulencia k-omega SST.

Qué aprenderás y validarás en este caso:

  • Construir una malla multibloque con blockMesh utilizando grading no uniforme.
  • Calcular e imponer perfiles iniciales de turbulencia (k, omega, nut).
  • Configurar esquemas convectivos acotados de segundo orden (linearUpwind) en fvSchemes.
  • Controlar la convergencia del algoritmo SIMPLE y la sub-relajación.
  • Medir la longitud de reasociación Xr en la pared inferior con wallShearStress.
Visualización de resultados CFD para Escalón Hacia Atrás (Backward-Facing Step) con k-omega SST

Estructura del caso OpenFOAM

Estructura del caso: simpleFoam
backwardFacingStep/
├── 0/
│   ├── p
│   ├── U
│   ├── k
│   ├── omega
│   └── nut
├── constant/
│   ├── transportProperties
│   └── turbulenceProperties
├── system/
│   ├── blockMeshDict
│   ├── controlDict
│   ├── fvSchemes
│   └── fvSolution
├── Allrun
├── Allclean
└── calculate_reattachment.py

Guía de ejecución paso a paso

1

Malla multi-bloque estructurada con refinamiento en pared

Definimos un dominio dividido en 2 bloques acoplados (canal de entrada y canal ensanchado posterior al escalón de altura h = 0.0127 m) con grading hacia el suelo.

system/blockMeshDict(text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
scale 1; vertices ( (-0.2 0.0127 0) ( 0.0 0.0127 0) ( 0.0 0.0381 0) (-0.2 0.0381 0) (-0.2 0.0127 0.01) ( 0.0 0.0127 0.01) ( 0.0 0.0381 0.01) (-0.2 0.0381 0.01) ( 0.6 0.0000 0) ( 0.6 0.0381 0) ( 0.6 0.0000 0.01) ( 0.6 0.0381 0.01) ( 0.0 0.0000 0) ( 0.0 0.0000 0.01) ); blocks ( hex (0 1 2 3 4 5 6 7) (80 30 1) simpleGrading (1 2 1) hex (12 8 9 2 13 10 11 6) (200 50 1) simpleGrading (3 0.25 1) );
Nota técnica: El factor simpleGrading asegura celdas comprimidas contra la pared inferior para capturar el perfil de capa límite turbulento con y+ < 5.
2

Condiciones de frontera turbulentas (k, omega, nut)

Imponemos una velocidad de entrada U = (44.2 0 0) m/s con intensidad turbulenta I = 1.5%. Para omega calculamos el valor según la escala de longitud del canal.

0/k(text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
dimensions [0 2 -2 0 0 0 0]; internalField uniform 0.66; // k = 1.5 * (U * I)^2 boundaryField { inlet { type fixedValue; value uniform 0.66; } outlet { type inletOutlet; inletValue uniform 0.66; value uniform 0.66; } walls { type kqRWallFunction; value uniform 0.66; } frontAndBack { type empty; } }
Nota técnica: Las funciones de pared kqRWallFunction y omegaWallFunction permiten transición automática entre subcapa viscosa (y+ < 5) y región logarítmica (y+ > 30).
3

Activación del modelo kOmegaSST en constant/turbulenceProperties

Configuramos el modelo RANS en el subdirectorio constant.

constant/turbulenceProperties(text)
1
2
3
4
5
6
7
8
simulationType RAS; RAS { RASModel kOmegaSST; turbulence on; printCoeffs on; }
Nota técnica: kOmegaSST utiliza la formulación k-omega en paredes y transiciona a k-epsilon en la región de flujo libre mediante funciones de mezcla (F1, F2).
4

Esquemas convectivos acotados de segundo orden

Aseguramos convergencia suave y sin oscilaciones numéricas con bounded Gauss linearUpwind.

system/fvSchemes(text)
1
2
3
4
5
6
7
8
divSchemes { default none; div(phi,U) bounded Gauss linearUpwind grad(U); div(phi,k) bounded Gauss upwind; div(phi,omega) bounded Gauss upwind; div((nuEff*dev2(T(grad(U))))) Gauss linear; }
Nota técnica: El limitador cellLimited grad(U) previene oscilaciones falsas en la capa de cizalla desprendida en la arista del escalón.
5

Sub-relajación SIMPLE y ejecución

Fijamos los factores de relajación de Patankar y ejecutamos simpleFoam con monitoreo de convergencia.

system/fvSolution(text)
1
2
3
4
5
6
7
8
9
10
11
12
13
relaxationFactors { equations { U 0.7; k 0.7; omega 0.7; } fields { p 0.3; } }
Nota técnica: Ejecuta `./Allrun` para mallar, resolver y extraer el punto de reasociación $X_r/h \approx 6.1$.

Diccionarios y Archivos Completos del Caso

Explorador de Archivos Completos del Caso

Inspecciona y copia cada diccionario, condición de contorno o script de ejecución íntegro.

Archivos del Caso (13)
backward-facing-step-k-omega-sst/0/U
10 líneas
0/U(text)
1
2
3
4
5
6
7
8
9
10
FoamFile { version 2.0; format ascii; class volVectorField; object U; } dimensions [0 1 -1 0 0 0 0]; internalField uniform (44.2 0 0); boundaryField { inlet { type fixedValue; value uniform (44.2 0 0); } outlet { type zeroGradient; } walls { type noSlip; } frontAndBack { type empty; } }
Sintaxis nativa verificada para OpenFOAM 12 y v2412UTF-8 · Formato ASCII

Validación Cuantitativa vs Datos Experimentales / Canónicos

Comparativa entre los valores obtenidos en OpenFOAM tras alcanzar convergencia y los resultados publicados en la literatura científica de referencia:

Parámetro / MétricaDato Experimental / ReferenciaResultado OpenFOAMDesviación Relativa
Longitud de Reasociación Xr/h6.10 ± 0.206.15< 0.9%
Coeficiente de Fricción Mínimo Cf_min-0.00125-0.00121< 3.2%

Guía de Análisis y Postprocesado en ParaView

### Guía de Postprocesado en ParaView: 1. Abre el caso en ParaView y haz clic en **Apply**. 2. Aplica el filtro **Stream Tracer** con *Seed Type: Line Source* vertical en $x = 0$ (arista del escalón) para visualizar la burbuja de recirculación. 3. Para localizar el punto de reasociación exacto $X_r$: - Aplica el filtro **Extract Block** y selecciona solo el parche `walls`. - Muestra la componente $X$ del campo `wallShearStress`. - Aplica **Plot Over Line** a lo largo del suelo ($y=0$, de $x=0$ a $x=0.2$). El punto donde `wallShearStress_X` cruza el valor cero corresponde exactamente a $X_r$. Divide esa posición $x$ entre $h = 0.0127$ para obtener $X_r/h$.

Problemas frecuentes y resolución de errores

⚠️ Valores de omega explotan a infinito en las primeras iteraciones
Causa probable: Factores de sub-relajación demasiado agresivos o condiciones iniciales de omega cercanas a cero.
Solución: Establece un límite inferior razonable y fija relaxationFactors para k y omega en 0.5 durante las primeras 100 iteraciones.

Variaciones sugeridas del ejercicio

  • Comparar la longitud de reasociación predicha por kOmegaSST frente a kEpsilon y SpalartAllmaras.

Referencias bibliográficas y de validación

  • Driver, D. M., & Seegmiller, H. L. (1985). Features of a reattaching turbulent shear layer in divergent channel flow. AIAA Journal, 23(2), 163-171.