Craven Slides

Embed Size (px)

Citation preview

  • 8/12/2019 Craven Slides

    1/84

    Multi-Region Conjugate Heat/Mass Transfer

    MRconjugateHeatFoam: A DirichletNeumann partitioned multi-regionconjugate heat transfer solver

    Brent A. Craven1 Robert L. Campbell2

    1Computational Mechanics Division

    Applied Research Laboratory

    Penn State University

    2Noise Control and Hydroacoustics Division

    Applied Research LaboratoryPenn State University

    6th OpenFOAM Workshop1316 June 2011

  • 8/12/2019 Craven Slides

    2/84

    Outline

    1 Introduction

    2 Multi-region support: OpenFOAM and ParaView

    3 OpenFOAM multi-region solvers (e.g., MRconjugateHeatFoam)

    4 Advanced multi-region solver development

    5 Advanced multi-region usage

    6 Hands-on training: MRconjugateHeatFoam

  • 8/12/2019 Craven Slides

    3/84

    Outline

    1 Introduction

    2 Multi-region support: OpenFOAM and ParaView

    3 OpenFOAM multi-region solvers (e.g., MRconjugateHeatFoam)

    4 Advanced multi-region solver development

    5 Advanced multi-region usage

    6 Hands-on training: MRconjugateHeatFoam

  • 8/12/2019 Craven Slides

    4/84

    Outline

    1 Introduction

    2 Multi-region support: OpenFOAM and ParaView

    3 OpenFOAM multi-region solvers (e.g., MRconjugateHeatFoam)

    4 Advanced multi-region solver development

    5 Advanced multi-region usage

    6 Hands-on training: MRconjugateHeatFoam

  • 8/12/2019 Craven Slides

    5/84

    Outline

    1 Introduction

    2 Multi-region support: OpenFOAM and ParaView

    3 OpenFOAM multi-region solvers (e.g., MRconjugateHeatFoam)

    4 Advanced multi-region solver development

    5 Advanced multi-region usage

    6 Hands-on training: MRconjugateHeatFoam

  • 8/12/2019 Craven Slides

    6/84

    Outline

    1 Introduction

    2 Multi-region support: OpenFOAM and ParaView

    3 OpenFOAM multi-region solvers (e.g., MRconjugateHeatFoam)

    4 Advanced multi-region solver development

    5 Advanced multi-region usage

    6 Hands-on training: MRconjugateHeatFoam

  • 8/12/2019 Craven Slides

    7/84

    Outline

    1 Introduction

    2 Multi-region support: OpenFOAM and ParaView

    3 OpenFOAM multi-region solvers (e.g., MRconjugateHeatFoam)

    4 Advanced multi-region solver development

    5 Advanced multi-region usage

    6 Hands-on training: MRconjugateHeatFoam

  • 8/12/2019 Craven Slides

    8/84

    Introduction

    What do we mean by multi-region multi-physicsmodeling?

    - Inherently-coupled physics on disparate continua (e.g.,fluid, solid, different solids)

    - Separate governing equations for each continuum/region

    For example:

    - Conjugate heat and mass transfer (Part 1)- Fluid-structure interaction (Part 2)

    Briefly, recall that there are two approaches to solvingsuch problems:

    -Monolithic:

    use same primitive variables, castgoverning equations in terms of these variables, solve asingle coupled matrix equation system

    - Partitioned: separate governing equations, solveseparate matrix equation systems, couple at theboundary interface, sub-iterate until coupledconvergence is reached

  • 8/12/2019 Craven Slides

    9/84

    Introduction

    What do we mean by multi-region multi-physicsmodeling?

    - Inherently-coupled physics on disparate continua (e.g.,fluid, solid, different solids)

    - Separate governing equations for each continuum/region

    For example:

    - Conjugate heat and mass transfer (Part 1)- Fluid-structure interaction (Part 2)

    Briefly, recall that there are two approaches to solvingsuch problems:

    -Monolithic:

    use same primitive variables, castgoverning equations in terms of these variables, solve asingle coupled matrix equation system

    - Partitioned: separate governing equations, solveseparate matrix equation systems, couple at theboundary interface, sub-iterate until coupledconvergence is reached

  • 8/12/2019 Craven Slides

    10/84

    Introduction

    What do we mean by multi-region multi-physicsmodeling?

    - Inherently-coupled physics on disparate continua (e.g.,fluid, solid, different solids)

    - Separate governing equations for each continuum/region

    For example:

    - Conjugate heat and mass transfer (Part 1)- Fluid-structure interaction (Part 2)

    Briefly, recall that there are two approaches to solvingsuch problems:

    -Monolithic:

    use same primitive variables, castgoverning equations in terms of these variables, solve asingle coupled matrix equation system

    - Partitioned: separate governing equations, solveseparate matrix equation systems, couple at theboundary interface, sub-iterate until coupled

    convergence is reached

  • 8/12/2019 Craven Slides

    11/84

    Introduction

    What do we mean by multi-region multi-physicsmodeling?

    - Inherently-coupled physics on disparate continua (e.g.,fluid, solid, different solids)

    - Separate governing equations for each continuum/region

    For example:

    - Conjugate heat and mass transfer (Part 1)- Fluid-structure interaction (Part 2)

    Briefly, recall that there are two approaches to solvingsuch problems:

    -Monolithic:

    use same primitive variables, castgoverning equations in terms of these variables, solve asingle coupled matrix equation system

    - Partitioned: separate governing equations, solveseparate matrix equation systems, couple at theboundary interface, sub-iterate until coupled

    convergence is reached

  • 8/12/2019 Craven Slides

    12/84

    Introduction

    What do we mean by multi-region multi-physicsmodeling?

    - Inherently-coupled physics on disparate continua (e.g.,fluid, solid, different solids)

    - Separate governing equations for each continuum/region

    For example:

    - Conjugate heat and mass transfer (Part 1)- Fluid-structure interaction (Part 2)

    Briefly, recall that there are two approaches to solvingsuch problems:

    -Monolithic:

    use same primitive variables, castgoverning equations in terms of these variables, solve asingle coupled matrix equation system

    - Partitioned: separate governing equations, solveseparate matrix equation systems, couple at theboundary interface, sub-iterate until coupled

    convergence is reached

  • 8/12/2019 Craven Slides

    13/84

    Introduction

    What do we mean by multi-region multi-physicsmodeling?

    - Inherently-coupled physics on disparate continua (e.g.,fluid, solid, different solids)

    - Separate governing equations for each continuum/region

    For example:

    - Conjugate heat and mass transfer (Part 1)- Fluid-structure interaction (Part 2)

    Briefly, recall that there are two approaches to solvingsuch problems:

    -Monolithic:

    use same primitive variables, castgoverning equations in terms of these variables, solve asingle coupled matrix equation system

    - Partitioned: separate governing equations, solveseparate matrix equation systems, couple at theboundary interface, sub-iterate until coupled

    convergence is reached

  • 8/12/2019 Craven Slides

    14/84

    Introduction

    What do we mean by multi-region multi-physicsmodeling?

    - Inherently-coupled physics on disparate continua (e.g.,fluid, solid, different solids)

    - Separate governing equations for each continuum/region

    For example:

    - Conjugate heat and mass transfer (Part 1)- Fluid-structure interaction (Part 2)

    Briefly, recall that there are two approaches to solvingsuch problems:

    -Monolithic:

    use same primitive variables, castgoverning equations in terms of these variables, solve asingle coupled matrix equation system

    - Partitioned: separate governing equations, solveseparate matrix equation systems, couple at theboundary interface, sub-iterate until coupled

    convergence is reached

  • 8/12/2019 Craven Slides

    15/84

    Introduction

    What do we mean by multi-region multi-physicsmodeling?

    - Inherently-coupled physics on disparate continua (e.g.,fluid, solid, different solids)

    - Separate governing equations for each continuum/region

    For example:

    - Conjugate heat and mass transfer (Part 1)- Fluid-structure interaction (Part 2)

    Briefly, recall that there are two approaches to solvingsuch problems:

    -Monolithic:

    use same primitive variables, castgoverning equations in terms of these variables, solve asingle coupled matrix equation system

    - Partitioned: separate governing equations, solveseparate matrix equation systems, couple at theboundary interface, sub-iterate until coupled

    convergence is reached

  • 8/12/2019 Craven Slides

    16/84

    Introduction

    What do we mean by multi-region multi-physicsmodeling?

    - Inherently-coupled physics on disparate continua (e.g.,fluid, solid, different solids)

    - Separate governing equations for each continuum/region

    For example:

    - Conjugate heat and mass transfer (Part 1)- Fluid-structure interaction (Part 2)

    Briefly, recall that there are two approaches to solvingsuch problems:

    -Monolithic:

    use same primitive variables, castgoverning equations in terms of these variables, solve asingle coupled matrix equation system

    - Partitioned: separate governing equations, solveseparate matrix equation systems, couple at theboundary interface, sub-iterate until coupled

    convergence is reached

  • 8/12/2019 Craven Slides

    17/84

    Introduction

    Newer, monolithic solution approaches in OpenFOAM were coveredearlier by Ivor Clifford (Block-Coupled Solvers)

    Here, we focus on partitioned approaches using:

    - Standard multi-region OpenFOAM functionality (Part 1: Conjugateheat/mass transfer)

    - Custom partitioned approaches for coupling to third-party software(Part 2: FSI)

    d

  • 8/12/2019 Craven Slides

    18/84

    Introduction

    Newer, monolithic solution approaches in OpenFOAM were coveredearlier by Ivor Clifford (Block-Coupled Solvers)

    Here, we focus on partitioned approaches using:

    - Standard multi-region OpenFOAM functionality (Part 1: Conjugateheat/mass transfer)

    - Custom partitioned approaches for coupling to third-party software(Part 2: FSI)

    I d i

  • 8/12/2019 Craven Slides

    19/84

    Introduction

    Newer, monolithic solution approaches in OpenFOAM were coveredearlier by Ivor Clifford (Block-Coupled Solvers)

    Here, we focus on partitioned approaches using:

    - Standard multi-region OpenFOAM functionality (Part 1: Conjugateheat/mass transfer)

    - Custom partitioned approaches for coupling to third-party software(Part 2: FSI)

    I d i

  • 8/12/2019 Craven Slides

    20/84

    Introduction

    Newer, monolithic solution approaches in OpenFOAM were coveredearlier by Ivor Clifford (Block-Coupled Solvers)

    Here, we focus on partitioned approaches using:

    - Standard multi-region OpenFOAM functionality (Part 1: Conjugateheat/mass transfer)

    - Custom partitioned approaches for coupling to third-party software(Part 2: FSI)

    O FOAM M l i R i C S

  • 8/12/2019 Craven Slides

    21/84

    OpenFOAM Multi-Region Case Structure

    Multi-region OpenFOAM case structure is slightly adapted from thestandard case structure

    Recall the standard case structure:

    O FOAM M lti R i C St t

  • 8/12/2019 Craven Slides

    22/84

    OpenFOAM Multi-Region Case Structure

    Multi-region case structure:

    Within each fluid and solid subdirectory there exists the standardcontents (polyMesh, transportProperties, fvSchemes, fvSolution,etc.)

    O FOAM M lti R i C St t

  • 8/12/2019 Craven Slides

    23/84

    OpenFOAM Multi-Region Case Structure

    Multi-region case structure:

    Within each fluid and solid subdirectory there exists the standardcontents (polyMesh, transportProperties, fvSchemes, fvSolution,etc.)

    OpenFOAM Multi Region Support

  • 8/12/2019 Craven Slides

    24/84

    OpenFOAM Multi-Region Support Many of the essential OpenFOAM utilities already support this

    multi-region case structure:

    - blockMesh -region name- decomposePar -region name- reconstructPar -region name- checkMesh -region name

    If a utility does not support multi-region cases, it is quite simple to

    add (e.g., checkMesh):

    OpenFOAM Multi Region Support

  • 8/12/2019 Craven Slides

    25/84

    OpenFOAM Multi-Region Support Many of the essential OpenFOAM utilities already support this

    multi-region case structure:

    - blockMesh -region name- decomposePar -region name- reconstructPar -region name- checkMesh -region name

    If a utility does not support multi-region cases, it is quite simple to

    add (e.g., checkMesh):

    OpenFOAM Multi Region Support

  • 8/12/2019 Craven Slides

    26/84

    OpenFOAM Multi-Region Support Many of the essential OpenFOAM utilities already support this

    multi-region case structure:

    - blockMesh -region name- decomposePar -region name- reconstructPar -region name- checkMesh -region name

    If a utility does not support multi-region cases, it is quite simple to

    add (e.g., checkMesh):

    OpenFOAM Multi Region Support

  • 8/12/2019 Craven Slides

    27/84

    OpenFOAM Multi-Region Support Many of the essential OpenFOAM utilities already support this

    multi-region case structure:

    - blockMesh -region name- decomposePar -region name- reconstructPar -region name- checkMesh -region name

    If a utility does not support multi-region cases, it is quite simple to

    add (e.g., checkMesh):

    ParaView Multi-Region Support

  • 8/12/2019 Craven Slides

    28/84

    ParaView Multi-Region Support

    ParaView natively supportsmulti-region OpenFOAM cases

    This includes support fordifferent variables defined oneach region

    Typically, it is convenient to:

    - Load the multi-region case- Extract each region via Filter

    -> Extract Block

    - Post-process/manipulate eachregion as desired

    ParaView Multi-Region Support

  • 8/12/2019 Craven Slides

    29/84

    ParaView Multi Region Support

    ParaView natively supportsmulti-region OpenFOAM cases

    This includes support fordifferent variables defined oneach region

    Typically, it is convenient to:

    - Load the multi-region case- Extract each region via Filter

    -> Extract Block

    - Post-process/manipulate eachregion as desired

    ParaView Multi-Region Support

  • 8/12/2019 Craven Slides

    30/84

    ParaView Multi Region Support

    ParaView natively supportsmulti-region OpenFOAM cases

    This includes support fordifferent variables defined oneach region

    Typically, it is convenient to:

    - Load the multi-region case- Extract each region via Filter

    -> Extract Block

    - Post-process/manipulate eachregion as desired

    ParaView Multi-Region Support

  • 8/12/2019 Craven Slides

    31/84

    ParaView Multi Region Support

    ParaView natively supportsmulti-region OpenFOAM cases

    This includes support fordifferent variables defined oneach region

    Typically, it is convenient to:

    - Load the multi-region case- Extract each region via Filter

    -> Extract Block- Post-process/manipulate each

    region as desired

    ParaView Multi-Region Support

  • 8/12/2019 Craven Slides

    32/84

    ParaView Multi Region Support

    ParaView natively supportsmulti-region OpenFOAM cases

    This includes support fordifferent variables defined oneach region

    Typically, it is convenient to:

    - Load the multi-region case- Extract each region via Filter

    -> Extract Block- Post-process/manipulate each

    region as desired

    ParaView Multi-Region Support

  • 8/12/2019 Craven Slides

    33/84

    u g Supp

    ParaView natively supportsmulti-region OpenFOAM cases

    This includes support fordifferent variables defined oneach region

    Typically, it is convenient to:

    - Load the multi-region case- Extract each region via Filter

    -> Extract Block- Post-process/manipulate each

    region as desired

    OpenFOAM Multi-Region Solvers

  • 8/12/2019 Craven Slides

    34/84

    p g

    So, now weve seen how multi-region OpenFOAM cases are setup and

    post-processed Now, from a developers perspective, how are multi-region solvers

    constructed?

    General overview of multi-region partitioned solvers:

    1 Define multiple meshes, one for each region2 Create field variables on each mesh3 Solve separate governing equations on each mesh4 Multi-region coupling at the boundary interface5 Subiterate until fully-coupled solution is reached

    To illustrate, lets walk through MRconjugateHeatFoam, aDirichletNeumann partitioned multi-region conjugate heat transfersolver

    OpenFOAM Multi-Region Solvers

  • 8/12/2019 Craven Slides

    35/84

    p g

    So, now weve seen how multi-region OpenFOAM cases are setup and

    post-processed Now, from a developers perspective, how are multi-region solvers

    constructed?

    General overview of multi-region partitioned solvers:

    1 Define multiple meshes, one for each region2 Create field variables on each mesh3 Solve separate governing equations on each mesh4 Multi-region coupling at the boundary interface5 Subiterate until fully-coupled solution is reached

    To illustrate, lets walk through MRconjugateHeatFoam, aDirichletNeumann partitioned multi-region conjugate heat transfersolver

    OpenFOAM Multi-Region Solvers

  • 8/12/2019 Craven Slides

    36/84

    p g

    So, now weve seen how multi-region OpenFOAM cases are setup and

    post-processed Now, from a developers perspective, how are multi-region solvers

    constructed?

    General overview of multi-region partitioned solvers:

    1 Define multiple meshes, one for each region2 Create field variables on each mesh3 Solve separate governing equations on each mesh4 Multi-region coupling at the boundary interface5 Subiterate until fully-coupled solution is reached

    To illustrate, lets walk through MRconjugateHeatFoam, aDirichletNeumann partitioned multi-region conjugate heat transfersolver

    OpenFOAM Multi-Region Solvers

  • 8/12/2019 Craven Slides

    37/84

    So, now weve seen how multi-region OpenFOAM cases are setup and

    post-processed Now, from a developers perspective, how are multi-region solvers

    constructed?

    General overview of multi-region partitioned solvers:

    1 Define multiple meshes, one for each region2 Create field variables on each mesh3 Solve separate governing equations on each mesh4 Multi-region coupling at the boundary interface5 Subiterate until fully-coupled solution is reached

    To illustrate, lets walk through MRconjugateHeatFoam, aDirichletNeumann partitioned multi-region conjugate heat transfersolver

    OpenFOAM Multi-Region Solvers

  • 8/12/2019 Craven Slides

    38/84

    So, now weve seen how multi-region OpenFOAM cases are setup and

    post-processed Now, from a developers perspective, how are multi-region solvers

    constructed?

    General overview of multi-region partitioned solvers:

    1 Define multiple meshes, one for each region2 Create field variables on each mesh3 Solve separate governing equations on each mesh4 Multi-region coupling at the boundary interface5 Subiterate until fully-coupled solution is reached

    To illustrate, lets walk through MRconjugateHeatFoam, aDirichletNeumann partitioned multi-region conjugate heat transfersolver

    OpenFOAM Multi-Region Solvers

  • 8/12/2019 Craven Slides

    39/84

    So, now weve seen how multi-region OpenFOAM cases are setup and

    post-processed Now, from a developers perspective, how are multi-region solvers

    constructed?

    General overview of multi-region partitioned solvers:

    1 Define multiple meshes, one for each region2 Create field variables on each mesh3 Solve separate governing equations on each mesh4 Multi-region coupling at the boundary interface5 Subiterate until fully-coupled solution is reached

    To illustrate, lets walk through MRconjugateHeatFoam, aDirichletNeumann partitioned multi-region conjugate heat transfersolver

    OpenFOAM Multi-Region Solvers

  • 8/12/2019 Craven Slides

    40/84

    So, now weve seen how multi-region OpenFOAM cases are setup and

    post-processed Now, from a developers perspective, how are multi-region solvers

    constructed?

    General overview of multi-region partitioned solvers:

    1 Define multiple meshes, one for each region2 Create field variables on each mesh3 Solve separate governing equations on each mesh4 Multi-region coupling at the boundary interface5 Subiterate until fully-coupled solution is reached

    To illustrate, lets walk through MRconjugateHeatFoam, aDirichletNeumann partitioned multi-region conjugate heat transfersolver

    Creating Multiple (i.e., Multi-Region) Meshes

  • 8/12/2019 Craven Slides

    41/84

    In createMesh.H:

    Create fluidMesh Create solidMesh

    For comparison, see:$FOAM_SRC/OpenFOAM/include/createMesh.H

    Creating Multi-Region Field Variables

  • 8/12/2019 Craven Slides

    42/84

    Now we need to create field variables associated with each mesh

    In createFields.H:

    Create fluid variables Create solid variables

    Coupled Patches

  • 8/12/2019 Craven Slides

    43/84

    We will cover it in more detail shortly, but thepartitioned approach inherently consists ofcoupledpatch pairs :

    - Coincident boundary patches, one associated with eachregion

    - These are solely where the solutions on each mesh arecoupled

    Since these coupled patch pairs will be usedextensively later on, lets:

    - Find the coupled patches and append to a list- Check the coupled patches

    Coupled Patches

  • 8/12/2019 Craven Slides

    44/84

    We will cover it in more detail shortly, but thepartitioned approach inherently consists ofcoupledpatch pairs :

    - Coincident boundary patches, one associated with eachregion

    - These are solely where the solutions on each mesh arecoupled

    Since these coupled patch pairs will be usedextensively later on, lets:

    - Find the coupled patches and append to a list- Check the coupled patches

    Coupled Patches

  • 8/12/2019 Craven Slides

    45/84

    We will cover it in more detail shortly, but thepartitioned approach inherently consists ofcoupledpatch pairs :

    - Coincident boundary patches, one associated with eachregion

    - These are solely where the solutions on each mesh arecoupled

    Since these coupled patch pairs will be usedextensively later on, lets:

    - Find the coupled patches and append to a list- Check the coupled patches

    Coupled Patches

  • 8/12/2019 Craven Slides

    46/84

    We will cover it in more detail shortly, but thepartitioned approach inherently consists ofcoupledpatch pairs :

    - Coincident boundary patches, one associated with eachregion

    - These are solely where the solutions on each mesh arecoupled

    Since these coupled patch pairs will be usedextensively later on, lets:

    - Find the coupled patches and append to a list- Check the coupled patches

    Coupled Patches

  • 8/12/2019 Craven Slides

    47/84

    We will cover it in more detail shortly, but thepartitioned approach inherently consists ofcoupledpatch pairs :

    - Coincident boundary patches, one associated with eachregion

    - These are solely where the solutions on each mesh arecoupled

    Since these coupled patch pairs will be usedextensively later on, lets:

    - Find the coupled patches and append to a list- Check the coupled patches

    Coupled Patches

  • 8/12/2019 Craven Slides

    48/84

    We will cover it in more detail shortly, but thepartitioned approach inherently consists ofcoupledpatch pairs :

    - Coincident boundary patches, one associated with eachregion

    - These are solely where the solutions on each mesh arecoupled

    Since these coupled patch pairs will be usedextensively later on, lets:

    - Find the coupled patches and append to a list- Check the coupled patches

    Coupled Patches

  • 8/12/2019 Craven Slides

    49/84

    In checkCoupledPatches.H:

    Coupled PatchesAl i h kC l dP t h H

  • 8/12/2019 Craven Slides

    50/84

    Also in checkCoupledPatches.H:

    Can also check coupled patch:- Neighbour patch names (specified by the user in the BCs)- Size/spatial extent/surface area (coincident?)- Normals/orientation- Connectivity (if conformal meshes)

    Coupled PatchesAl i h kC l dP t h H

  • 8/12/2019 Craven Slides

    51/84

    Also in checkCoupledPatches.H:

    Can also check coupled patch:- Neighbour patch names (specified by the user in the BCs)- Size/spatial extent/surface area (coincident?)- Normals/orientation- Connectivity (if conformal meshes)

    Coupled Patches Also in checkCoupledPatches H:

  • 8/12/2019 Craven Slides

    52/84

    Also in checkCoupledPatches.H:

    Can also check coupled patch:- Neighbour patch names (specified by the user in the BCs)- Size/spatial extent/surface area (coincident?)- Normals/orientation- Connectivity (if conformal meshes)

    Coupled Patches Also in checkCoupledPatches H:

  • 8/12/2019 Craven Slides

    53/84

    Also in checkCoupledPatches.H:

    Can also check coupled patch:- Neighbour patch names (specified by the user in the BCs)- Size/spatial extent/surface area (coincident?)- Normals/orientation- Connectivity (if conformal meshes)

    Coupled Patches Also in checkCoupledPatches H:

  • 8/12/2019 Craven Slides

    54/84

    Also in checkCoupledPatches.H:

    Can also check coupled patch:- Neighbour patch names (specified by the user in the BCs)- Size/spatial extent/surface area (coincident?)- Normals/orientation- Connectivity (if conformal meshes)

    Solving Separate Governing Equations for Each Region

    S f h

  • 8/12/2019 Craven Slides

    55/84

    So far we have:

    - Defined multiple meshes

    -Create separate field variables associated with each mesh

    - Checked/collected coupled patch information Now, we can solve separate governing equations in each region, which

    are subject to coupled boundary conditions (to be discussed)

    In solveFluid.H(or equivalently in solveSolid.H):

    Multi-Region Subiteration Now we need to solve the governing equation in each region multiple

  • 8/12/2019 Craven Slides

    56/84

    Now we need to solve the governing equation in each region multipletimes to achieve a fully-coupled solution

    Thus, at each time step we subiterate until coupled convergence is

    reached In MRconjugateHeatFoam.C:

    Multi-Region Coupling via DirichletNeumann Partitioning

  • 8/12/2019 Craven Slides

    57/84

    Multi-region coupling strategy:

    1 Solve fluid (Region 1) subject to the appropriateDirichlet boundary condition at the coupled interface:

    T1 = T2

    2 Solve solid (Region 2) subject to the appropriateNeumann boundary condition at the coupled interface:

    q1 = q

    2

    3 ...repeat 1-2 until converged

    This is known as DirichletNeumann partitioning

    Multi-Region Coupling via DirichletNeumann Partitioning

  • 8/12/2019 Craven Slides

    58/84

    Multi-region coupling strategy:

    1 Solve fluid (Region 1) subject to the appropriateDirichlet boundary condition at the coupled interface:

    T1 = T2

    2 Solve solid (Region 2) subject to the appropriateNeumann boundary condition at the coupled interface:

    q1 = q

    2

    3 ...repeat 1-2 until converged

    This is known as DirichletNeumann partitioning

    Multi-Region Coupling via DirichletNeumann Partitioning

  • 8/12/2019 Craven Slides

    59/84

    Multi-region coupling strategy:

    1 Solve fluid (Region 1) subject to the appropriateDirichlet boundary condition at the coupled interface:

    T1 = T2

    2 Solve solid (Region 2) subject to the appropriateNeumann boundary condition at the coupled interface:

    q1 = q

    2

    3 ...repeat 1-2 until converged

    This is known as DirichletNeumann partitioning

    Multi-Region Coupling via DirichletNeumann Partitioning

  • 8/12/2019 Craven Slides

    60/84

    Multi-region coupling strategy:

    1 Solve fluid (Region 1) subject to the appropriateDirichlet boundary condition at the coupled interface:

    T1 = T2

    2 Solve solid (Region 2) subject to the appropriateNeumann boundary condition at the coupled interface:

    q1 = q

    2

    3 ...repeat 1-2 until converged

    This is known as DirichletNeumann partitioning

    Multi-Region Coupling via DirichletNeumann Partitioning

  • 8/12/2019 Craven Slides

    61/84

    Multi-region coupling strategy:

    1 Solve fluid (Region 1) subject to the appropriateDirichlet boundary condition at the coupled interface:

    T1 = T2

    2 Solve solid (Region 2) subject to the appropriateNeumann boundary condition at the coupled interface:

    q1 = q

    2

    3 ...repeat 1-2 until converged

    This is known as DirichletNeumann partitioning

    Multi-Region Coupling via DirichletNeumann Partitioning In MRconjugateHeatFoam DirichletNeumann partitioning is handled

  • 8/12/2019 Craven Slides

    62/84

    j g gwithin the provided coupledFvPatchFieldsboundary conditions

    In regionCoupleTemperatureFvPatchScalarFieldthe Dirichlet condition

    is satisfied:

    Multi-Region Coupling via DirichletNeumann Partitioning In regionCoupleHeatFluxFvPatchScalarField the Neumann condition is

  • 8/12/2019 Craven Slides

    63/84

    satisfied:

    Coupled Solution Convergence

    Fi ll ithi th bit ti l t th t l d

  • 8/12/2019 Craven Slides

    64/84

    Finally, within the subiteration loop we must ensure that coupledsolution convergence is reached to know when to stop the subiterations

    This is accomplished in convergenceCheck.H by:1 Looping over coupled patches2 Calculating the maximum normalized coupled patch temperature &

    heat flux residuals:

    3 Stop subiterations if the maximum normalized residual is less than theuser-specified converge tolerance

    Thats it! Now we have a fully-coupled multi-region solver.

    Coupled Solution Convergence

    Finally within the subiteration loop we must ensure that coupled

  • 8/12/2019 Craven Slides

    65/84

    Finally, within the subiteration loop we must ensure that coupledsolution convergence is reached to know when to stop the subiterations

    This is accomplished in convergenceCheck.H by:1 Looping over coupled patches2 Calculating the maximum normalized coupled patch temperature &

    heat flux residuals:

    3 Stop subiterations if the maximum normalized residual is less than theuser-specified converge tolerance

    Thats it! Now we have a fully-coupled multi-region solver.

    Advanced Multi-Region Solver DevelopmentConservative flux interpolation on non-conformal multi-region meshes

  • 8/12/2019 Craven Slides

    66/84

    As is, MRconjugateHeatFoam utilizes

    inverse distance weightedinterpolation provided bypatchToPatchInterpolation for bothDirichlet (temperature) and Neumann(heat flux) boundary conditions

    This is appropriate for temperature

    ....but not for heat flux (which mustbe conserved) on non-conformalboundary meshes

    For accurate flux interpolation onnon-conformal meshes, aconservative scheme is recommended(e.g., ggiInterpolation)

    Advanced Multi-Region Solver DevelopmentConservative flux interpolation on non-conformal multi-region meshes

  • 8/12/2019 Craven Slides

    67/84

    As is, MRconjugateHeatFoam utilizes

    inverse distance weightedinterpolation provided bypatchToPatchInterpolation for bothDirichlet (temperature) and Neumann(heat flux) boundary conditions

    This is appropriate for temperature

    ....but not for heat flux (which mustbe conserved) on non-conformalboundary meshes

    For accurate flux interpolation onnon-conformal meshes, aconservative scheme is recommended(e.g., ggiInterpolation)

    Advanced Multi-Region Solver DevelopmentConservative flux interpolation on non-conformal multi-region meshes

  • 8/12/2019 Craven Slides

    68/84

    As is, MRconjugateHeatFoam utilizes

    inverse distance weightedinterpolation provided bypatchToPatchInterpolation for bothDirichlet (temperature) and Neumann(heat flux) boundary conditions

    This is appropriate for temperature

    ....but not for heat flux (which mustbe conserved) on non-conformalboundary meshes

    For accurate flux interpolation onnon-conformal meshes, aconservative scheme is recommended(e.g., ggiInterpolation)

    Advanced Multi-Region Solver DevelopmentConservative flux interpolation on non-conformal multi-region meshes

  • 8/12/2019 Craven Slides

    69/84

    As is, MRconjugateHeatFoam utilizes

    inverse distance weightedinterpolation provided bypatchToPatchInterpolation for bothDirichlet (temperature) and Neumann(heat flux) boundary conditions

    This is appropriate for temperature

    ....but not for heat flux (which mustbe conserved) on non-conformalboundary meshes

    For accurate flux interpolation onnon-conformal meshes, aconservative scheme is recommended(e.g., ggiInterpolation)

    Advanced Multi-Region Solver DevelopmentAccelerated coupled solution convergence via dynamic relaxation

    P l MR j H F i l d i l d l i

  • 8/12/2019 Craven Slides

    70/84

    Presently, MRconjugateHeatFoam includes a static coupled solutionrelaxation factor

    Recall in regionCoupleTemperatureFvPatchScalarField.C:

    However, coupled solution convergence can be accelerated via the useof a dynamic relaxation factor (e.g., using Aitkens 2 method)

    This can significantly increase coupled solution convergence rates

    For example, to converge to a relative tolerance of 1x105:

    - Static relaxation factor: 12 14 subiterations- Aitkens method: 2 5

    Advanced Multi-Region Solver DevelopmentAccelerated coupled solution convergence via dynamic relaxation

    P tl MR j t H tF i l d t ti l d l ti

  • 8/12/2019 Craven Slides

    71/84

    Presently, MRconjugateHeatFoam includes a static coupled solutionrelaxation factor

    Recall in regionCoupleTemperatureFvPatchScalarField.C:

    However, coupled solution convergence can be accelerated via the useof a dynamic relaxation factor (e.g., using Aitkens 2 method)

    This can significantly increase coupled solution convergence rates

    For example, to converge to a relative tolerance of 1x105:

    - Static relaxation factor: 12 14 subiterations- Aitkens method: 2 5

    Advanced Multi-Region Solver DevelopmentAccelerated coupled solution convergence via dynamic relaxation

    P tl MR j t H tF i l d t ti l d l ti

  • 8/12/2019 Craven Slides

    72/84

    Presently, MRconjugateHeatFoam includes a static coupled solutionrelaxation factor

    Recall in regionCoupleTemperatureFvPatchScalarField.C:

    However, coupled solution convergence can be accelerated via the useof a dynamic relaxation factor (e.g., using Aitkens 2 method)

    This can significantly increase coupled solution convergence rates

    For example, to converge to a relative tolerance of 1x105:

    - Static relaxation factor: 12 14 subiterations- Aitkens method: 2 5

    Advanced Multi-Region Solver DevelopmentAccelerated coupled solution convergence via dynamic relaxation

    Presently MRconj gateHeatFoam incl des a static co pled sol tion

  • 8/12/2019 Craven Slides

    73/84

    Presently, MRconjugateHeatFoam includes a static coupled solutionrelaxation factor

    Recall in regionCoupleTemperatureFvPatchScalarField.C:

    However, coupled solution convergence can be accelerated via the useof a dynamic relaxation factor (e.g., using Aitkens 2 method)

    This can significantly increase coupled solution convergence rates

    For example, to converge to a relative tolerance of 1x105:

    - Static relaxation factor: 12 14 subiterations- Aitkens method: 2 5

    Advanced Multi-Region Solver DevelopmentAccelerated coupled solution convergence via dynamic relaxation

    Presently MRconjugateHeatFoam includes a static coupled solution

  • 8/12/2019 Craven Slides

    74/84

    Presently, MRconjugateHeatFoam includes a static coupled solutionrelaxation factor

    Recall in regionCoupleTemperatureFvPatchScalarField.C:

    However, coupled solution convergence can be accelerated via the useof a dynamic relaxation factor (e.g., using Aitkens 2 method)

    This can significantly increase coupled solution convergence rates

    For example, to converge to a relative tolerance of 1x105:

    - Static relaxation factor: 12 14 subiterations- Aitkens method: 2 5

    Advanced Multi-Region Solver DevelopmentAccelerated coupled solution convergence via dynamic relaxation

    Presently MRconjugateHeatFoam includes a static coupled solution

  • 8/12/2019 Craven Slides

    75/84

    Presently, MRconjugateHeatFoam includes a static coupled solutionrelaxation factor

    Recall in regionCoupleTemperatureFvPatchScalarField.C:

    However, coupled solution convergence can be accelerated via the useof a dynamic relaxation factor (e.g., using Aitkens 2 method)

    This can significantly increase coupled solution convergence rates

    For example, to converge to a relative tolerance of 1x105:

    - Static relaxation factor: 12 14 subiterations- Aitkens method: 2 5

    Advanced Multi-Region UsageParallel execution of multi-region solvers

    There is one main difficulty when using

  • 8/12/2019 Craven Slides

    76/84

    There is one main difficulty when usingmulti-region solvers in parallel: decomposition of

    coupled patch pairs

    This is because patchToPatchInterpolation is notcurrently parallelized (to my knowledge at least)

    So, there are two ways that I know of to run in

    parallel:1 Use the simple decomposition method to

    decompose both meshes at the same coordinatelocation (only works for conformal meshes)

    2 Use the globalFaceZones option in the

    decomposeParDictto preserve the coupledpatch pairs on all processors (works fornon-conformal meshes, but some of thenecessary utilities [e.g., faceSet] do notrecognize the -region option)

    Advanced Multi-Region UsageParallel execution of multi-region solvers

    There is one main difficulty when using

  • 8/12/2019 Craven Slides

    77/84

    There is one main difficulty when usingmulti-region solvers in parallel: decomposition of

    coupled patch pairs This is because patchToPatchInterpolation is not

    currently parallelized (to my knowledge at least)

    So, there are two ways that I know of to run in

    parallel:1 Use the simple decomposition method to

    decompose both meshes at the same coordinatelocation (only works for conformal meshes)

    2 Use the globalFaceZones option in the

    decomposeParDictto preserve the coupledpatch pairs on all processors (works fornon-conformal meshes, but some of thenecessary utilities [e.g., faceSet] do notrecognize the -region option)

    Advanced Multi-Region UsageParallel execution of multi-region solvers

    There is one main difficulty when using

  • 8/12/2019 Craven Slides

    78/84

    There is one main difficulty when usingmulti-region solvers in parallel: decomposition of

    coupled patch pairs This is because patchToPatchInterpolation is not

    currently parallelized (to my knowledge at least)

    So, there are two ways that I know of to run in

    parallel:1 Use the simple decomposition method to

    decompose both meshes at the same coordinatelocation (only works for conformal meshes)

    2 Use the globalFaceZones option in the

    decomposeParDictto preserve the coupledpatch pairs on all processors (works fornon-conformal meshes, but some of thenecessary utilities [e.g., faceSet] do notrecognize the -region option)

    Advanced Multi-Region UsageParallel execution of multi-region solvers

    There is one main difficulty when using

  • 8/12/2019 Craven Slides

    79/84

    There is one main difficulty when usingmulti-region solvers in parallel: decomposition of

    coupled patch pairs This is because patchToPatchInterpolation is not

    currently parallelized (to my knowledge at least)

    So, there are two ways that I know of to run in

    parallel:1 Use the simple decomposition method to

    decompose both meshes at the same coordinatelocation (only works for conformal meshes)

    2 Use the globalFaceZones option in the

    decomposeParDictto preserve the coupledpatch pairs on all processors (works fornon-conformal meshes, but some of thenecessary utilities [e.g., faceSet] do notrecognize the -region option)

    Hands-On Training: MRconjugateHeatFoam

    Run standard tutorial case: conjugateChannelFlow

  • 8/12/2019 Craven Slides

    80/84

    Investigate the effect of the coupled solution relaxation factor

    - In system/coupledSolution change coupleRelaxFactor

    - Try coupleRelaxFactor= 0.1, 0.5, 0.7, 1.0 Run MRconjugateHeatFoam in parallel (use the decomposeMesh and

    runmePar scripts)

    Hands-On Training: MRconjugateHeatFoam

    Run standard tutorial case: conjugateChannelFlow

  • 8/12/2019 Craven Slides

    81/84

    Investigate the effect of the coupled solution relaxation factor

    - In system/coupledSolution change coupleRelaxFactor

    - Try coupleRelaxFactor= 0.1, 0.5, 0.7, 1.0 Run MRconjugateHeatFoam in parallel (use the decomposeMesh and

    runmePar scripts)

    Hands-On Training: MRconjugateHeatFoam

    Run standard tutorial case: conjugateChannelFlow

  • 8/12/2019 Craven Slides

    82/84

    Investigate the effect of the coupled solution relaxation factor

    - In system/coupledSolution change coupleRelaxFactor

    - Try coupleRelaxFactor= 0.1, 0.5, 0.7, 1.0 Run MRconjugateHeatFoam in parallel (use the decomposeMesh and

    runmePar scripts)

    Hands-On Training: MRconjugateHeatFoam

    Run standard tutorial case: conjugateChannelFlow

  • 8/12/2019 Craven Slides

    83/84

    Investigate the effect of the coupled solution relaxation factor

    - In system/coupledSolution change coupleRelaxFactor

    - Try coupleRelaxFactor= 0.1, 0.5, 0.7, 1.0 Run MRconjugateHeatFoam in parallel (use the decomposeMesh and

    runmePar scripts)

    Hands-On Training: MRconjugateHeatFoam

    Run standard tutorial case: conjugateChannelFlow

  • 8/12/2019 Craven Slides

    84/84

    Investigate the effect of the coupled solution relaxation factor

    - In system/coupledSolution change coupleRelaxFactor

    - Try coupleRelaxFactor= 0.1, 0.5, 0.7, 1.0 Run MRconjugateHeatFoam in parallel (use the decomposeMesh and

    runmePar scripts)