Skip to content

Commit af40ba4

Browse files
committed
Add process output line limit, skip duplicate problem types in task flow, split fluid theory manuals and consolidate 1.3.0 release notes
1 parent b254843 commit af40ba4

24 files changed

Lines changed: 2307 additions & 1733 deletions

‎src/fea/CMakeLists.txt‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,8 @@ fea_add_icon_resources(icons-action "/icons/action"
464464
pixmaps/range-close.svg
465465
pixmaps/range-ok.svg
466466
pixmaps/range-remove.svg
467+
pixmaps/range-spin_down.svg
468+
pixmaps/range-spin_up.svg
467469
pixmaps/range-undo.svg
468470
)
469471

‎src/fea/doc/RELEASE_NOTES.md‎

Lines changed: 97 additions & 302 deletions
Large diffs are not rendered by default.

‎src/fea/help/theory/en/index.json‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
"title": "Acoustics",
66
"file": "theory_acoustic.md"
77
},
8+
{
9+
"title": "Contaminant dispersion",
10+
"file": "theory_fluid_particle.md"
11+
},
812
{
913
"title": "Electro-statics",
1014
"file": "theory_electrostatics.md"
@@ -17,6 +21,10 @@
1721
"title": "Heat transfer",
1822
"file": "theory_heat.md"
1923
},
24+
{
25+
"title": "Heat transfer in fluids",
26+
"file": "theory_fluid_heat.md"
27+
},
2028
{
2129
"title": "Magneto-statics",
2230
"file": "theory_magnetostatics.md"

‎src/fea/help/theory/en/theory_fluid.md‎

Lines changed: 70 additions & 509 deletions
Large diffs are not rendered by default.
Lines changed: 218 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,218 @@
1+
# Heat Transfer in Fluids - Theory Manual and User Guide
2+
3+
This document describes the fluid heat solver of Range FEA - `RSolverFluidHeat`,
4+
which serves the **Heat transfer in fluids** problem type: the equation it
5+
solves, the meaning of every input it accepts, its coupling to the heat solver
6+
of a solid, and the parts of the graphical user interface that drive it.
7+
8+
Heat transfer in fluids is solved on the flow field of an **Incompressible
9+
viscous flow** task. The flow solver, its boundary conditions, its non-linear
10+
iteration and its time march are described in the [Fluid flow](theory_fluid.md)
11+
manual, and the heat solver of solids in the [Heat transfer](theory_heat.md)
12+
manual.
13+
14+
**Contents**
15+
16+
1. [Theoretical background](#1-theoretical-background)
17+
2. [Graphical user interface](#2-graphical-user-interface)
18+
3. [Limitations](#3-limitations)
19+
20+
---
21+
22+
## 1. Theoretical background
23+
24+
### 1.1 Primary unknown - the temperature
25+
26+
The primary unknown is the **temperature** `T` in `K`, one degree of freedom per
27+
node.
28+
29+
| Problem type | Solver | Primary unknown | Units | DOF per node |
30+
|---|---|---|---|---|
31+
| Heat transfer in fluids | `RSolverFluidHeat` | temperature | `K` | 1 |
32+
33+
The problem type **requires** an *Incompressible viscous flow* task in the same
34+
problem: it reads the velocity field from its result and never computes it
35+
itself.
36+
37+
### 1.2 Governing equation
38+
39+
**Heat transfer in fluids** solves the advection-diffusion of temperature on the
40+
flow field,
41+
42+
```
43+
rho * c * ( dT/dt + v . grad(T) ) = div( k * grad(T) ) + q
44+
```
45+
46+
with the same SUPG stabilisation of the convective term as the flow solver and
47+
the same theta time march. The velocity `v` is **recovered from the flow
48+
result**, not solved here - which is why the problem type requires an
49+
*Incompressible viscous flow* task.
50+
51+
| Symbol | Meaning | Units | Source |
52+
|---|---|---|---|
53+
| `T` | temperature | `K` | solved for |
54+
| `v` | velocity | `m/s` | the flow result |
55+
| `k` | thermal conductivity | `W/(m*K)` | material property |
56+
| `c` | heat capacity | `J/(kg*K)` | material property |
57+
| `rho` | density | `kg/m^3` | material property |
58+
| `q` | heat source density | `W/m^3` | Heat condition, Joule heat, radiation |
59+
60+
The difference from the plain **Heat transfer** problem type is exactly the
61+
`v . grad(T)` term: energy is carried along by the moving fluid rather than only
62+
conducted. That also means this solver has no convection boundary conditions -
63+
there is nothing to correlate, since the heat leaving a wall into the fluid is
64+
resolved by the mesh rather than modelled.
65+
66+
### 1.3 Boundary conditions
67+
68+
| Boundary condition | Type | Applies to | Components |
69+
|---|---|---|---|
70+
| Temperature | explicit (Dirichlet) | point, line, surface, volume | Temperature `[K]` |
71+
| Heat | natural, source | point, line, surface, volume | Heat `[W]` |
72+
73+
**Temperature** holds the nodes of its entity at the given value. Assign it to
74+
the inlet surface to set the temperature of the fluid entering the domain, and
75+
to a wall to model a heated or cooled boundary.
76+
77+
**Heat** is a source and takes the **total power in `W`** delivered into the
78+
entity, spread over the measure of the entity before assembly - the same
79+
convention as the heat solver. *Heat rate (unit area)* and *Heat rate (unit
80+
volume)* are offered by the interface for this problem type but are **not read**
81+
by the fluid heat solver; use *Heat* for a source here.
82+
83+
Every component is a **table against time**.
84+
85+
The flow conditions - walls, inlets and outlets - belong to the flow task and
86+
are described in the [Fluid flow](theory_fluid.md) manual.
87+
88+
### 1.4 Conjugate heat transfer
89+
90+
A wall between a meshed fluid and a meshed solid carrying the **Forced
91+
convection** condition of the plain *Heat transfer* solver couples the two. Once
92+
the heat solver has run, the fluid heat solver holds the wall nodes at the
93+
temperature of the solid - until then the wall is insulated - and hands back,
94+
for every wall element, the pair `(h, Tf)` that reproduces the heat flux its
95+
solution takes through the wall. The heat solver applies that pair as a
96+
convection condition. The flux is the residual of the fluid equations at the wall
97+
nodes, consistent with the discretisation, so it stays accurate in a thin thermal
98+
boundary layer. The wall temperature is relaxed with an Aitken factor from pass
99+
to pass, which settles the exchange in a handful of passes. The
100+
[Heat transfer](theory_heat.md) manual describes the scheme under *Conjugate
101+
heat transfer*. Radiative heat and Joule heat arriving from other solvers are
102+
added to the source term the same way as in the heat solver.
103+
104+
### 1.5 Convergence
105+
106+
Uncoupled, the fluid heat solver reports itself as converged unconditionally -
107+
it is linear once the flow field is fixed, so one solve is the final answer. A
108+
group holding both the flow and the fluid heat task therefore ends when the flow
109+
task converges. With coupled walls it reports the relative change of its
110+
temperature field instead, so the group iterates until the wall temperature has
111+
settled.
112+
113+
### 1.6 Initial conditions
114+
115+
| Initial condition | Effect |
116+
|---|---|
117+
| Temperature | initial temperature field |
118+
119+
Initial conditions are read on the **first run only**; after that the field
120+
marches from the previous result. A boundary condition overrides an initial
121+
condition where the two meet.
122+
123+
### 1.7 Results
124+
125+
| Result | Apply to | Meaning |
126+
|---|---|---|
127+
| Temperature `[K]` | node | the solved temperature field |
128+
| Heat flux `[W/m^2]` | element | conductive flux `-k*grad(T)` |
129+
130+
---
131+
132+
## 2. Graphical user interface
133+
134+
Everything relevant lives in the **Solver** dock (`Problem`,
135+
`Boundary conditions`, `Initial conditions`, `Material`, `Results` tabs), the
136+
**Problem** menu and the **Model** dock.
137+
138+
### 2.1 Selecting the problem
139+
140+
`Problem` -> `Problem(s) task flow` (`Ctrl+P`) opens the problem task flow
141+
dialog. The combinations worth knowing:
142+
143+
- *Incompressible viscous flow* and *Heat transfer in fluids* in one group - a
144+
heated or cooled flow;
145+
- *Heat transfer in fluids* and a separate *Heat transfer* task on a meshed
146+
solid, the fluid heat task first, in one group of several iterations -
147+
conjugate heat transfer through the walls carrying *Forced convection*.
148+
149+
The problem type requires a flow task to be present. The task group values -
150+
**# of iterations** and **Convergence** - are described in the
151+
[Fluid flow](theory_fluid.md) manual.
152+
153+
### 2.2 Problem tab
154+
155+
**Time-solver** - shown since the problem type is time-dependent. Leave it
156+
disabled for a steady-state run. Its fields are described in the
157+
[Fluid flow](theory_fluid.md) manual.
158+
159+
The problem type has no setup group box of its own. Everything else is assigned
160+
per entity in the condition tabs.
161+
162+
### 2.3 Material tab
163+
164+
| Property | Units | Comment |
165+
|---|---|---|
166+
| Density | `kg/m^3` | `rho`, about `1000` for water, `1.2` for air |
167+
| Dynamic viscosity | `kg/(m*s)` | `mu`, about `1.0e-3` for water, `1.8e-5` for air |
168+
| Thermal conductivity | `W/(m*K)` | `k`, about `0.6` for water, `0.025` for air |
169+
| Heat capacity | `J/(kg*K)` | `c`, about `4180` for water, `1005` for air |
170+
171+
An entity missing any required property is not solved, and the setup checker
172+
warns before the run starts. The shipped material database includes **Water**
173+
and **Air**, which is usually the whole of this step. Every property is a table
174+
against temperature, evaluated at the element temperature of the previous run.
175+
176+
### 2.4 Boundary conditions tab
177+
178+
**Temperature** and **Heat** appear once a *Heat transfer in fluids* task is in
179+
the task flow - see section 1.3. Every component is a table against time; click
180+
**Edit time dependent values** to enter values against time.
181+
182+
### 2.5 Initial conditions
183+
184+
The `Initial conditions` tab offers *Temperature*. It sets the starting field of
185+
the first run.
186+
187+
### 2.6 Matrix solver setup
188+
189+
`Problem` -> `Setup Problem(s) matrix solver` configures the iterative solvers.
190+
The fluid heat solver uses the **GMRES** entry, since its matrix is not
191+
symmetric.
192+
193+
### 2.7 Monitoring points and results
194+
195+
`Problem` -> `Define monitoring points` can record *Temperature*. The `Results`
196+
tab shows temperature as a node scalar and heat flux as an element vector.
197+
198+
---
199+
200+
## 3. Limitations
201+
202+
- **No buoyancy.** The density does not depend on temperature, so a *Heat
203+
transfer in fluids* result never drives the flow it was computed on. Natural
204+
convection, thermal plumes and stratification cannot be modelled.
205+
- **The coupling to the flow is one-way.** The flow drives the heat transport;
206+
the temperature never changes the flow.
207+
- **`Heat rate` conditions are ignored.** *Heat rate (unit area)* and *Heat rate
208+
(unit volume)* are offered by the interface for *Heat transfer in fluids* but
209+
are not read by `RSolverFluidHeat`; only the *Heat* condition reaches it. The
210+
plain *Heat transfer* problem type does read all three.
211+
- **No convection boundary conditions.** Heat leaving a wall into a meshed fluid
212+
is resolved rather than correlated, so the *Simple*, *Forced* and *Natural
213+
convection* conditions belong to the plain heat solver. Conjugate heat
214+
transfer is set up as a *Heat transfer* task on the solid whose *Forced
215+
convection* walls read the computed fluid state.
216+
- **No turbulence model.** The flow is laminar, see the
217+
[Fluid flow](theory_fluid.md) manual, so turbulent heat transfer is not
218+
represented.

0 commit comments

Comments
 (0)