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