-
Notifications
You must be signed in to change notification settings - Fork 30
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' of https://github.com/feelpp/book.feelpp.org i…
…nto develop
- Loading branch information
Showing
19 changed files
with
206 additions
and
37 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -38,3 +38,6 @@ jupyter/ | |
/**/node_modules/ | ||
/**/build/ | ||
/**/feelppdb/ | ||
/**/toto/ | ||
/**/*DS_Store | ||
|
File renamed without changes
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,10 +0,0 @@ | ||
* xref:toolboxmor.adoc[ToolboxMor] | ||
** xref:toolboxmor.adoc#_creating_a_model_from_scratch[Creating a model from scratch] | ||
** xref:toolboxmor.adoc#_creating_a_model_from_a_toolbox[Creating a model from a toolbox] | ||
** xref:toolboxmor.adoc#_configuration[Configuration] | ||
* xref:pbdw.adoc[PBDW] | ||
** xref:pbdw.adoc#_sensors[Sensors] | ||
** xref:pbdw.adoc#_using_pbdw[Using PBDW] | ||
* xref:index.adoc#_cases[Cases] | ||
** xref:opusheat:index.adoc[OpusHeat] | ||
** xref:thermalfin:index.adoc[ThermalFin] | ||
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,15 +1,6 @@ | ||
= Model Order Reduction | ||
:page-layout: case-study | ||
:page-tags: toolbox | ||
|
||
Welcome to the documentation of the Feel++ Model Order Reduction. | ||
|
||
== Introduction | ||
|
||
Feel++ provides a framework for model order reduction. + | ||
One easy way to use it, is to use the xref:toolboxmor.adoc[ToolboxMor] class. | ||
|
||
The Parametrized Background Data Weak (xref:pbdw.adoc[PBDW]) method has also been implemented in Feel++. | ||
|
||
== Cases | ||
|
||
- xref:opusheat:index.adoc[OpusHeat] | ||
- xref:thermalfin:index.adoc[ThermalFin] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,4 +1,8 @@ | ||
= Opus Heat | ||
:page-tags: case | ||
:page-illustration: opusheat/eads_geometry.png | ||
:description: We consider a reduced 2D model of the surroundings of an electronic component submitted to a cooling air flow. | ||
|
||
|
||
This test case has been proposed by mailto:[email protected][Annabelle Le-Hyaric] and | ||
mailto:[email protected][Michel Fouquembergh] formerly at AIRBUS. | ||
|
@@ -28,7 +32,7 @@ stem:[k_1] and stem:[k_2] are parameters of the model. | |
|
||
ICs dissipate heat, so the volumic heat dissipated stem:[Q_1] and stem:[Q_2] are also parameters of the model, while stem:[Q_3=Q_4=0]. | ||
|
||
image::eads_geometry.png[] | ||
image::opusheat/eads_geometry.png[] | ||
|
||
One should notice that the convection term in heat transfer equation | ||
may lead to spatial oscillations which can be overcome by | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
= Thermal simulation of 3D building | ||
:stem: latexmath | ||
:page-tags: case | ||
:page-illustration: thermalbuilding/3d_building.png | ||
:description: We create a reduced order model for the thermal simulation of a 3D building using the stationary heat equation. | ||
:uri-data: https://github.com/feelpp/feelpp/blob/develop/mor/examples/thermalbuilding/ | ||
|
||
== Description | ||
|
||
Based on the solution of the stationary heat equation, we create a reduced order model for the simulation of heat exchanges in a 3D building. | ||
|
||
The building is composed of a corridor and 5 rooms, each of which contains a heating unit. Internal walls and doors are modelled as having finite thickness, while external walls properties (thickness and insulation) are encoded in the boundary conditions of the problem. | ||
|
||
// Image | ||
|
||
=== Mathematical model | ||
|
||
Let stem:[\Omega \subset \mathbb{R}^3] be the region occupied by the building, and denote stem:[\Omega_i], stem:[i=0,1,2] its subregions occupied by the air, the internal walls and the internal doors, such that stem:[\Omega = \cup_{i=0}^2 \Omega_i]. Let stem:[k_i] be the thermal conductivities associated with the subregions. | ||
|
||
The external boundary of the domain stem:[\partial \Omega] is decomposed into two parts: stem:[\partial \Omega_{ext}], which corresponds to external walls, and stem:[\partial \Omega_D] which corresponds to the front door. We denote by stem:[\Gamma_i] the boundary of the stem:[i-]th heating unit, stem:[i=0,...,4]. The problem writes as | ||
|
||
[stem] | ||
++++ | ||
\begin{equation} | ||
\begin{aligned} | ||
- \nabla \cdot (k_i\nabla u) &= 0, \quad &\text{on }\Omega_i \\ | ||
u &= \mu_i \quad &\text{on }\Gamma_i, i=0,...,4, \\ | ||
- k_0 \nabla u \cdot \vec{n} &= \mu_6 (u - \mu_5), \quad &\text{on }\partial \Omega_{ext},\\ | ||
- k_0 \nabla u \cdot \vec{n} &= \sigma (u - \mu_5), \quad &\text{on }\partial \Omega_{D}. | ||
\end{aligned} | ||
\end{equation} | ||
++++ | ||
where stem:[\sigma] is the convective heat exchange coefficient associated with the front door. | ||
|
||
The parameters stem:[\mu_i] correspond to | ||
|
||
* stem:[\mu_i \in (300,340)], for stem:[i=0,...,4], are the surface temperatures of the heating units (in Kelvin); | ||
* stem:[\mu_5 \in (270,290)] is the external temperature (in Kelvin); | ||
* stem:[\mu_6] is a function of the external wall thickness. The wall is composed of two layers: a cinder layer of thickness stem:[l_{cinder} \in (0.1,0.3) m] and an insulation layer of thickness stem:[l_{insulation} \in (0.1,0.2) m], and | ||
|
||
[stem] | ||
++++ | ||
\mu_6 = \frac{1}{0.06 + \frac{0.01}{0.5} + \frac{l_{cinder}}{0.8} + \frac{l_{insulation}}{0.032} + \frac{0.016}{0.313} + 0.14}. | ||
++++ | ||
|
||
=== Construction of the affine decomposition | ||
|
||
The problem presents an affine dependence on the parameters, hence we can explicity compute the terms of the correspondent affine decomposition | ||
|
||
[stem] | ||
++++ | ||
\sum_{i = 0}^{N_A} \theta^A_i(\mu) A_i(u,v) = \sum_{j = 0}^{N_F} \theta^F_j(\mu) F_j(v), | ||
++++ | ||
where stem:[N_A = 1] and stem:[N_F = 6]. | ||
|
||
The first product on the left-hand side is given by stem:[\theta^A_0(\mu) = 1] and | ||
|
||
[stem] | ||
++++ | ||
\begin{equation} | ||
\begin{aligned} | ||
A_0(u,v) &= \sum_{i=0}^{N_m} \int_{\Omega_i} k_i \nabla u \cdot \nabla v + \\ | ||
& - \int_{\partial \Omega_{ext}} k_0 (\nabla u v + \nabla v u )\cdot \vec{n} + \\ | ||
& + \int_{\partial \Omega_{ext}} k_0 \frac{\gamma}{h} u v +\\ | ||
& + \int_{\partial \Omega_D} uv, | ||
\end{aligned} | ||
\end{equation} | ||
++++ | ||
|
||
where stem:[\gamma] is the Nitsche penalty parameter and stem:[h] is the local mesh size. | ||
|
||
The second product is given by stem:[\theta^A_1(\mu) = \mu_6] and | ||
|
||
[stem] | ||
++++ | ||
A_1(u,v) = \int_{\partial \Omega_{ext}} u v. | ||
++++ | ||
|
||
The terms on the right-hand side are stem:[\theta^F_i(\mu) = \mu_i] for stem:[i=0,...,4], corresponding to the temperatures of the heating units, stem:[\theta^F_5(\mu) = \mu_5\mu_6], corresponding to the temperature on the internal surface of the external walls, and stem:[\theta^F_6(\mu) = \mu_5], corresponding to the external temperature. The corresponding linear forms are | ||
|
||
[stem] | ||
++++ | ||
\begin{equation} | ||
\begin{aligned} | ||
F_i (v) &= k_0 \int_{\Gamma_i} -\nabla v \cdot \vec{n} + \frac{\gamma}{h} v, \quad i = 0,...,4\\ | ||
F_5 (v) &= \int_{\partial \Omega_{ext}} v,\\ | ||
F_6 (v) &= \int_{\partial \Omega_D} \sigma v. | ||
\end{aligned} | ||
\end{equation} | ||
++++ | ||
|
||
=== Geometry | ||
|
||
image::thermalbuilding/heat_3d.png[] | ||
|
||
The geometry file can be found in Github link:{uri-data}/thermalbuilding/thermalbuilding.geo[here]. | ||
|
||
== Output | ||
|
||
The output corresponds to the air mean temperature, and it is computed as | ||
|
||
[stem] | ||
++++ | ||
\begin{equation} | ||
s(\mu) = \frac{1}{|\Omega_0|} \int_{\Omega_0} u. | ||
\end{equation} | ||
++++ | ||
|
||
== Parameters | ||
|
||
The table displays the various fixed and variables parameters of this test-case. | ||
|
||
.Table of model order reduction parameters | ||
[width="100%"] | ||
|======================================================================= | ||
| Name | Description | Range | Units | ||
| stem:[\mu_0] | Heater temperature living room | stem:[[300,340]] | stem:[K] | ||
| stem:[\mu_1] | Heater temperature kitchen | stem:[[300,340]] | stem:[K] | ||
| stem:[\mu_2] | Heater temperature bedroom 1 | stem:[[300,340]] | stem:[K] | ||
| stem:[\mu_3] | Heater temperature bedroom 2 | stem:[[300,340]] | stem:[K] | ||
| stem:[\mu_4] | Heater temperature bathroom | stem:[[300,340]] | stem:[K] | ||
| stem:[\mu_5] | External temperature | stem:[[270,290]] | stem:[K] | ||
| stem:[\mu_6] | Exchange coefficient external walls | | | ||
|======================================================================= | ||
|
||
.Table of constant parameters | ||
[width="100%"] | ||
|======================================================================= | ||
| Name | Description | Range | Units | ||
| stem:[\gamma] | Boundary conditions using Nitsche method | stem:[[10]] | | ||
| stem:[\k_0] | Air conductivity | stem:[1] | | ||
| stem:[\k_1] | Conductivity - internal walls | stem:[0.25] | | ||
| stem:[\k_2] | Conductivity - internal doors | stem:[0.13] | | ||
| stem:[\sigma] | Heat transfer coefficient - front door | stem:[\frac{1.0}{0.06+\frac{0.06}{0.150}+\frac{0.1}{0.029}+0.14}] | | ||
|======================================================================= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
= Thermal fin | ||
:page-tags: case | ||
:page-illustration: pass:[toolboxes::wip/wip-1.svg] | ||
:description: Work in progress. | ||
|
||
The redaction of this page is in progress. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,4 +2,7 @@ pyvista | |
xvfbwrapper | ||
ipykernel | ||
pythreejs | ||
plotly | ||
plotly | ||
trame-vtk | ||
trame | ||
spdlog |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters