Skip to content

Commit 389c26f

Browse files
authored
Merge pull request #64 from su2code/feature_species
Species transport theory + tutorials
2 parents cb4e642 + ca27520 commit 389c26f

File tree

19 files changed

+527
-6
lines changed

19 files changed

+527
-6
lines changed

_data/tutorials.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
- Inc_Laminar_Step
2727
- Inc_Laminar_Cavity
2828
- Inc_Streamwise_Periodic
29+
- Inc_Species_Transport
2930

3031
- title: Structural Mechanics
3132
tutorials:
@@ -48,6 +49,7 @@
4849
- Inviscid_3D_Constrained_ONERAM6
4950
- Multi_Objective_Shape_Design
5051
- Unsteady_Shape_Opt_NACA0012
52+
- Species_Transport
5153

5254
- title: Event Content
5355
tutorials:

_docs_v7/Theory.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ This page contains a very brief summary of the different governing equation sets
1212
- [Incompressible Navier-Stokes](#incompressible-navier-stokes)
1313
- [Incompressible Euler](#incompressible-euler)
1414
- [Turbulence Modeling](#turbulence-modeling)
15+
- [Species Transport](#species-transport)
1516
- [Elasticity](#elasticity)
1617
- [Heat Conduction](#heat-conduction)
1718

@@ -169,6 +170,34 @@ Within the turbulence solvers, we discretize the equations in space using a fini
169170

170171
---
171172

173+
# Species Transport #
174+
175+
Compatible with `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`
176+
177+
$$ \mathcal{R}(U) = \frac{\partial U}{\partial t} + \nabla \cdot \bar{F}^{c}(U) - \nabla \cdot \bar{F}^{v}(U,\nabla U) - S = 0 $$
178+
179+
where the conservative variables (which are also the working variables) are given by
180+
181+
$$U=\left\lbrace \rho Y_1, ..., \rho Y_{N-1} \right\rbrace ^\mathsf{T}$$
182+
183+
with $$Y_i$$ $$[-]$$ being the species mass fraction. And
184+
185+
$$\sum_{i=0}^N Y_i = 1 \Rightarrow Y_N = 1 - \sum_{i=0}^{N-1} Y_i$$
186+
187+
$$S$$ is a generic source term, and the convective and viscous fluxes are
188+
189+
$$\bar{F}^{c}(V) = \left\{\begin{array}{c} \rho Y_1 \bar{v} \\ ... \\\rho Y_{N-1} \, \bar{v} \end{array} \right\}$$
190+
191+
$$\bar{F}^{v}(V,\nabla V) = \left\{\begin{array}{c} D \nabla Y_{1} \\ ... \\ D \nabla Y_{N-1} \end{array} \right\} $$
192+
193+
with $$D$$ $$[m^2/s]$$ being the mass diffusion.
194+
195+
$$D = D_{lam} + \frac{\mu_T}{Sc_{T}}$$
196+
197+
where $$\mu_T$$ is the eddy viscosity and $$Sc_{T}$$ $$[-]$$ the turbulent Schmidt number.
198+
199+
---
200+
172201
# Elasticity #
173202

174203
| Solver | Version |

_tutorials/design_features/Inviscid_3D_Constrained_ONERAM6/Inviscid_3D_Constrained_ONERAM6.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ FFD_CONTINUITY= 2ND_DERIVATIVE
101101

102102
As the current implementation requires each FFD box to be a quadrilaterally-faced hexahedron (6 faces, 12 edges, 8 vertices), we can simply specify the 8 corner points of the box and the polynomial degree we would like to represent along each coordinate direction (x,y,z) in order to create the complete lattice of control points. It is convenient to think of the FFD box as a small structured mesh block with (i,j,k) indices for the control points, and note that the number of control points in each direction is the specified polynomial degree plus one.
103103

104-
In the example above, we are creating a box with control point dimensions 11, 9, and 2 in the x-, y-, and z-directions, respectively, for a total of 198 available control points. In the `FFD_DEFINITION` option, we give a name to the box ("WING"), and then list out the x, y, and z coordinates of each corner point. The order is important, and you can use the example above to match the convention. The degree is then specified in the `FFD_DEGREE` option. A view of the box with the control points numbered is in Figure (3). Note that the numbering in the figure is 1-based just for visualization, but within SU2, the control points have 0-based indexing. For example, the (1,1,1) control point in the figure is control point (0,0,0) within SU2. This is critical for specifying the design variables in the config file.
104+
In the example above, we are creating a box with control point dimensions 11, 9, and 2 in the x-, y-, and z-directions, respectively, for a total of 198 available control points. In the `FFD_DEFINITION` option, we give a name to the box ("WING"), and then list out the x, y, and z coordinates of each corner point. The order is important, and you can use the example above to match the convention. Alternatively, [this tutorial](/tutorials/Species_Transport/) contains more in-depth information on how the numbering should be done. The degree is then specified in the `FFD_DEGREE` option. A view of the box with the control points numbered is in Figure (3). Note that the numbering in the figure is 1-based just for visualization, but within SU2, the control points have 0-based indexing. For example, the (1,1,1) control point in the figure is control point (0,0,0) within SU2. This is critical for specifying the design variables in the config file.
105105

106106
![Opt. ONERA FFD](../../tutorials_files/design_features/Inviscid_3D_Constrained_ONERAM6/images/onera_ffd_points.png)
107107
Figure (3): View of the control point identifying indices, which increase in value along the positive coordinate directions. Note that the numbering here is 1-based just for visualization, but within SU2, the control points have 0-based indexing.

_tutorials/design_features/Multi_Objective_Shape_Design/Multi_Objective_Shape_Design.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ OBJECTIVE_WEIGHT= -1.0E-7,1.0
7171
```
7272
These options define a weighted sum: -1.0E-7 x (SURFACE_TOTAL_PRESSURE at the outlet) + (DRAG on the lower surface). The OBJECTIVE_FUNCTION and OBJECTIVE_WEIGHT options are set automatically during the optimization process, and are used for the calculation of the gradient. If we were starting this problem from scratch, at this point we would run the gradient method desired, in order to confirm that the gradients are being calculated as expected. In this tutorial, the discrete adjoint is used by default. When multiple objectives are specified as shown, a single adjoint solution for a 'combo' objective will be calculated, representing the gradient for the weighted sum. The upside of this is that it reduces the number of adjoint solutions required, with the downside that the contributions of different functionals to the gradient value will not be known.
7373

74-
Next the FFD box is defined in order to provide the design variables. The mesh is provided with the FFD box information already included, however when starting from scratch a preprocessing step using SU2_MSH is required. For further detail on FFD, see the [Constrainted Optimal Shape Design Tutorial](/tutorials/Inviscid_3D_Constrained_ONERAM6/).
74+
Next the FFD box is defined in order to provide the design variables. The mesh is provided with the FFD box information already included, however when starting from scratch a preprocessing step using SU2_MSH is required. For further detail on FFD, see this [Unconstrained species transport tutorial](/tutorials/Species_Transport/) or [Constrainted Optimal Shape Design Tutorial](/tutorials/Inviscid_3D_Constrained_ONERAM6/).
7575
```
7676
% -------------------- FREE-FORM DEFORMATION PARAMETERS -----------------------%
7777
%

0 commit comments

Comments
 (0)