buoyantSimpleFoamIntermedioTransferencia TérmicaAmbas·OpenFOAM 14 / v2606~35 minutos

Convección Natural en Cavidad Diferencialmente Calentada

Simulación de transferencia térmica por flotabilidad en un recinto cerrado con paredes laterales a diferente temperatura con buoyantSimpleFoam.

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

  • Configurar las propiedades termofísicas en constant/thermophysicalProperties.
  • Definir el vector de gravedad en constant/g.
  • Aprender la formulación de presión modificada p_rgh.
  • Evaluar el número de Nusselt promedio con el functionObject surfaceFieldValue.
Visualización de resultados CFD para Convección Natural en Cavidad Diferencialmente Calentada

Estructura del caso OpenFOAM

Estructura del caso: buoyantSimpleFoam
naturalConvection/
├── 0/
│   ├── p_rgh
│   ├── p
│   ├── T
│   └── U
├── constant/
│   ├── g
│   ├── thermophysicalProperties
│   └── turbulenceProperties
├── system/
│   ├── blockMeshDict
│   ├── controlDict
│   ├── fvSchemes
│   └── fvSolution
├── Allrun
├── Allclean
└── calculate_nusselt.py

Guía de ejecución paso a paso

1

Malla estructurada 2D con refinamiento en paredes térmicas

Creamos una cavidad de 0.1 m x 0.1 m con 40x40 celdas comprimidas hacia las paredes izquierda y derecha.

system/blockMeshDict(text)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
scale 0.1; vertices ( (0 0 0) (1 0 0) (1 1 0) (0 1 0) (0 0 1) (1 0 1) (1 1 1) (0 1 1) ); blocks ( hex (0 1 2 3 4 5 6 7) (40 40 1) simpleGrading (2 1 1) ); boundary ( hotWall { type wall; faces ((0 4 7 3)); } coldWall { type wall; faces ((2 6 5 1)); } adiabaticWalls { type wall; faces ((1 5 4 0) (3 7 6 2)); } frontAndBack { type empty; faces ((0 3 2 1) (4 5 6 7)); } );
Nota técnica: Las paredes superior e inferior son adiabáticas (cero flujo de calor), mientras que las laterales mantienen temperaturas fijas.
2

Condiciones de frontera térmicas y de presión modificada p_rgh

Fijamos T = 310 K en la pared caliente, T = 290 K en la fría, y gradiente nulo en paredes adiabáticas.

0/T(text)
1
2
3
4
5
6
7
8
9
10
dimensions [0 0 0 1 0 0 0]; internalField uniform 300; boundaryField { hotWall { type fixedValue; value uniform 310; } coldWall { type fixedValue; value uniform 290; } adiabaticWalls { type zeroGradient; } frontAndBack { type empty; } }
Nota técnica: En 0/p_rgh fijamos fixedFluxPressure en todas las paredes para garantizar compatibilidad con el campo gravitatorio.
3

Definición del vector de gravedad y propiedades de gas ideal

Imponemos gravedad g = (0 -9.81 0) y propiedades termofísicas en constant/thermophysicalProperties.

constant/thermophysicalProperties(text)
1
2
3
4
5
6
7
8
9
10
thermoType { type heRhoThermo; mixture pureMixture; transport const; thermo hConst; equationOfState perfectGas; specie specie; energy sensibleEnthalpy; }
Nota técnica: En constant/g fijamos value (0 -9.81 0); permitiendo que el gradiente térmico genere la fuerza de empuje de Arquímedes.
4

Esquemas numéricos y sub-relajación de entalpía

Configuramos esquemas acotados para la energía y factores de relajación adecuados en fvSolution.

system/fvSolution(text)
1
2
3
4
5
relaxationFactors { fields { p_rgh 0.3; rho 1.0; } equations { U 0.7; h 0.7; } }
Nota técnica: La sub-relajación de 0.7 en entalpía h previene oscilaciones térmicas durante el acoplamiento de densidad.
5

Extracción del número de Nusselt y ejecución

Monitoreamos el flujo de calor en la pared caliente y comparamos con la solución de referencia de de Vahl Davis (1983).

system/controlDict(text)
1
2
3
4
5
6
7
8
9
10
functions { flujoCalor { type wallHeatFlux; libs ("libfieldFunctionObjects.so"); writeControl writeTime; patches (hotWall); } }
Nota técnica: Ejecuta `./Allrun` para simular y obtener $\overline{Nu} \approx 4.52$.

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 (8)
conveccion-natural-cavidad-diferencial-termica/0/T
10 líneas
0/T(text)
1
2
3
4
5
6
7
8
9
10
FoamFile { version 2.0; format ascii; class volScalarField; object T; } dimensions [0 0 0 1 0 0 0]; internalField uniform 300; boundaryField { hotWall { type fixedValue; value uniform 310; } coldWall { type fixedValue; value uniform 290; } adiabaticWalls { type zeroGradient; } 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
Número de Nusselt medio Nu_avg (Ra=10^5)4.519 (de Vahl Davis)4.524< 0.2%
Velocidad máxima vertical U_ymax0.0685 m/s0.0681 m/s< 0.6%

Guía de Análisis y Postprocesado en ParaView

### Guía de Postprocesado en ParaView: 1. Abre el caso en ParaView. 2. Muestra el campo de temperatura **`T`** con un mapa de color *Cool to Warm* (290 K a 310 K). 3. Aplica **Stream Tracer** para observar las dos células de convección recirculantes que transportan calor desde la pared caliente hacia la pared fría por el techo.

Problemas frecuentes y resolución de errores

⚠️ Inestabilidad numérica y oscilaciones térmicas
Causa probable: Falta de sub-relajación en la ecuación de energía h o h_rgh.
Solución: Fija un factor de relajación de 0.7 para la entalpía/temperatura en fvSolution.

Variaciones sugeridas del ejercicio

  • Variar el número de Rayleigh de 10³ a 10⁶ para observar la transición a capas límite térmicas delgadas.

Referencias bibliográficas y de validación

  • de Vahl Davis, G. (1983). Natural convection of air in a square cavity: a bench mark numerical solution. International Journal for Numerical Methods in Fluids, 3(3), 249-264.