Sesión 2. Modelos y esquemas numéricos en OpenFOAM

Anuncio
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,2 y F. Varas1,3
1 Univ.
de Vigo, 2 Vicus Desarrollos Tecnológicos y 3 Univ. Politécnica de Madrid
Simulación en dinámica de fluidos con OpenFOAM
Vigo, 26 y 27 de Enero de 2012
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
OpenFOAM User Guide (sección 3.5)
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
Archivo scalarTransportFoam.C
solve ( fvm::ddt(T) + fvm::div(phi,T) fvm::laplacian(DT,T) );
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
simpleFoam: flujo estacionario laminar/turbulento
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
Modelos físicos en OpenFOAM
Esquemas numéricos en OpenFOAM
Principales grupos de modelos
Otros grupos de modelos
Flujos incompresibles (cont.)
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
Modelos físicos en OpenFOAM
Esquemas numéricos en OpenFOAM
Principales grupos de modelos
Otros grupos de modelos
Flujos compresibles (cont.)
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
buoyantPimpleFoam
flujo transitorio laminar/turbulento compresible
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
Modelos físicos en OpenFOAM
Esquemas numéricos en OpenFOAM
Principales grupos de modelos
Otros grupos de modelos
Flujos con transferencia de calor (cont.)
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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)
bubbleFoam
flujo multifásico con una fase dispersa
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
Modelos físicos en OpenFOAM
Esquemas numéricos en OpenFOAM
Principales grupos de modelos
Otros grupos de modelos
Flujos multifásicos
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
Modelos físicos en OpenFOAM
Esquemas numéricos en OpenFOAM
Principales grupos de modelos
Otros grupos de modelos
Flujos multifásicos
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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.)
XiFoam: solver para llamas premezcladas (modelos
específicos de turbulencia)
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
Modelos físicos en OpenFOAM
Esquemas numéricos en OpenFOAM
Principales grupos de modelos
Otros grupos de modelos
Flujos reactivos
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
Modelos físicos en OpenFOAM
Esquemas numéricos en OpenFOAM
Principales grupos de modelos
Otros grupos de modelos
Transporte de partículas
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
Modelos físicos en OpenFOAM
Esquemas numéricos en OpenFOAM
Principales grupos de modelos
Otros grupos de modelos
Otras físicas
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y 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
Formulación de modelos
Ecuación de conservación genérica (forma diferencial)
∂
(ρΦ)
|∂t {z }
~
~
− div(ρΓΦ ∇Φ)
= S(Φ)
+ div(ρUΦ)
{z
} | {z }
| {z } |
difusión
fuente
acumulación convección
Formulación integral: balance sobre volumen de control V
d
dt
Z
V
ρΦdV +
Z
~ −
~ · dS
ρUΦ
∂V
E. Martín, M. Meis y F. Varas
Z
~ =
~ · dS
ρΓΦ ∇Φ
∂V
Z
S(Φ)dV
V
Sesión 2. Modelos y 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 mediante volúmenes finitos
Formulación de balance sobre celda Ω
d
dt
Z
Ω
ρΦdV +
Z
~ −
~ · dS
ρUΦ
Γ
E. Martín, M. Meis y F. Varas
Z
~ =
~ · dS
ρΓΦ ∇Φ
Γ
Z
S(Φ)dV
Ω
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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:
R
aproximación de Ω F (Φ)dV
R ~
~
aproximación de G(Φ)
· dS
Γ
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 Ω
~ )P · (~x − ~xP ) + O(||~x − ~xP ||2 )
F (~x ) = FP + (∇F
Z
Z
~ )P · (~x − ~xP ))d Ω = FP VP
Fd Ω ≃ (FP + (∇F
Ω
Ω
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 Γ
Z
Γ
~ ~x ) = G
~ + (∇
~ (~x − ~x ) + O(||~x − ~x ||2 )
~ G)
G(
f
f
f
f
Z
~ f + (∇
~ f (~x − ~xf )) · d S
~ =G
~f ·S
~f
~ · dS
~ ≃ (G
~ G)
G
Γ
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
~ ≃ (ρΓΦ ) (∇Φ)
~
~ · dS
~ f ·S
ρΓΦ ∇Φ
f
f
Γ
~ f ≃ |S
~ f | ΦN − ΦP
~ f ·S
(∇Φ)
|~
d|
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
~ ≃ (ρΓΦ )f (∇Φ)
~f
~ · dS
~ f ·S
ρΓΦ ∇Φ
Γ
~ f = fx (∇Φ)
~ P + (1 − fx )(∇Φ)
~ N
(∇Φ)
con
~ P≃
(∇Φ)
1 X ~
Φf Sf
VP
f
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 = ∆
~ · (∇Φ)
~
~
~ f ·S
+ ~k · (∇Φ)
(∇Φ)
| {z }f | {z }f
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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(Φ))P VP = Sp ΦP VP
Ω
términos
Z no lineales (linealización):
S(Φ)dV ≃ (S(Φ))P VP ≃ S0P VP + S1P ΦP VP
Ω
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
dΦ
d
(ρUΦ) −
(ρΓΦ
)=0
dx
dx
dx
Φ(0) = Φ0
Φ(L) = 0
Forma adimensional (ρ, U y ΓΦ constantes)
d Φ̂
1 d 2 Φ̂
=0
−
d x̂
Pe d x̂ 2
Φ̂(0) = 1
donde Pe =
Φ̂(1) = 0
LU
ΓΦ
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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)
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
Z xi+1/2
1 d d Φ̂
d Φ̂
d x̂ −
(
)d x̂ = 0
d
x̂
Pe
d x̂ d x̂
xi−1/2
xi−1/2
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
1 d d Φ̂
1 d Φ̂
d Φ̂
(
)d x̂ =
(
|xi+1/2 −
|x
)
−
Pe d x̂
d x̂ i−1/2
xi−1/2 Pe d x̂ d x̂
≃
Φ̂i − Φ̂i−1
1 Φ̂i+1 − Φ̂i
1 Φ̂i+1 − 2Φ̂i + Φ̂i−1
(
−
)=
Pe
∆x̂
∆x̂
Pe
∆x̂
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
d Φ̂
d x̂ = Φ̂|xi+1/2 − Φ̂|xi−1/2
xi−1/2 d x̂
≃
Φ̂i+1 + Φ̂i
Φ̂ + Φ̂i−1
Φ̂
− Φ̂i−1
− i
= i+1
2
2
2
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
1 d Φ̂
d Φ̂
1 d d Φ̂
(
)d x̂ =
(
|x3/2 −
|x )
−
Pe d x̂
d x̂ 1/2
x1/2 Pe d x̂ d x̂
≃
1 Φ̂2 − Φ̂1 Φ̂1 − Φ̂cc
)
(
− 1
Pe
∆x̂
∆
x̂
2
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
d Φ̂
Φ̂ + Φ̂2
d x̂ = Φ̂|x3/2 − Φ̂|x1/2 ≃ 1
− Φ̂cc
2
x1/2 d x̂
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 Φ̂
d x̂ = Φ̂|xi+1/2 − Φ̂|xi−1/2 ≃ Φ̂i − Φ̂|i−1
xi−1/2 d x̂
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
Z
~
~
~
~
S(Φ)dV
ρΦdV + ρUΦ · d S − ρΓΦ ∇Φ · d S =
Ω
Γ
Ω
| Γ {z
}
Z
~ ≃ (ρU)
~f
~ · dS
~ f Φf · S
ρUΦ
Z
Z
Γ
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
aproximación mixta (blended differencing)
Φf = (1 − γ)(Φ)UD + γ(Φ)CD
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
~ U)
~ mediante:
Discretización de términos de forma div(ρU
div(phi,U) Gauss InterpScheme
~
~ = ρU
donde phi corresponde a φ
Esquemas (usuales) de interpolación:
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 forma div(ν ∇U)
mediante:
laplacian(nu,U) Gauss InterpScheme SnScheme
Esquema de interpolación según lista general
Esquemas de aproximación de normales:
Ejemplo:
laplacian(nu,U) Gauss linear corrected
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
H. Jasak; Error Analysis and Estimation for the Finite
Volume Method with Applications to Fluid Flows, PhD
Dissertation, 1996.
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y 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
Integración temporal
Formulación de balance sobre celda Ω
d
dt
Z
Ω
ρΦdV +
Z
~ −
~ · dS
ρUΦ
Γ
E. Martín, M. Meis y F. Varas
Z
~ =
~ · dS
ρΓΦ ∇Φ
Γ
Z
S(Φ)dV
Ω
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
ρP V P
X
d ΦP X
~ · (∇Φ)
~ f = S0 VP + S1 VP ΦP
+
F Φf −
(ρΓ)f S
dt
f
f
Esquemas de discretización temporal
Euler implícito
Esquema BDF de orden 2
Crank-Nicolson
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
ρP V P
X
ΦnP − Φ0P X
~ · (∇Φ)
~ n = S0 VP + S1 VP Φn
+
F Φnf −
(ρΓ)f S
P
f
∆t
f
f
Estabilidad del esquema
incondicionalmente estable
sobreamortiguamiento si CFL mucho mayor que 1
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
3/2ΦnP − 2Φ0P + 1/2Φ00
P
ρP V P
∆t
X
X
~ · (∇Φ)
~ n = S0 VP + S1 VP Φn
+
F Φnf −
(ρΓ)f S
P
f
f
f
Método de Crank–Nicolson
Φn − ΦnP
1X
1X
~ · (∇Φ)
~ n
F Φnf −
(ρΓ)f S
+
ρP V P P
f
∆t
2
2
f
+
f
1X
1X
~ ∇Φ)
~ n = S0 VP + 1 S1 VP Φn + 1 S1 VP Φ0
F Φnf −
(ρΓ)f S·(
P
f
P
2
2
2
2
f
f
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 en laplacianFoam
Integración con esquema implícito de
∂T
~ )=0
− div(DT ∇T
∂t
solve ( fvm::ddt(T) - fvm::laplacian(DT, T) );
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
~ =0
−µ∆~v + ∇p
div~v = 0
Formulación sobre celda (2D)
X Z ∂u
XZ
−
µ
dS +
pnx dS = 0
Γ ∂n
Γ
f
f
XZ
X Z ∂v
dS +
pny dS = 0
−
µ
Γ
Γ ∂n
f
f
XZ
~v · ~n dS = 0
f
Γ
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
~ =0
−µ∆~v + ∇p
div~v = 0
Observación
Con balance nulo de fuerzas de viscosidad (µ∆~v = 0):
p debe ser constante
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
~ ~u ) + ∇p
~ = ~0
+ div(~u ⊗ ~u ) − div(ν ∇
∂t
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
(ec. de conservación de momentos con presión dada)
se calculan las correcciones en presión y velocidad
(ec. de conservación de momentos e incompresibilidad)
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 ∗ ∂ ~u ′
~ ~u ∗ ) + ∇p
~ n + ∇p
~ ∗ = ~0
+
+ div(~u n ⊗ ~u ∗ ) − div(ν ∇
∂t
∂t
Segregación de cálculos
∂ ~u ∗
~ ~u ∗ ) + ∇p
~ n = ~0
+ div(~u n ⊗ ~u ∗ ) − div(ν ∇
∂t
∂ ~u ′ ~ ∗ ~
+ ∇p = 0
∂t
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 ∗
~ ~u ∗ ) + ∇p
~ n = ~0
+ div(~u n ⊗ ~u ∗ ) − div(ν ∇
∂t
Etapa de corrección
Se calculan ~u ′ y p ′ solución de
∂ ~u ′ ~ ′ ~
+ ∇p = 0
∂t
div(~u ∗ + ~u ′ ) = 0
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 ′ = −
∂
(div~u ∗ )
∂t
con condiciones de contorno artificiales sobre p ′
Con presión p ′ se calcula corrección de velocidad ~u ′ :
∂ ~u ′ ~ ′ ~
+ ∇p = 0
∂t
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 tn+1 :
cálculo de pk′ +1 a partir de ~u ∗ y ~uk′
corrección de velocidad ~uk′ +1 a partir de pk′ +1
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 solver icoFoam
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)
== fvc::div(phi) );
pEqn.solve();
U -= rAU*fvc::grad(p); # correccion
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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)
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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): GAMG
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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
Solver icoFoam
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 de icoFoam
Para versión 1.7.1 instalada en /opt:
/opt/openfoam171/applications/solvers/...
incompressible/icoFoam/icoFoam.C
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 archivo fvSolution
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
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 archivo fvSchemes
E. Martín, M. Meis y F. Varas
Sesión 2. Modelos y esquemas numéricos en OpenFOAM
Descargar