### Software structure

The steps to follow in the development of a software applicable to the Computational Fluid Dynamics can be summarized in the following drawing:

#### Problem definition

This step comprises the knowledge of the behaviour of the system to study. This is applicable not only to Fluid Dynamics, but also to any physical system to study.

In the case of Fluid Dynamics, it comprises:

• Knowledge of the type of flow (laminar / turbulent), type of regime (stationary / non-stationary).

• Geometry.

• Boundary conditions.

• Fluid variables (velocity field, pressure field, etc.).

If the specification of any of these variables is not correctly set, it can lead to an error in the problem definition, and consequently not reaching the objectives (Erroneous evaluation of the fluid behaviour).

#### Mathematical model

The second step in the process is the mathematical model of the problem, and it is related to the so-called discipline "System dynamics". The type of problem will classify the type of equation to solve: either algebraic or differential. In Fluid Dynamics, the equations to use are partial differential equations: Mass conservation equation, Momentum conservation equation, and Energy conservation equation (with the needed simplification for every type of flow and regime).

#### Discretization

The third step comprises the discretization of the partial differential equations. This discretization can be applied to either spatial or time variables:

• Spatial discretization: Finite Difference Method, Finite Volume Method, Finite Element Method, and Spectral Methods. These methods are derived from the Weighted Residual Method, in which the partial differential equations are transformed into a set of algebraic equations.

• Time discretization: Implicit / explicit scheme, and stability conditions of the discretization process.

#### Pre-processing

The fifth step is a pre-processor that is the component of the software in charge of modelling of the domain. This step comprises:

• Construction of a graphical user interface.

• Definition of the domain geometry, sub-division of the domain into smaller domains (that do not overlap).

• Phisical / Chemical model definition.

• Fluid properties definition.

• Boundary and Initial condition definition in the sub-domain that constitute the model.

#### Solver

It is the component in charge of solving the problem form the inputs previously provided. The employed techniques in the resolution of the problem are Finite Differences Method (FDM), Finite Element Method (FEM), and spectral methods.

#### Post-processing and analysis

The post-processor is the component in charge of the presentation and processing of the results that come out from the solver. The main tasks of it are:

• Geometry and grid visualization.

• Field visualization inside the domain.

• 2D and 3D surface visualization.

• Follow-up of the trayectory of a particle in the domain.

• Secondary variable calculation: Vorticity, stream function, etc.

• Integral calculus: Total mass, drag, thrust, etc.

• Solution estimation error.

#### Verification and validation

The verification establishes that the software satisfies the specifications of the inception model.

The validation establishes that the model implementation in its domain provides coherent information with the application model. Generally, the validation comprises the following tasks:

• Comparison of the obtained results with the experimental results.

• Sensibility analysis and parametric study so as to evaluate the error of the model.

• Simulation with several geometries, several initial conditions and several boundary conditions.

• Documentation of results.