(remove preliminary warning) |
(Add categories, small fixes) |
||
Line 1: | Line 1: | ||
[[Category:benchmark]] |
[[Category:benchmark]] |
||
[[Category:procedural]] |
[[Category:procedural]] |
||
+ | [[Category:linear]] |
||
+ | [[Category:time invariant]] |
||
+ | [[Category:first differential order]] |
||
[[Category:SISO]] |
[[Category:SISO]] |
||
[[Category:Sparse]] |
[[Category:Sparse]] |
||
Line 6: | Line 9: | ||
==Description== |
==Description== |
||
− | The '''Convection-Diffusion''' benchmark is given by a finite-difference discretization of a two-dimensional dynamic convection-diffusion heat equation on a unit square domain, which was introduced as |
+ | The '''Convection-Diffusion''' benchmark is given by a finite-difference discretization of a two-dimensional dynamic convection-diffusion heat equation on a unit square domain, which was introduced as an example in <ref name="lyapack"/>: |
:<math> |
:<math> |
||
Line 15: | Line 18: | ||
</math> |
</math> |
||
− | For this procedural partial differential equation benchmark Dirichlet boundary conditions are used. |
+ | For this procedural partial differential equation benchmark, Dirichlet boundary conditions are used. |
− | The setup of this benchmark is rather generic, in that it allows based on the configuration of <math>f_x</math>, <math>f_y</math>, <math>g</math> and <math>f</math> to tune the influence of the diffusive, convective and reactive differential operators. |
+ | The setup of this benchmark is rather generic, in that it allows based on the configuration of <math>f_x</math>, <math>f_y</math>, <math>g</math>, and <math>f</math> to tune the influence of the diffusive, convective and reactive differential operators. |
==Origin== |
==Origin== |
||
Line 26: | Line 29: | ||
In the folder <tt>examples</tt> of LYAPCK the MATLAB functions <tt>fdm_2d_matrix</tt> and <tt>fdm_2d_vector</tt> are utilized to generate the system, input matrices: |
In the folder <tt>examples</tt> of LYAPCK the MATLAB functions <tt>fdm_2d_matrix</tt> and <tt>fdm_2d_vector</tt> are utilized to generate the system, input matrices: |
||
+ | :<syntaxhighlight lang="matlab"> |
||
− | + | A = fdm_2d_matrix(n0, fx_str, fy_str, g_str); |
|
− | + | B = fdm_2d_vector(n0, f_str); |
|
+ | </syntaxhighlight> |
||
− | The |
+ | The <tt>n0</tt> argument determines the common spatial resolution, hence the discretized problem has dimension <math>N = n_0^2</math>. |
− | The arguments <tt>fx_str</tt>, <tt>fy_str</tt>, <tt>g_str</tt>, and <tt>f_str</tt> are strings (see documentation) describing the convection in the first dimension, second dimension, the reaction coefficient and the source term respectively. |
+ | The arguments <tt>fx_str</tt>, <tt>fy_str</tt>, <tt>g_str</tt>, and <tt>f_str</tt> are strings (see documentation) describing the convection in the first dimension, the second dimension, the reaction coefficient, and the source term, respectively. |
− | The output matrix can be generated in the same |
+ | The output matrix can be generated in the same fashion as the input matrix. |
For example, in <ref name="lyapack"/>, the examples are constructed with: |
For example, in <ref name="lyapack"/>, the examples are constructed with: |
||
+ | :<syntaxhighlight lang="matlab"> |
||
− | A = fdm_2d_matrix(20,'10*x','100*y','0'); |
||
− | + | A = fdm_2d_matrix(20, '10*x', '100*y', '0'); |
|
− | + | B = fdm_2d_vector(20, '.1<x<=.3'); |
|
+ | C = fdm_2d_vector(20, '.7<x<=.9')'; |
||
+ | </syntaxhighlight> |
||
resulting in a SISO system of order <math>400</math>. |
resulting in a SISO system of order <math>400</math>. |
||
Line 47: | Line 54: | ||
:<math> |
:<math> |
||
\begin{align} |
\begin{align} |
||
− | \dot{x}(t) &= |
+ | \dot{x}(t) &= A x(t) + B u(t) \\ |
− | y(t) &= |
+ | y(t) &= C x(t) |
\end{align} |
\end{align} |
||
</math> |
</math> |
||
Line 54: | Line 61: | ||
System dimensions: |
System dimensions: |
||
− | <math>A \in \mathbb{R}^{ |
+ | <math>A \in \mathbb{R}^{n \times n}</math>, |
− | <math>B \in \mathbb{R}^{ |
+ | <math>B \in \mathbb{R}^{n \times 1}</math>, |
− | <math>C \in \mathbb{R}^{1 \times |
+ | <math>C \in \mathbb{R}^{1 \times n}</math>. |
==Citation== |
==Citation== |
||
− | |||
To cite this benchmark, use the following references: |
To cite this benchmark, use the following references: |
Latest revision as of 20:07, 1 September 2023
Description
The Convection-Diffusion benchmark is given by a finite-difference discretization of a two-dimensional dynamic convection-diffusion heat equation on a unit square domain, which was introduced as an example in [1]:
For this procedural partial differential equation benchmark, Dirichlet boundary conditions are used.
The setup of this benchmark is rather generic, in that it allows based on the configuration of ,
,
, and
to tune the influence of the diffusive, convective and reactive differential operators.
Origin
This benchmark is part of LYAPACK [1].
Data
In the folder examples of LYAPCK the MATLAB functions fdm_2d_matrix and fdm_2d_vector are utilized to generate the system, input matrices:
A = fdm_2d_matrix(n0, fx_str, fy_str, g_str); B = fdm_2d_vector(n0, f_str);
The n0 argument determines the common spatial resolution, hence the discretized problem has dimension .
The arguments fx_str, fy_str, g_str, and f_str are strings (see documentation) describing the convection in the first dimension, the second dimension, the reaction coefficient, and the source term, respectively.
The output matrix can be generated in the same fashion as the input matrix.
For example, in [1], the examples are constructed with:
A = fdm_2d_matrix(20, '10*x', '100*y', '0'); B = fdm_2d_vector(20, '.1<x<=.3'); C = fdm_2d_vector(20, '.7<x<=.9')';
resulting in a SISO system of order .
Dimensions
System structure:
System dimensions:
,
,
.
Citation
To cite this benchmark, use the following references:
- For the benchmark:
- The MORwiki Community, LYAPACK - A MATLAB Toolbox for Large Lyapunov and Riccati Equations, Model Reduction Problems, and Linear–Quadratic Optimal Control Problems. Version 1.0, netlib, 1999. http://www.netlib.org/lyapack
@MISC{lyapack, author = {T. Penzl}, title = {LYAPACK - A MATLAB Toolbox for Large Lyapunov and Riccati Equations, Model Reduction Problems, and Linear–Quadratic Optimal Control Problems}, howpublished = {netlib}, note = {Version 1.0}, url = {http://www.netlib.org/lyapack}, year = {1999} }
References
- ↑ 1.0 1.1 1.2 T. Penzl. LYAPACK - A MATLAB Toolbox for Large Lyapunov and Riccati Equations, Model Reduction Problems, and Linear-Quadratic Optimal Control Problems, Version 1.0, netlib: 1999. netlib.org/lyapack/README