Partitioned Conjugate Heat Transfer (CHT) Analysis Using CFD-FEM

Category: 熱解析 > 共役熱伝達 | 更新 2026-04-12
Partitioned conjugate heat transfer coupling diagram showing fluid CFD and solid FEM solvers exchanging temperature and heat flux at the interface
分離型連成の概念図 — CFDソルバーとFEMソルバーが界面で温度・熱流束を交互にやり取りする

Theory and Physics

Overview — What is Partitioned Coupling?

🧑‍🎓

Professor, does partitioned coupling solve the fluid and solid separately? How is it different from direct coupling which solves them together?

🎓

Good question. Partitioned Conjugate Heat Transfer is a method that solves the fluid side with a CFD solver and the solid side with a FEM heat conduction solver independently, and exchanges temperature and heat flux iteratively at the fluid-solid interface.

🧑‍🎓

I see, are there any benefits to solving them separately? It seems unnecessary to split them...

🎓

The biggest advantage is that existing CFD codes and FEM codes can be used as-is. For example, in gas turbine blade cooling design, the external high-temperature gas flow path is solved with Ansys Fluent, and the internal solid heat conduction of the blade is solved with Abaqus—this kind of combination is standard in practice. With direct coupling, everything needs to be packed into a single solver, which skyrockets both development and computational costs.

🧑‍🎓

Wait, but doesn't solving them separately reduce accuracy?

🎓

If sufficiently iterated at the interface, it converges to the same accuracy as direct coupling. However, it can sometimes take time to converge—especially when the heat capacity ratio of the solid and fluid are close, convergence slows down. That's where techniques like relaxation factors and Aitken acceleration come in. Let's look at them in detail later.

The basic idea of partitioned coupling is to split the conjugate heat transfer (CHT) problem into the following two sub-problems:

  • Fluid Sub-problem: Navier-Stokes equations + Energy equation (solved with a CFD solver)
  • Solid Sub-problem: Heat conduction equation (solved with a FEM solver)

These two solvers are coupled via "interface conditions" to iteratively find a consistent solution.

Dirichlet-Neumann Interface Conditions

🧑‍🎓

You mentioned exchanging temperature and heat flux at the interface, but what are the specific equations?

🎓

Two conditions hold physically at the interface $\Gamma$. First, temperature continuity (Dirichlet condition):

$$ T_f \big|_{\Gamma} = T_s \big|_{\Gamma} $$
🎓

And heat flux continuity (Neumann condition):

$$ -k_f \frac{\partial T_f}{\partial n}\bigg|_{\Gamma} = -k_s \frac{\partial T_s}{\partial n}\bigg|_{\Gamma} $$
🧑‍🎓

$k_f$ and $k_s$ are the thermal conductivities of the fluid and solid, respectively. $n$ is the normal direction to the interface... So it means "the temperatures match at the interface, and the incoming heat equals the outgoing heat"?

🎓

Exactly. In partitioned coupling, these two conditions are given alternately to each solver. In a typical Dirichlet-Neumann splitting method:

  1. Give the interface temperature $T_\Gamma$ to the solid solver (Dirichlet condition) → Solve for the solid temperature field, calculate the interface heat flux $q_\Gamma$.
  2. Give the interface heat flux $q_\Gamma$ to the fluid solver (Neumann condition) → Solve for the fluid temperature field, obtain the new interface temperature $T_\Gamma^{\text{new}}$.
  3. Return to step 1 using $T_\Gamma^{\text{new}}$ as the new interface temperature.

This is repeated until the temperature converges.

🧑‍🎓

I see! It's like a game of catch, throwing temperature and heat flux back and forth.

Relaxation Factors and Stabilization

🧑‍🎓

You said earlier that relaxation factors are important. Why not just reuse the temperature as-is?

🎓

If the newly obtained interface temperature $T_\Gamma^{\text{new}}$ is used directly in the next iteration, oscillations can occur, potentially leading to divergence. This is particularly pronounced when the solid's heat capacity is smaller than the fluid's. Therefore, under-relaxation is applied:

$$ T_\Gamma^{k+1} = \omega \, T_\Gamma^{\text{new},k} + (1 - \omega) \, T_\Gamma^{k} $$

Here, $\omega \in (0, 1]$ is the relaxation factor, and $k$ is the iteration index.

🧑‍🎓

So if $\omega$ is 1, it updates directly, and if it's close to 0, it almost keeps the previous value?

🎓

Yes. A small $\omega$ is stable but slow to converge, a large $\omega$ is fast but risks divergence. In practice, $\omega = 0.3 \sim 0.7$ is a starting point, adjusted according to the problem. This is the common "trade-off between stability and convergence speed" in numerical computation.

🧑‍🎓

For example, in a gas turbine blade, what $\omega$ is typically used?

🎓

In cases like a blade where a thin solid is hit by high-temperature gas, the solid's heat capacity is relatively small, so we often start with $\omega = 0.3 \sim 0.5$. If we use Aitken acceleration, which we'll explain later, $\omega$ can be adjusted dynamically, so there's no need to struggle with a fixed value.

Convergence Criteria

🧑‍🎓

How many iterations should we do before deciding it has "converged"?

🎓

Convergence is judged when the change in interface temperature becomes sufficiently small. A common criterion is:

$$ \frac{\| T_\Gamma^{k+1} - T_\Gamma^{k} \|_2}{\| T_\Gamma^{k+1} \|_2} < \varepsilon_{\text{rel}} $$

Here, $\varepsilon_{\text{rel}}$ is the relative convergence threshold, typically $10^{-4} \sim 10^{-6}$ for engineering accuracy. Simultaneously, the heat flux continuity residual is also monitored:

$$ R_q = \| q_f^k - q_s^k \|_\infty < \varepsilon_q $$
🧑‍🎓

So we look at both temperature and heat flux. In actual cases, about how many iterations are needed?

🎓

It depends on the nature of the problem and the relaxation method. With fixed relaxation at $\omega = 0.5$, it's typically around 10-30 iterations. Using Aitken acceleration often reduces it to 5-10 iterations. However, with strong nonlinearities (e.g., radiation or phase change), it can sometimes require 50+ iterations.

Stability Condition and Heat Capacity Ratio

🧑‍🎓

Earlier you said "divergence is more likely when the solid's heat capacity is smaller than the fluid's." Is there a theoretical basis for this?

🎓

Yes. The stability of partitioned CHT has been rigorously analyzed by Causin, Gerbeau & Nobile (2005) and others. For Dirichlet-Neumann splitting with Neumann given to the fluid side, the stability condition boils down to the "added mass effect" at the interface. Roughly speaking, when the fluid's heat capacity $\rho_f c_{p,f}$ is relatively large compared to the solid's $\rho_s c_{p,s}$, it becomes unstable without relaxation.

Quantitatively, the stability upper limit for the relaxation factor is:

$$ \omega < \frac{2 \, \rho_s c_{p,s} \, L_s}{\rho_s c_{p,s} \, L_s + \rho_f c_{p,f} \, L_f} $$

Here, $L_s, L_f$ are the characteristic lengths of the solid and fluid sides, respectively.

🧑‍🎓

For example, with liquid metals (sodium cooling), $\rho_f c_{p,f}$ is large, so it tends to be unstable, right?

🎓

Exactly. CHT analysis of liquid sodium-cooled reactor fuel rods is one of the cases where partitioned coupling struggles the most. In such cases, swapping the roles of Dirichlet and Neumann (using Robin-Neumann or Robin-Robin methods) can stabilize it. In practice, libraries like preCICE automatically handle switching between these acceleration techniques.

Coffee Break Trivia Corner

"Ping-Pong" or "Catch"?

Some researchers call the partitioned coupling iteration the "ping-pong method," but personally, I think "catch" is closer to reality. In ping-pong, you hit the opponent's ball back as-is, but in partitioned coupling, you add the "change" of the solver's calculation to the received ball (temperature) before returning it. Moreover, you adjust the ball speed (with the relaxation factor $\omega$)—if it's too fast, the opponent can't catch it (diverges), so the trick is to throw it back at just the right speed ($\omega$).

Physical Meaning of Each Term
  • Interface Temperature $T_\Gamma$: Temperature at the solid-fluid boundary. Physically, this value must match on both sides. For gas turbine blade surfaces, it's around 700–1000°C; for electronic device enclosures, around 50–100°C.
  • Interface Heat Flux $q_\Gamma$: Heat per unit area passing through the interface [W/m²]. Calculated by Fourier's law $q = -k \partial T / \partial n$. Convective heat transfer from the fluid side balances with heat conduction inside the solid.
  • Relaxation Factor $\omega$: A dimensionless parameter controlling iteration stability. $\omega = 1$ (no relaxation) corresponds to the strong coupling limit, while $\omega \to 0$ is a conservative "almost no update" setting.
  • Heat Capacity Ratio $\rho c_p$: A measure of a material's "resistance" to temperature change. Steel's $\rho c_p \approx 3.6$ MJ/(m³·K), air's $\rho c_p \approx 0.0012$ MJ/(m³·K)—they differ by about 3000 times. This ratio governs stability.
Assumptions and Applicability Limits
  • The interface is assumed fixed (non-deforming). If the interface moves (as in Fluid-Structure Interaction, FSI), additional handling (e.g., ALE method) is required.
  • Temperature jump (thermal resistance) at the interface is assumed zero. For contact thermal resistance, Robin conditions are used.
  • When accompanied by chemical reactions or ablation (e.g., re-entry vehicle heat shields), additional interface conditions for mass and energy are needed.
  • For steady CHT problems, only the number of iterations matters, but for unsteady problems, convergence is required within each time step (sub-iterations).

Numerical Methods and Implementation

Overall Iteration Algorithm

🧑‍🎓

I understand the theory, but can you show me the actual algorithm in pseudo-code?

🎓

Here's the pseudo-code for Dirichlet-Neumann partitioned coupling for a steady problem:

  1. Set initial estimate for interface temperature $T_\Gamma^{0}$
  2. do $k = 0, 1, 2, \ldots$
    • Solid solver: Solve heat conduction equation with $T_\Gamma^k$ as Dirichlet BC → Calculate interface heat flux $q_s^k$
    • Fluid solver: Solve NS + energy equations with $q_s^k$ as Neumann BC → Obtain interface temperature $T_f^k$
    • Relaxation: $T_\Gamma^{k+1} = \omega \, T_f^k + (1 - \omega) \, T_\Gamma^k$
    • Convergence check: If $\| T_\Gamma^{k+1} - T_\Gamma^k \| / \| T_\Gamma^{k+1} \| < \varepsilon$, exit.
  3. end do
🧑‍🎓

Simple! But the tricky part in actual implementation is how to pass data between the two solvers, right?

🎓

Sharp observation. There are three challenges in data exchange:

  • Mesh Mismatch: Node positions on the interface differ between CFD and FEM meshes → Interpolation is needed.
  • Data Format Differences: Each solver has different output formats for temperature and heat flux.
  • Inter-process Communication: For MPI parallel runs, data transfer between different process groups.

Coupling middleware like MpCCI or preCICE automates these tasks.

Aitken Acceleration and Quasi-Newton Methods

🧑‍🎓

You said fixed $\omega$ is slow. Please teach me methods to optimize it dynamically.

🎓

The most widely used is Aitken $\Delta^2$ acceleration. It automatically estimates the optimal relaxation factor each iteration:

$$ \omega^{k+1} = -\omega^k \frac{(\Delta r^{k-1})^T \, (\Delta r^k - \Delta r^{k-1})}{\| \Delta r^k - \Delta r^{k-1} \|_2^2} $$

Here, $r^k = T_f^k - T_\Gamma^k$ (residual), $\Delta r^k = r^k - r^{k-1}$ (residual difference).

🧑‍🎓

So it estimates the optimal $\omega$ from the results of the previous two iterations. Is it like Newton's method?

🎓

Conceptually, yes. A more advanced method is the Quasi-Newton method (IQN-ILS). It approximates the interface "Jacobian" from the history of several past iterations to find the optimal update direction in multiple dimensions. In preCICE, IQN-ILS is the default acceleration method and shows the fastest convergence in many CHT benchmarks.

Acceleration MethodConvergence SpeedMemory UsageImplementation Difficulty
Fixed RelaxationSlow (linear)O(1)Easy
Aitken $\Delta^2$MediumO(N)Easy
IQN-ILS (Quasi-Newton)Fast (superlinear)O(N·m)Medium
Anderson AccelerationFastO(N·m)Medium

Interpolation Between Different Meshes

🧑‍🎓

When the interface meshes for CFD and FEM are different, how do you transfer temperature and heat flux?

🎓

There are mainly three techniques:

  • Nearest Neighbor Interpolation: Use the value of the closest node. Simple but low accuracy.
  • RBF (Radial Basis Function) Interpolation: Construct a smooth interpolation surface from all node values. High accuracy but costly for large-scale problems.
  • Projection Method (Mortar Method): Precisely calculate the overlap of interface elements to achieve conservative transfer. Highest conservation for heat flux.

It's important that Point-to-Point interpolation is fine for temperature, but conservative transfer (where the total heat amount matches across the entire interface) is needed for heat flux. Otherwise, energy can be created or destroyed.

Time Integration for Unsteady Problems

🧑‍🎓

For unsteady analysis, do we need iterations every time step? That sounds incredibly time-consuming...

🎓

That's the biggest computational cost factor in partitioned coupling. Interface iterations (sub-iterations) are needed within each time step $\Delta t$. However, there are countermeasures:

  • Loose coupling: Exchange only once per step (no iteration). Lower accuracy but fast. Acceptable if the time step is sufficiently small.
  • Tight coupling: Iterate until convergence each step. Accuracy guaranteed.
  • Use of predictors: Extrapolate the next interface temperature from the previous step's solution to improve initial guess accuracy and reduce iteration count.

For unsteady problems, it's also possible to use different time steps for the fluid and solid sides (subcycling). The fluid's convective time scale $\Delta t_f \sim \Delta x / u$ and the solid's thermal diffusion time scale $\Delta t_s \sim \Delta x^2 / \alpha_s$ often differ greatly, and subcycling can significantly improve computational efficiency.

Analogy for Explicit and Implicit Methods

The difference between Loose coupling and Tight coupling is similar to "issuing a weather forecast once vs. revising it multiple times."

関連シミュレーター

この分野のインタラクティブシミュレーターで理論を体感しよう

シミュレーター一覧

関連する分野

構造解析流体解析製造プロセス解析
この記事の評価
ご回答ありがとうございます!
参考に
なった
もっと
詳しく
誤りを
報告
参考になった
0
もっと詳しく
0
誤りを報告
0
Written by NovaSolver Contributors
Anonymous Engineers & AI — サイトマップ
About the Authors