## State of the art {#sec-sec_1_1_State} The desire to get fast \gls{cfd} output is not new and also a data-driven approach is found in the literature. This section aims to describe some evolutionary steps of \glsfirst{cnmc}. Given that this work is built upon the most recent advancements, they will be explained in particular detail. Whereas the remaining development stages are briefly summarized to mainly clarify the differences and mention the reasons why improvements were desired. Since, this topic demands some prior knowledge to follow \gls{cnmc}'s workflow and goal, some basic principles about important topics shall be given in their subsection.\newline The first data-driven approach, which is known to the author, is by [@Kaiser2014] and shall be called \gls{cmm}. \gls{cnmc} is not directly built upon \gls{cmm} but on the latest version of \gls{cnm} and is described in [@Fernex2021]. \gls{cnmc} invokes \gls{cnm} many times in order to use its outcome for further progress. Therefore, it's evident that only if \gls{cnm} is understood, CNMc's progress can be followed. \gls{cmm} on the other hand has only a historical link to \gls{cnmc}, but no line of code of \gls{cmm} is invoked in \gls{cnmc}'s workflow. Consequently, \gls{cnm} will be explained in more detail than \gls{cmm}. ### Principles {#sec-subsec_1_1_1_Principles} CNM [@Fernex2021] is a method that uses some machine learning techniques, graphs, and probability theory to mirror the behavior of complex systems. These complex systems are described often by dynamical systems, which themselves are simply a set of differential equations. Differential equations are useful to capture motion. Thus, a dynamical system can be seen as a synonym for motion over time. Some differential equations can be solved in closed form, meaning analytically. However, for most of them either it is too difficult to obtain an analytical solution or the analytical solution is very unhandy or unknown. Unhandy in terms of the solution being expressed in too many terms. Therefore, in most cases, differential equations are solved numerically. Since the purpose of \gls{cnm} is not to be only used for analytically solvable equations, a numerical ordinary differential integrator is used. \newline The default solver is *SciPy*'s *RK45* solver. It is a widely deployed solver and can also be applied to chaotic systems for integration over a certain amount of time. Another option for solving chaotic \gls{ode}s is *LSODA*. The developers of *pySindy* [@Silva2020; @Kaptanoglu2022] state on their homepage [@pysindy_Home] that *LSODA* even outperforms the default *RK45* when it comes to chaotic dynamical systems. The reasons why for \gls{cnmc} still *RK45* was chosen will be given in section [-@sec-sec_2_2_Data_Gen]. It is important to remember that turbulent flows are chaotic. This is the main reason why in this work \gls{cnmc}, has been designed to handle not only general dynamical systems but also general chaotic attractors. Other well-known instances where chaos is found are, e.g., the weather, the motion of planets and also the financial market is believed to be chaotic. For more places, where chaos is found the reader is referred to [@Argyris2017].\newline Note that \gls{cnmc} is designed for all kinds of dynamical systems, it is not restricted to linear, nonlinear or chaotic systems. Therefore, chaotic systems shall be recorded to be only one application example of \gls{cnmc}. However, because chaotic attractors were primarily exploited in the context of the performed investigations in this work, a slightly lengthier introduction to chaotic systems is provided in the appendix [-@sec-ch_Ap_Chaotic]. Two terms that will be used extensively over this entire thesis are called model parameter value $\beta$ and a range of model parameter values $\vec{\beta}$. A regular differential equation can be expressed as in equation @eq-eq_1_0_DGL, where $F$ is denoted as the function which describes the dynamical system. The vector $\vec{x}(t)$ is the state vector. The form in which differential equations are viewed in this work is given in equation @eq-eq_1_1_MPV . $$ \begin{equation} F = \dot{\vec{x}}(t) = \frac{\vec{x}(t)}{dt} = f(\vec{x}(t)) \label{eq_1_0_DGL} \end{equation} $$ {#eq-eq_1_0_DGL} $$ \begin{equation} F_{CNMc} = \left(\dot{\vec{x}}(t), \, \vec{\beta} \right) = \left( \frac{\vec{x}(t)}{dt}, \, \vec{\beta} \right) = f(\vec{x}(t), \, \vec{\beta} ) \label{eq_1_1_MPV} \end{equation} $$ {#eq-eq_1_1_MPV} Note the vector $\vec{\beta}$ indicates a range of model parameter values, i.e., the differential equation is solved for each model parameter value $\beta$ separately. The model parameter value $\beta$ is a constant and does not depend on the time, but rather it is a user-defined value. In other terms, it remains unchanged over the entire timeline for which the dynamical system is solved. The difference between $F$ and $F_{CNMc}$ is that $F$ is the differential equation for only one $\beta$, while $F_{CNMc}$ can be considered as the same differential equation, however, solved, for a range of individual $\beta$ values. The subscript \gls{cnmc} stresses that fact that \gls{cnmc} is performed for a range of model parameter values $\vec{\beta}$. Some dynamical systems, which will be used for \gls{cnmc}'s validation can be found in section [-@sec-sec_2_2_Data_Gen]. They are written as a set of differential equations in the $\beta$ dependent form. Even a tiny change in $\beta$ can result in the emergence of an entirely different trajectory. \newline In summary, the following key aspects can be concluded. The reason why \gls{cnmc} in future releases is believed to be able to manage real \gls{cfd} fluid flow data and make predictions for unknown model parameter values $\beta$ is that turbulent flows are chaotic. Thus, allowing \gls{cnmc} to work with chaotic attractors in the course of this thesis is considered to be the first step toward predicting entire flow fields.