Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
E. Martín1, M. Meis1,2y F. Varas1,3
1Univ. de Vigo,2Vicus Desarrollos Tecnológicos y3Univ. Politécnica de Madrid
Simulación en dinámica de fluidos con OpenFOAM Vigo, 26 y 27 de Enero de 2012
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Outline
1 Modelos físicos en OpenFOAM Principales grupos de modelos Otros grupos de modelos
2 Esquemas numéricos en OpenFOAM Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Plan
1 Modelos físicos en OpenFOAM Principales grupos de modelos Otros grupos de modelos
2 Esquemas numéricos en OpenFOAM Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Modelos físicos en OpenFOAM
Principales grupos de modelos modelos básicos
flujos incompresibles flujos compresibles transferencia de calor flujos multifásicos flujos reactivos
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Modelos físicos en OpenFOAM (cont.)
Otros grupos de modelos transporte de partículas electromagnetismo dinámica molecular mecánica de sólidos otros
Referencias
http://www.openfoam.com/features
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Plan
1 Modelos físicos en OpenFOAM Principales grupos de modelos Otros grupos de modelos
2 Esquemas numéricos en OpenFOAM Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Modelos básicos
Modelos básicos en OpenFOAM Flujos potenciales
Ecuación de transporte
ArchivoscalarTransportFoam.C
solve ( fvm::ddt(T) + fvm::div(phi,T) -
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos incompresibles
Modelos incompresibles en OpenFOAM flujos laminares
flujos turbulentos
Reynolds Averaged Navier-Stokes (RANS):
http://www.openfoam.com/features/RAS.php Large Eddy Simulation (LES):
http://www.openfoam.com/features/LES.php
Principales solvers
icoFoam: flujo transitorio laminar
pisoFoam: flujo transitorio laminar/turbulento
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos incompresibles (cont.)
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos compresibles
Modelos compresibles en OpenFOAM
flujos subsónicos laminares/turbulentos (RANS) flujos transónicos/supersónicos
Principales solvers
rhoSimpleFoam: flujo estacionario laminar/turbulento rhoPimpleFoam: flujo transitorio laminar/turbulento sonicFoam: flujo transitorio transónico/supersónico
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos compresibles (cont.)
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos con transferencia de calor
Modelos de flujos con transferencia de calor en OpenFOAM flujos incompresibles (hipótesis de Boussinesq)
flujos compresibles
Principales solvers
buoyantBoussinesqSimpleFoam
flujo estacionario laminar/turbulento incompresible buoyantBoussinesqPimpleFoam
flujo transitorio laminar/turbulento incompresible buoyantSimpleFoam
flujo estacionario laminar/turbulento compresible
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos con transferencia de calor (cont.)
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos multifásicos
Algunos modelos multifásicos en OpenFOAM flujos incompresibles de fluidos inmiscibles flujos compresibles de fluidos inmiscibles flujos bifásicos con fase dispersa
Principales solvers interFoam
flujo laminar/turbul. de dos fluidos incompresibles (VOF) compressibleInterFoam
flujo laminar/turbulento de dos fluidos compresibles (VOF)
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos multifásicos
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos multifásicos
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos reactivos
Modelos reactivos en OpenFOAM flujos reactivos (genéricos) modelos de llamas premezcladas modelos de llamas de difusión combustión de sprays
Algunos solvers
reactingFoam: solver genérico para flujos reactivos fireFoam: solver para llamas de difusión (incl. fuentes lagrangianas, pirólisis, etc.)
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Flujos reactivos
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Plan
1 Modelos físicos en OpenFOAM Principales grupos de modelos Otros grupos de modelos
2 Esquemas numéricos en OpenFOAM Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Transporte de partículas
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Otras físicas
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Principales grupos de modelos Otros grupos de modelos
Fuentes de información
OpenCFD
Tutoriales de OpenFOAM Código fuente de OpenFOAM
Comunidad de usuarios
http://openfoamwiki.net
Curso de CFD basado en OpenFOAM en:
http://www.tfd.chalmers.se/˜hani
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Plan
1 Modelos físicos en OpenFOAM Principales grupos de modelos Otros grupos de modelos
2 Esquemas numéricos en OpenFOAM Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Esquemas numéricos en OpenFOAM
Discretización numérica
discretización espacial y temporal discretización espacial
tratamiento de términos convectivos discretización temporal
algoritmos globales de resolución SIMPLE
PISO
resolución de sistemas lineales
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Plan
1 Modelos físicos en OpenFOAM Principales grupos de modelos Otros grupos de modelos
2 Esquemas numéricos en OpenFOAM Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Formulación de modelos
Ecuación de conservación genérica (forma diferencial)
∂
∂t(ρΦ)
| {z } acumulación
+div(ρ~UΦ)
| {z } convección
−div(ρΓΦ∇Φ)~
| {z } difusión
= S(Φ)
| {z } fuente
Formulación integral: balance sobre volumen de control V
d dt
Z
V
ρΦdV + Z
∂V
ρ~UΦ ·d~S− Z
∂V
ρΓΦ∇Φ ·~ d~S= Z
V
S(Φ)dV
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Discretización mediante volúmenes finitos
Formulación de balance sobre celdaΩ
d dt
Z
Ω
ρΦdV + Z
Γ
ρ~UΦ ·d~S− Z
Γ
ρΓΦ∇Φ ·~ d~S= Z
Ω
S(Φ)dV
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Discretización mediante volúmenes finitos
Aproximación mediante volúmenes finitos
A partir de aproximaciones deΦen P se debe obtener:
aproximación deR
ΩF(Φ)dV aproximación deR
ΓG(Φ) ·~ d~S
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Integración sobre celdas
Aproximación de integral sobre celdaΩ
F(~x) =FP+ (~∇F)P· (~x− ~xP) +O(||~x − ~xP||2) Z
Ω
FdΩ ≃ Z
Ω
(FP+ (~∇F)P· (~x − ~xP))dΩ =FPVP
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Integración sobre caras
Aproximación de integral sobre caraΓ
G(~~ x) = ~Gf + (~∇~G)f(~x− ~xf) +O(||~x− ~xf||2) Z
Γ
G~ ·d~S≃ Z
Γ
(~Gf + (~∇~G)f(~x − ~xf)) ·dS~ = ~Gf · ~Sf
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos difusivos
Cálculo de flujo difusivo Z
Γ
ρΓΦ∇Φ ·~ d~S≃ (ρΓΦ)f(~∇Φ)f · ~Sf (~∇Φ)f · ~Sf ≃ |~Sf|ΦN− ΦP
|~d|
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos difusivos
Cálculo de flujo difusivo (malla general) Z
Γ
ρΓΦ∇Φ ·~ d~S≃ (ρΓΦ)f(~∇Φ)f · ~Sf
(~∇Φ)f =fx(~∇Φ)P+ (1−fx)(~∇Φ)N con (~∇Φ)P ≃ 1 VP
X
f
ΦfS~f
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos difusivos
Implementación práctica
Esquema anterior produce stencil grande
(matrices menos huecas y mayor consumo de memoria) En práctica se introducen correcciones
(~∇Φ)f · ~Sf = ~∆ · (~∇Φ)f
| {z }
+ ~k· (~∇Φ)f
| {z }
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos fuente
Cálculo de términos fuente términos lineales:
Z
Ω
S(Φ)dV ≃ (S(Φ))PVP =SpΦPVP términos no lineales (linealización):
Z
Ω
S(Φ)dV ≃ (S(Φ))PVP ≃S0PVP+S1PΦPVP
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Problema estacionario unidimensional sin fuentes d
dx(ρUΦ) − d dx(ρΓΦ
dΦ dx ) =0 Φ(0) = Φ0 Φ(L) =0
Forma adimensional (ρ, U yΓΦ constantes) dΦˆ
dxˆ − 1 Pe
d2Φˆ dxˆ2 =0 Φ(0) =ˆ 1 Φ(1) =ˆ 0
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Solución analítica de problema modelo
Φ(x) =ˆ exp(Pe x) −exp(Pe) 1−exp(Pe)
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Formulación de balances sobre celda i–ésima
Z xi+1/2
xi
−1/2
dΦˆ dxˆdxˆ−
Z xi+1/2
xi
−1/2
1 Pe
d dxˆ(dΦˆ
dxˆ)dxˆ=0
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Tratamiento de términos difusivos
−
Z xi+1/2
xi−1/2
1 Pe
d dxˆ(dΦˆ
dˆx)dxˆ= 1 Pe(dΦˆ
dˆx|xi+1/2−dΦˆ
dxˆ|xi
−1/2)
≃ 1
(Φˆi+1− ˆΦi
−Φˆi− ˆΦi−1
) = 1 Φˆi+1−2Φˆi+ ˆΦi−1
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Aproximación de términos convectivos
Z xi+1/2
xi
−1/2
dΦˆ
dˆxdxˆ= ˆΦ|xi+1/2− ˆΦ|xi
−1/2
≃ Φˆi+1+ ˆΦi
−Φˆi+ ˆΦi−1
= Φˆi+1− ˆΦi−1
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Balance en primera celda (condición de contorno en x1/2) Contribución de término difusivo
− Z x3/2
x1/2
1 Pe
d dxˆ(dΦˆ
dˆx)dxˆ= 1 Pe(dΦˆ
dxˆ|x3/2−dΦˆ dˆx|x1/2)
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Balance en primera celda (condición de contorno en x1/2) Contribución de término convectivo
Z x3/2
x
dΦˆ
dxˆdxˆ= ˆΦ|x3/2− ˆΦ|x1/2 ≃ Φˆ1+ ˆΦ2 2 − ˆΦcc
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Una aproximación estable de términos convectivos
Z xi+1/2 dΦˆ
dxˆ= ˆΦ|x − ˆΦ|x ≃ ˆΦi− ˆΦ|i−1
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de términos convectivos
Un ejemplo elemental
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de flujos convectivos
Contribución de flujos convectivos
d dt
Z
Ω
ρΦdV + Z
Γ
ρ~UΦ ·d~S
| {z }
− Z
Γ
ρΓΦ∇Φ ·~ d~S= Z
Ω
S(Φ)dV
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de flujos convectivos
Esquemas básicos
aproximación centrada (central differencing) Φf = (Φf)CD =fxΦP+ (1−fx)ΦN
aproximación descentrada (upwind differencing) Φf = (Φf)UD = ΦP
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Aproximación de flujos convectivos
Otras aproximaciones de flujos convectivos descentrado de orden superior:
linear upwinding QUICK
esquemas TVD y limitadores de flujo:
van Leer SUPERBEE MINMOD MUSCL
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Control de discretización espacial en OpenFOAM
Tipos de esquemas de discretización espacial
Interpolación general (obtiene valores sobre aristas/caras) interpolationSchemes
Discretización de términos convectivos:
divSchemes
Discretización de términos difusivos:
laplacianSchemes
Discretización de términos en gradiente:
gradSchemes
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Control de discretización espacial
Esquemas de interpolación sobre aristas/cara
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Control de discretización espacial
Términos convectivos: divSchemes
Discretización de términos de formadiv(ρ~UU)~ mediante:
div(phi,U) Gauss InterpScheme dondephicorresponde aφ = ρ~~ U Esquemas (usuales) de interpolación:
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Control de discretización espacial
Términos difusivos: laplacianSchemes
Discretización de términos de formadiv(ν ~∇U)mediante:
laplacian(nu,U) Gauss InterpScheme SnScheme Esquema de interpolación según lista general
Esquemas de aproximación de normales:
Ejemplo:
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Control de discretización espacial
Términos en gradiente: gradSchemes
Más información
OpenFOAM User’s Guide
OpenFOAM Programmer’s Guide
OpenFOAM wiki en: http://openfoamwiki.net
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Integración temporal
Formulación de balance sobre celdaΩ
d dt
Z
Ω
ρΦdV + Z
Γ
ρ~UΦ ·d~S− Z
Γ
ρΓΦ∇Φ ·~ d~S= Z
Ω
S(Φ)dV
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Integración temporal
Formulación semidiscretizada en espacio
ρPVPdΦP dt +X
f
FΦf −X
f
(ρΓ)f~S· (~∇Φ)f =S0VP+S1VPΦP
Esquemas de discretización temporal Euler implícito
Esquema BDF de orden 2 Crank-Nicolson
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Integración temporal
Método de Euler implícito
ρPVPΦnP− Φ0P
∆t +X
f
FΦnf −X
f
(ρΓ)fS~· (~∇Φ)nf =S0VP+S1VPΦnP
Estabilidad del esquema
incondicionalmente estable
sobreamortiguamiento si CFL mucho mayor que 1
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Integración temporal
Método BDF de orden 2
ρPVP3/2ΦnP −2Φ0P+1/2Φ00P
∆t +X
f
FΦnf −X
f
(ρΓ)f~S· (~∇Φ)nf =S0VP+S1VPΦnP
Método de Crank–Nicolson ρPVPΦnP− ΦnP
∆t + 1 2
X
f
FΦnf −1 2
X
f
(ρΓ)f~S· (~∇Φ)nf
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Integración temporal
Implementación en OpenFOAM
términos implícitos (ensamblado de matriz):
fvm: finiteVolumeMethod
términos explícitos (ensamblado de vector):
fvc: finiteVolumeCalculus
Ecuación del calor enlaplacianFoam Integración con esquema implícito de
∂T
∂t − div(DT∇T~ ) =0
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Plan
1 Modelos físicos en OpenFOAM Principales grupos de modelos Otros grupos de modelos
2 Esquemas numéricos en OpenFOAM Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Dificultades en tratamiento de presión
Ecuaciones de Stokes
−µ∆~v + ~∇p=0 div~v =0
Formulación sobre celda (2D)
−X
f
Z
Γ
µ∂u
∂n dS+X
f
Z
Γ
pnx dS =0
−X
f
Z
Γ
µ∂v
∂n dS+X
f
Z
Γ
pny dS =0
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Dificultades en tratamiento de presión
Discretización de ecuación de Stokes
−µ(uE+uW +uN+uS−4uP) +h(pE−pW) =0
−µ(vE+vW +vN+vS−4vP) +h(pN−pS) =0 vN−vS+uE−uW =0
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Dificultades en tratamiento de presión
Ecuaciones de Stokes
−µ∆~v + ~∇p=0 div~v =0
Observación
Con balance nulo de fuerzas de viscosidad (µ∆~v =0):
p debe ser constante
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Dificultades en tratamiento de presión
−µ(uE+uW +uN+uS−4uP) +h(pE−pW) =0
−µ(vE+vW +vN+vS−4vP) +h(pN−pS) =0
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Dificultades en tratamiento de presión
Alternativas de esquemas numéricos estables uso de mallas decaladas (staggered grids):
- presión y velocidad no se aproximan en los mismos puntos - ejemplo: MAC (Marker–and–Cell)
métodos de proyección (o segregados):
- las ecuaciones se resuelven en varios pasos
- se separa conservación de momentos e incompresibilidad - ejemplo: PISO y SIMPLE
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Algoritmo SIMPLE
Semi–Implicit Method for Pressure–Linked Equations
Ecuaciones de Navier–Stokes incompresibles
∂~u
∂t + div(~u⊗ ~u) − div(ν ~∇~u) + ~∇p= ~0 div~u=0
Idea del algoritmo SIMPLE (para problema estacionario) se itera en tiempo (linealizando en tiempo anterior) en capa paso de tiempo:
se descomponen los campos en predicción y corrección se calcula una predicción de la velocidad
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Algoritmo SIMPLE
Descomposición de campos (predicción + corrección)
~u= ~u∗+ ~u′ p =pn+p∗
Ecuación de conservación de momentos
Despreciando términos cuadráticos y viscosos en~u′:
∂~u∗
∂t +∂~u′
∂t + div(~un⊗ ~u∗) − div(ν ~∇~u∗) + ~∇pn+ ~∇p∗ = ~0
Segregación de cálculos
∂~u∗
+ div(~un⊗ ~u∗) − div(ν ~∇~u∗) + ~∇pn= ~0
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Algoritmo SIMPLE
Etapa de predicción
Se calcula~u∗ solución de
∂~u∗
∂t + div(~un⊗ ~u∗) − div(ν ~∇~u∗) + ~∇pn= ~0
Etapa de corrección
Se calculan~u′ y p′ solución de
∂~u′
∂t + ~∇p′ = ~0
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Algoritmo SIMPLE
Resolución de Etapa de corrección
Se deduce un problema de Poisson para la presión (divergencia en ec. de conservación de momentos):
−∆p′= −∂
∂t(div~u∗)
con condiciones de contorno artificiales sobre p′ Con presión p′se calcula corrección de velocidad~u′:
∂~u′
+ ~∇p′ = ~0
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Algoritmo SIMPLE
Implementación del algoritmo SIMPLE
La etapa de predicción puede convertirse en explícita:
se retiene sólo diagonal del operador de discretización El algoritmo itera en (pseudo–) tiempo hasta convergencia:
justifica no considerar términos despreciados
En cálculo de presión se itera para retener correcciones no–ortogonales (evita aumento de banda de matriz) Se emplea relajación para mejorar la convergencia
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Algoritmo PISO
Pressure Implicit with Splitting of Operators
Adaptación de SIMPLE para problemas evolutivos
términos despreciados (en cálculo de predicción~u∗) no se cancelan en transitorio
términos truncados se incluyen en la corrección es preciso iterar en cálculo de correcciones
Esquema del algoritmo PISO
En cada paso de tiempo se resuelve:
Cálculo de predicción~u∗ en tn+1
Bucle de cálculo de corrección(~u′,p′)en t :
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Implementación de PISO en OpenFOAM
Estructura de solvericoFoam
while (runTime.loop()) # bucle temporal fvVectorMatrix UEqn ( fvm::ddt(U)
+fvm::div(phi,U)-fvm::laplacian(nu,U));
solve(UEqn == -fvc::grad(p)); # prediccion
# inicio bucle PISO:
for (int corr=0; corr<nCorr; corr++) adjustPhi(phi, U, p);
# inicio bucle calculo presion:
for (int nonOrth=0; nonOrth<=...
fvScalarMatrix pEqn (
fvm::laplacian(rAU, p)
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Plan
1 Modelos físicos en OpenFOAM Principales grupos de modelos Otros grupos de modelos
2 Esquemas numéricos en OpenFOAM Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Métodos (iterativos) de resolución métodos de Krylov:
método de gradiente conjugado método de gradiente biconjugado métodos multimalla:
métodos multimalla geométricos métodos multimalla algebraicos
Referencias
http://www.openfoam.com/features OpenFOAM User Guide (sección 4.5)
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Métodos de Krylov
Métodos disponibles
para matrices simétricas y definidas positivas:
mét. de gradiente conjugado (precondicionado):PCG para matrices generales:
mét. de gradiente biconjugado (precondicionado):PBiCG
Precondicionadores
factorizaciones incompletas: Cholesky (DIC) y LU (DILU) precondicionador diagonal (Jacobi): diagonal
métodos multimalla (geométrico/algebraico):
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Métodos multimalla
Métodos multimalla geométricos/algebraicos
usuario no necesita proporcionar jerarquía de mallas malla grosera construida a partir de directrices en:
nCoarsestCells,agglomerator control de suavizadores mediante:
smoother
nPreSwepng,nPostSwepng,nFinestSwepng control de niveles de multimalla con:
mergeLevels
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Un ejemplo: uso de icoFoam
SolvericoFoam
Transient solver for incompressible, laminar flow of Newtonian fluids
discretización basada en PISO
usado en Lid–driven cavity flow (tutorial en User’s Guide)
Código fuente deicoFoam
Para versión 1.7.1 instalada en/opt:
/opt/openfoam171/applications/solvers/...
incompressible/icoFoam/icoFoam.C
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Un ejemplo: uso de icoFoam
Opciones en archivofvSolution
Modelos físicos en OpenFOAM Esquemas numéricos en OpenFOAM
Discretización espacial y temporal Algoritmos numéricos de resolución Resolución de sistemas lineales
Un ejemplo: uso de icoFoam
Opciones en archivofvSchemes