From 190fa5f6170b8b88c86bd40a2c2ce34a1d6e7edf Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Wed, 25 Aug 2021 12:32:28 +0200 Subject: [PATCH 01/18] Add documentation Add personal documentation and documentation from pull requests and the template config file --- _data/docs_v7.yml | 1 + _docs_v7/Configuration-File.md | 2 +- _docs_v7/Custom-Output.md | 20 ++-- _docs_v7/Gradients-Limiters.md | 39 ++++++++ _docs_v7/Markers-and-BC.md | 15 ++- _docs_v7/Mesh-File.md | 10 ++ _docs_v7/Software-Components.md | 5 +- _docs_v7/Solver-Setup.md | 113 ++++++++++++++++++++++- docs_files/SU2_geometry_nomenclature.png | Bin 0 -> 15047 bytes 9 files changed, 192 insertions(+), 13 deletions(-) create mode 100644 _docs_v7/Gradients-Limiters.md create mode 100644 docs_files/SU2_geometry_nomenclature.png diff --git a/_data/docs_v7.yml b/_data/docs_v7.yml index bcf13fe6..3b083ba2 100644 --- a/_data/docs_v7.yml +++ b/_data/docs_v7.yml @@ -40,6 +40,7 @@ - Physical-Definition - Markers-and-BC - Convective-Schemes + - Gradients-Limiters - Custom-Output - Linear-Solvers-and-Preconditioners - Multizone diff --git a/_docs_v7/Configuration-File.md b/_docs_v7/Configuration-File.md index 7ea2aa7b..754138de 100644 --- a/_docs_v7/Configuration-File.md +++ b/_docs_v7/Configuration-File.md @@ -7,7 +7,7 @@ The configuration file is a text file that contains a user's options for a parti The SU2 configuration file name typically carries a name of the form *filename.cfg*. The file extension .cfg is optional (this is our own convention), and the prefix can be any valid string with no spaces; e.g. config.cfg, su2-config.cfg, and flow_config.cfg are all suitable file names. -**Note: An example configuration file, called config_template.cfg, can be found in the root SU2/ directory or [here](https://github.com/su2code/SU2/blob/master/config_template.cfg). The developers keep this file up to date with the latest options, and it serves as the first reference for the available options in SU2** +**Note: An example configuration file, called config_template.cfg, can be found in the root SU2/ directory or [here](https://github.com/su2code/SU2/blob/master/config_template.cfg). The developers keep this file up to date with the latest options, and it serves as the first reference for the available options in SU2. It is a very important document because it supplements the documentation in this website.** The configuration file consists of only three elements: - **Options**. An option in the file has the following syntax: option_name = value, where option_name is the name of the option and value is the desired option value. The value element may be a scalar data type, a list of data types, or a more complicated structure. The "=" sign must come immediately after the option_name element and is not optional. Lists of data types may be formatted for appearance using commas, ()-braces, {}-braces, and []-braces, though this is not required. Semicolons are semantically relevant for several option types and may not be used as convenience delimiters. SU2 will exit with an error if there are options in the config file which do not exist or if there are options with improper formatting. Some example option formats are given below. diff --git a/_docs_v7/Custom-Output.md b/_docs_v7/Custom-Output.md index 9610e91e..181219ee 100644 --- a/_docs_v7/Custom-Output.md +++ b/_docs_v7/Custom-Output.md @@ -44,12 +44,15 @@ SU2 can output the solution in several file formats. You can specify what files | `RESTART` | Native SU2 binary restart format | | `RESTART_ASCII` | ASCII CSV restart format | | `CSV` | ASCII CSV restart format (identical to `RESTART_ASCII`) | -| `PARAVIEW` | Binary Paraview .vtk format | +| `PARAVIEW` | Binary Paraview XML .vtu format | +| `PARAVIEW_LEGACY` | Binary Paraview .vtk format | +| `PARAVIEW_MULTIBLOCK` | Paraview XML Multiblock .vtm format | | `PARAVIEW_ASCII` | ASCII Paraview .vtk format | | `TECPLOT` | Binary Tecplot .szplt format | | `TECPLOT_ASCII` | ASCII Tecplot .dat format | | `SURFACE_CSV` | Surface values in CSV format (includes all markers set with `MARKER_PLOTTING`) | -| `SURFACE_PARAVIEW` | Surface values in binary Paraview .vtk format (includes all markers set with `MARKER_PLOTTING`)| +| `SURFACE_PARAVIEW` | Surface values in binary Paraview .vtu format (includes all markers set with `MARKER_PLOTTING`)| +| `SURFACE_PARAVIEW_LEGACY` | Surface values in binary Paraview .vtk format (includes all markers set with `MARKER_PLOTTING`)| | `SURFACE_PARAVIEW_ASCII` | Surface values in ASCII Paraview .vtk format (includes all markers set with `MARKER_PLOTTING`)| | `SURFACE_TECPLOT` | Surface values in binary Tecplot .szplt format (includes all markers set with `MARKER_PLOTTING`)| | `SURFACE_TECPLOT_ASCII` | Surface values in ASCII Tecplot .dat format (includes all markers set with `MARKER_PLOTTING`)| @@ -75,17 +78,22 @@ For the compressible Navier-Stokes solver (i.e. `SOLVER=NAVIER_STOKES`), a **non | `MOMENTUM-X` | Momentum x-component | `SOLUTION` | | `MOMENTUM-Y` | Momentum y-component | `SOLUTION` | | `MOMENTUM-Z` | Momentum z-component | `SOLUTION` | -| `ENERGY` | Energy | `SOLUTION` | +| `ENERGY` | Density times the specific total energy | `SOLUTION` | +| `RMS_` | Root-mean square residual of the solution | `RMS_RES` | | `PRESSURE` | Pressure| `PRIMITIVE` | | `TEMPERATURE` | Temperature | `PRIMITIVE` | | `MACH` | Mach Number | `PRIMITIVE` | | `PRESSURE_COEFF` | Pressure Coefficient | `PRIMITIVE` | | `LAMINAR_VISCOSITY` | Laminar viscosity | `PRIMITIVE` | -| `SKIN_FRICTION-X` | Skin friction coefficient x-component | `PRIMITIVE` | -| `SKIN_FRICTION-Y` | Skin friction coefficient y-component | `PRIMITIVE` | -| `SKIN_FRICTION-Z` | Skin friction coefficient z-component | `PRIMITIVE` | +| `SKIN_FRICTION-X` | Skin friction coefficient x-component in local coordinates | `PRIMITIVE` | +| `SKIN_FRICTION-Y` | Skin friction coefficient y-component in local coordinates | `PRIMITIVE` | +| `SKIN_FRICTION-Z` | Skin friction coefficient z-component in local coordinates | `PRIMITIVE` | | `HEAT_FLUX` | Heat flux | `PRIMITIVE` | | `Y_PLUS` | Y-Plus | `PRIMITIVE` | +| `VORTICITY` | Vorticity | `VORTEX_IDENTIFICATION` | +| `Q_Criterion` | Q-Criterion | `VORTEX_IDENTIFICATION` | + +Agree to include each output or point to...? ## Customizing the Screen and History Output ## diff --git a/_docs_v7/Gradients-Limiters.md b/_docs_v7/Gradients-Limiters.md new file mode 100644 index 00000000..b6ffe206 --- /dev/null +++ b/_docs_v7/Gradients-Limiters.md @@ -0,0 +1,39 @@ +--- +title: Gradients and Limiters +permalink: /docs_v7/Gradients-Limiters/ +--- + +This page lists the gradient computation methods and the limiter functions in SU2 as well as their associated options, it is not meant as a detailed theory guide but some application guidance is given nonetheless. The options listed here do not apply to the high order DG solver.? + +--- + + +--- + +## Gradient Computation ## +The numerical method for the spatial gradients computation is specified by the `NUM_METHOD_GRAD` field. The list of availabel options is given below. +`GREEN_GAUSS`: classic gradient reconstruction based on the Green-Gauss theorem. +`LEAST_SQUARES`: Compute the gradient of a field using unweighted Least- Squares approximation. +`WEIGHTED_LEAST_SQUARES`: Compute the gradient of a field using inverse-distance-weighted approximation. +The default option is set to `WEIGHTED_LEAST_SQUARES`. + +The spatial gradients method used only for upwind reconstruction is pecified by the `NUM_METHOD_GRAD_RECON` field. + +Thin Shear Layer gradient reconstruction is always used for the construction of the Jacobian. + +## Limiters ## +SU2 implements limiter functions to prevent the generation of oscillations when using upwind spatial discretisations. These are specified by the config field `SLOPE_LIMITER_FLOW`. The available options are: +- `NONE` - No limiter +- `VENKATAKRISHNAN` - Slope limiter using Venkatakrisnan method. +- `VENKATAKRISHNAN_WANG` - Slope limiter using Venkatakrisnan method, eps based on solution. EPS is...? +- `BARTH_JESPERSEN` - Slope limiter using Barth-Jespersen method. +- `VAN_ALBADA_EDGE` - Slope limiter using Van Albada method. +- `SHARP_EDGES` - Slope limiter using sharp edges. +- `WALL_DISTANCE` - Slope limiter using wall distance. +The default option is set to `VENKATAKRISHNAN`. + + * \n DESCRIPTION: Coefficient for the limiter. DEFAULT value 0.5. Larger values decrease the extent of limiting, values approaching zero cause lower-order approximation to the solution. \ingroup Config */ + addDoubleOption("VENKAT_LIMITER_COEFF", Venkat_LimiterCoeff, 0.05); + + +The option `LIMITER_ITER` specifies the number of iterations afterFreeze the value of the limiter after a number of iterations. DEFAULT value $999999$. diff --git a/_docs_v7/Markers-and-BC.md b/_docs_v7/Markers-and-BC.md index fae2a0b8..b3cc40ed 100755 --- a/_docs_v7/Markers-and-BC.md +++ b/_docs_v7/Markers-and-BC.md @@ -57,6 +57,8 @@ A symmetry wall is defined with using the `MARKER_SYM` option. Only the marker n For all Finite Volume (FVM) solvers, i.e. not the `FEM_*` solvers, its implementation is identical to `MARKER_SYM` solvers and both options can be used interchangeably. +For the Negative Spalart-Allmaras variable Neumann boundary conditions are implemented. + ``` MARKER_SYM = (Symmetry_Wall1, Symmetry_Wall2, ...) ``` @@ -68,7 +70,7 @@ MARKER_SYM = (Symmetry_Wall1, Symmetry_Wall2, ...) | `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_NAVIER_STOKES`, `HEAT_EQUATION_FVM` | 7.0.0 | -A wall with a prescribed constant heatflux is defined with the `MARKER_HEATFLUX` option. The option format is the marker name followed by the value of the heatflux (in Watts per square meter `[W/m^2],[J/(s*m^2)]`), e.g. +A solid viscous wall with a prescribed constant heatflux is defined with the `MARKER_HEATFLUX` option. The option format is the marker name followed by the value of the heatflux (in Watts per square meter `[W/m^2],[J/(s*m^2)]`), e.g. ``` MARKER_HEATFLUX = (Wall1, 1e05, Wall2, 0.0) ``` @@ -106,11 +108,18 @@ MARKER_ISOTHERMAL = (Wall1, 300.0, Wall2, 250.0) | --- | --- | | `EULER`, `NAVIER_STOKES`, `RANS`, `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.0.0 | -A marker can be defined as a Farfield boundary by addings its name to the `MARKER_FAR` option. No other values are necesseary for that option. The actual values which will be prescribed depend on the solver and other user input settings. More details can be found in the [Physical Definition](/docs_v7/Physical-Definition/) section. +A marker can be defined as a Farfield boundary by addings its name to the `MARKER_FAR` option. No other values are necesseary for that option. The actual values which will be prescribed depend on the solver and other user input settings. The implementation is based on the Riemann invariants of the Euler system calculated from the user input config file. More details can be found in the [Physical Definition](/docs_v7/Physical-Definition/) section. ``` MARKER_FAR= (farfield) ``` +## Periodic boundary conditions ## +For two given periodic surfaces `periodic marker` and `donor marker` SU2 defines periodicity by +``` +MARKER_PERIODIC= ( periodic marker, donor marker, rotation_center_x, rotation_center_y, rotation_center_z, rotation_angle_x-axis, rotation_angle_y-axis, rotation_angle_z-axis, translation_x, translation_y, translation_z, ... ) +``` + +The same number of points on both surfaces is assumed. Their orientation is specified by the additional set of parameters. Whereby `rotation_center_` specifies the coordinates of the center of rotation for the specified axis, `rotation_angle_` defines the rotation angle [in radians] between `periodic marker` and `donor marker` about the specified axis and `translation_` specifies the translation in space between `periodic marker` and `donor marker` about the specified axis. ## Inlet Boundary Condition ## Inlet boundary conditions are set using the option `MARKER_INLET`. @@ -172,7 +181,7 @@ MARKER_INLET = (inlet1, 300 , 1e6, 1.0, 0.0, 0.0, inlet2, 200, 1e6, 0.0, 1.0, 0. ## Outlet Boundary Condition ## -Outlet boundary conditions are set using the `MARKER_OUTLET` option. +Outlet boundary conditions are set using the `MARKER_OUTLET` option. These are prescribed by computing the Riemann invariants. ### Pressure Outlet (Compressible) ### diff --git a/_docs_v7/Mesh-File.md b/_docs_v7/Mesh-File.md index d9b2d2e7..4a721d67 100644 --- a/_docs_v7/Mesh-File.md +++ b/_docs_v7/Mesh-File.md @@ -147,3 +147,13 @@ It is important to note that SU2 will not use any specific boundary conditions t ## Third-Party Mesh Software We are continuously working to integrate SU2 with industry-standard tools. The latest releases of the Pointwise meshing software can both export and import meshes in the native ASCII SU2 format. In addition, a number of other packages support direct output to the SU2 format, such as GMSH and CENTAUR. CGNS files created by a number of other meshing packages have been successfully tested and used, such as those from ICEM CFD, for instance. + +## Geometry Nomneclature Inside SU2 + +The following image illustrates the primary and dual grid components nomenclature used inside the SU2 code. + +![SU2 geometry definition](../../docs_files/SU2_geometry_nomenclature.png) + +with the dual grid in red and the primary grid in black. + +MAKE IT PRETTIER! diff --git a/_docs_v7/Software-Components.md b/_docs_v7/Software-Components.md index 820aacff..3c9460e9 100644 --- a/_docs_v7/Software-Components.md +++ b/_docs_v7/Software-Components.md @@ -22,8 +22,8 @@ The key C++ and Python tools in the SU2 software suite are briefly described bel - **SU2_CFD (Computational Fluid Dynamics Code)**: Solves direct, adjoint, and linearized problems for the Euler, Navier-Stokes, and Reynolds-Averaged Navier-Stokes (RANS) equation sets, among many others. SU2_CFD can be run serially or in parallel using MPI. It uses a Finite Volume Method (FVM), and an edge-based structure. A Discontinuous-Galerkin Finite Element Method solver is currently being completed and will be available to the public in an upcoming release. Explicit and implicit time integration methods are available with centered or upwinding spatial integration schemes. The software also has several advanced features to improve robustness and convergence, including residual smoothing, preconditioners, and agglomeration multigrid. - **SU2_DOT (Gradient Projection Code)**: Computes the partial derivative of a functional with respect to variations in the aerodynamic surface. SU2_DOT uses the surface sensitivity, the flow solution, and the definition of the geometrical variable to evaluate the derivative of a particular functional (e.g. drag, lift, etc.). This is essentially a large dot product operation between the adjoint sensitivities and geometric sensitivities for the particular design variable parameterization. - **SU2_DEF (Mesh Deformation Code)**: Computes the geometrical deformation of an aerodynamic surface and the surrounding volumetric grid. Once the type of deformation is defined, SU2_DEF performs the grid deformation by solving the linear elasticity equations on the volume grid. Three-dimensional geometry parameterization is defined using Free Form Deformation, while two-dimensional problems can be defined by both Free From Deformation or bump functions, such as Hicks-Henne. -- **SU2_MSH (Mesh Adaptation Code)**: Performs grid adaptation using various techniques based on an analysis of a converged flow solution, adjoint solution, and linearized problem to strategically refine the mesh about key flow features. This module also contains a preprocessor that creates the appropriate structures for periodic boundary conditions. -- **SU2_SOL (Solution Export Code)**: Generates the volumetric and surface solution files from SU2 restart files. +- **SU2_MSH (Mesh Adaptation Code)**: Performs grid adaptation using various techniques based on an analysis of a converged flow solution, adjoint solution, and linearized problem to strategically refine the mesh about key flow features. This module also contains a preprocessor that creates the appropriate structures for periodic boundary conditions. THIS DOES NOT LONGER EXIST?? +- **SU2_SOL (Solution Export Code)**: Generates the volumetric and surface solution files from SU2 restart files. HOW TO USE IT?? - **SU2_GEO (Geometry Definition Code)**: Geometry preprocessing and definition code. In particular, this module performs the calculation of geometric constraints for shape optimization. While they are not C++ modules, two other similar directories included in the source distribution should be mentioned. First, the **SU2_IDE** (Integrated Development Environment) directory contains files associated with various IDEs to aid developers (Eclipse, VisualStudio, Wing, Xcode). Second, the **SU2_PY** directory contains all of the files making up the Python framework, and some of these will be highlighted in a section below. @@ -33,6 +33,7 @@ While they are not C++ modules, two other similar directories included in the so SU2 includes integrated support for Algorithmic Differentiation (AD) based on Operator Overloading to compute arbitrary derivatives. One application of this feature is the discrete adjoint solver that is implemented in SU2. In contrast to the continuous adjoint method, special versions of the modules SU2_CFD and SU2_DOT are required to use this solver. - **SU2_CFD_AD**: Solves the discrete adjoint equations using a consistent linearization of the flow solver with the help of AD. Although it has additionally the same features as SU2_CFD, using it for other solvers will result in a slight slow-down due to the AD overhead. +- **SU2_CFD_DIRECTDIFF**: Solves... - **SU2_DOT_AD**: The discrete adjoint formulation does not include the influence of the mesh deformation, therefore this module will compute the required partial derivative of the functional with respect to variations in the computational mesh. Instead of SU2_DOT, SU2_DOT_AD uses the volume sensitivities to evaluate the derivative. Finally, the resulting sensitivities on the aerodynamic surface are projected on to the particular design parameterization. ## Python Scripts diff --git a/_docs_v7/Solver-Setup.md b/_docs_v7/Solver-Setup.md index baf046a3..dc1e1b7a 100644 --- a/_docs_v7/Solver-Setup.md +++ b/_docs_v7/Solver-Setup.md @@ -5,6 +5,13 @@ permalink: /docs_v7/Solver-Setup/ This is a basic introduction on how to set up a simulation using SU2. We distinguish between single-zone computations and multi-zone computations. The following considers a single zone only. For an explanation on multi-zone problems, continue with [Basics of Multi-Zone Computations](/docs_v7/Multizone). +Three different types of mathematical problems can be solved in SU2. The type of problem to be solved is specified on the config file by the `MATH_PROBLEM` field. The three options are: +`DIRECT`: +`DISCRETE_ADJOINT`: +`CONTINUOUS_ADJOINT`: + +See the [Software Components](/docs_v7/Software-Components/) documentation to determine which software module is required for each problem. + --- - [Defining the Problem](#defining-the-problem) @@ -24,7 +31,9 @@ This is a basic introduction on how to set up a simulation using SU2. We disting | --- | --- | | `ALL`| 7.0.0 | -SU2 is capable of dealing with different kinds of physical problems. The kind of problem is defined by choosing a solver using the `SOLVER` option. A list of possible values and a description can be found in the following table: +## Direct or Primal ## + +SU2 is capable of dealing with different kinds of physical problems. The kind of problem is defined by choosing a solver using the `SOLVER` option. The list of possible values and a description can be found in the following table: | Option Value | Problem | Type | |---|---|---| @@ -40,8 +49,100 @@ SU2 is capable of dealing with different kinds of physical problems. The kind of |`FEM_NAVIER_STOKES`| **Navier-Stokes' equation** | Discontinuous Galerkin FEM | |`MULTIPHYSICS` | Multi-zone problem with different solvers in each zone | - | +### Turbulence modeling ### + +The turbulence model to be used is specified in the config file by the `KIND_TURB_MODEL` option. The current options are `SA` for the Spalart-Allmaras and `SST` for the Mentor Shear Stress Transport. + +Different corrections or variations are implemented for each turbulence model which can be simultaneously used. These are specified in the `TURB_MODEL_CORRECTIONS` option. The default is `NONE` standing for the standalone version. + +``` +% ------------------------- Turbulence modeling -------------------------------% +% +% Turbulence model +KIND_TURB_MODEL= SA +% +% Turbulence model corrections (NONE, SA-EDW, SA-NOFT2, SA-COMP, SA-NEG, SA-QCR2000, SST-SUST) +TURB_MODEL_CORRECTIONS= SA-EDW, SA-NEG +``` + +#### Spalart-Allamaras #### + + + +The single transported Spalart-Allmaras variable $\tilde{\nu}$ is initialized with the value at the farfield or inlet boundary. As suggested in the literature, the value there is computed as $\tilde{\nu}/\nu = \mathrm{turb2lam}$. In SU2 the free-stream Spalart-Allmaras variable to kinematic laminar viscosity ratio, $\mathrm{turb2lam}$, is controlled by the `FREESTREAM_NU_FACTOR` option. The default value is $\tilde{\nu}/\nu = 3.0$ avoiding laminar solutions. + +In the following the implemented model versions in SU2 are listed: +`SA-EDW` refers to the so-called Edwards modification. +`SA-NOFT2` refers to the modification where the $f_{t2}$ term is set to zero, i.e., $c_{t3} = 0$. +`SA-COMP` refers to the Mixing Layer Compressibility modification. +`SA-NEG` refers to the negative Spalart-Allmaras modification. +`SA-QCR2000` refers to the Quadratic Constitutive Relation modification, 2000 version. + +An extension of SU2 includes and hybrid turbulence model: the Spalart-Allmaras original model with Detached-Eddy Simulation (DES) modification. Refer to Eduardo Moina's thesis? Four different techniques are currently implemented: + +`SA_DES` Detached-Eddy Simulation +`SA_DDES` Delayed Detached-Eddy Simulation +`SA_ZDES` Zonal Detached-Eddy Simulation +`SA_EDDES` Enhanced Detached-Eddy Simulation + +In the config file the hybrid RANS/LES model is specified by the `HYBRID_RANSLES` field. The DES constant can be parametrized by the field `DES_CONST`, with 0.65 as default. + +#### Menter’s k-omega SST Model #### +As initial conditions, the values of are initialized at all grid point with the farfield values. The farfield conditions for $k$ and $omega$ are +The freestream turbulence kinetic energy value is set by the `FREESTREAM_TURBULENCEINTENSITY` field. The default value 0.05 which corresponds to a 5%. + +The freestream dissipation is set by the `FREESTREAM_TURB2LAMVISCRATIO` field. The same definition as for `FREESTREAM_TURBULENCEINTENSITY` applies. + +##### Limitations of k and omega ##### +To increase robustness and prevent negative values, a hard-coded upper and lower limit is set for each turbulent variable: +``` +// turbulence kinetic energy +lowerlimit = 1.0e-10; +upperlimit = 1.0e10; + +// +lowerlimit = 1.0e-4; +upperlimit = 1.0e15; +``` +Further, by the model definition in the farfield region there is no production of $k$ nor $\omega$ while destruction still takes place. Consequently the turbulence quantities typically decay on their way from the farfield boundary to the airfoil. In order to prevent the non-physical decay of the turbulence variables in SU2 there are implemented to two approaches: +- Sustaining terms: it consists on the introduction of additional source terms in the turbulence model equations compensating the destruction terms in the farfield flow. This approach is activated by using the modified version of the SST moodel, `SST-sust`. +- Floor values: this approach is equivalent to setting the lowerlimit to the farfield values in the upstream region of an airfoil. The floor values are implemented in the form of fixed values. This correction can be activated with the following parameters in the config file: +`TURB_FIXED_VALUES= YES` +`TURB_FIXED_VALUES_DOMAIN= -1.0` +To determine those grid points where the correction should be applied, we compare the dot product of the normalized freestream velocity vector and the grid point coordinates. For those points which dot product result is lower than the specified `TURB_FIXED_VALUES_DOMAIN` value, the turbulence quantities are just set to the farfield values there. Note that although the Spalart-Allmaras turbulence model does not suffer from a decaying turbulence variable, the floor values limitation can also be employed. + +#### Wall functions #### + +### Foward mode of AD ### +A further capability of the + +This module? computes the forward derivatives (see [Advanced AD Techniques](/docs_v7/Advanced-AD-Techniques)) of an specified function with respect to a registered variable. The function to be differentiated can be any of the variables specified as `COEFFICIENT` in the `SetHistoryOutputFields` functions of the flow output classes. In the config file one just needs to write D_< string group name > in the `HISTORY_OUTPUT`. In the config file, the field `DIRECT_DIFF` specifies the variable to be registered as an input. +In SU2 it is possible to register almost any variable as an input. Currently SU2 has implemented the following variables: + +`D_MACH` Mach number +`D_AOA` angle of attack +`D_PRESSURE` freestream pressure +`D_TEMPERATURE` freestream temperature +`D_DENSITY` freestream density +`D_TURB2LAM` freestream ratio of turbulent to laminar viscosity +`D_SIDESLIP` sideslip angle +`D_VISCOSITY` freestream laminar viscosity +`D_REYNOLDS` reynolds number +`D_DESIGN` design?? +`D_YOUNG` Young's modulus +`D_POISSON` Poisson's ratio +`D_RHO` solid density (inertial) +`D_RHO_DL` density for dead loads +`D_EFIELD` electric field + +The execution of this capability is done by the module `SU2_CFD_DIRECTDIFF`. See the [Software Components](/docs_v7/Software-Components/) for further. + Every solver has its specific options and we refer to the tutorial cases for more information. However, the basic controls detailed in the remainder of this page are the same for all problems. +## Discrete adjoint ## + + + ## Restarting the simulation ## | Solver | Version | @@ -95,6 +196,16 @@ A simulation is controlled by setting the number of iterations the solver should SU2 makes use of an outer time loop to march through the physical time, and of an inner loop which is usually a pseudo-time iteration or a (quasi-)Newton scheme. The actual method used depends again on the specific type of solver. +## Courant-Friedrichs-Lewy number ## + +The Courant-Friedrichs-Lewy number is specified by the `CFL_NUMBER` parameter. It is possible to adapt locally its magnitude on each pseudo-iteration according to the solver residual convergence. To enable this capability, the `CFL_ADAPT` must be set to `YES`. + +The option `CFL_ADAPT_PARAM` controls the adaptative CFL number, which parameters are: factor-down, factor-up, CFL min value, CFL max value and acceptable linear solver convergence. + +The local CFL number increases by factor-up until CFL max value if the solution rate of change is not limited, and acceptable linear convergence is achieved. It is reduced by factor-down if rate is limited, there is not enough linear convergence, or the nonlinear residuals are stagnant and oscillatory. It is reset back to CFL min value when linear solvers diverge, or if nonlinear residuals increase too much. + +No idea about the acceptable linear solver convergence parameter!!!!! + ## Time-dependent Simulation ## | Solver | Version | diff --git a/docs_files/SU2_geometry_nomenclature.png b/docs_files/SU2_geometry_nomenclature.png new file mode 100644 index 0000000000000000000000000000000000000000..584b0f93986fbfe7adbe803016966012a7923c4e GIT binary patch literal 15047 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 CrunD< literal 0 HcmV?d00001 From e9ee5fa666a7a3d9e9742668cc133fd930919dd7 Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Wed, 25 Aug 2021 14:38:25 +0200 Subject: [PATCH 02/18] Add and update documentation --- _docs_v7/Configuration-File.md | 2 +- _docs_v7/Markers-and-BC.md | 19 +++++++++---------- _docs_v7/Solver-Setup.md | 33 +++++++++++++++++---------------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/_docs_v7/Configuration-File.md b/_docs_v7/Configuration-File.md index 754138de..25b1f222 100644 --- a/_docs_v7/Configuration-File.md +++ b/_docs_v7/Configuration-File.md @@ -7,7 +7,7 @@ The configuration file is a text file that contains a user's options for a parti The SU2 configuration file name typically carries a name of the form *filename.cfg*. The file extension .cfg is optional (this is our own convention), and the prefix can be any valid string with no spaces; e.g. config.cfg, su2-config.cfg, and flow_config.cfg are all suitable file names. -**Note: An example configuration file, called config_template.cfg, can be found in the root SU2/ directory or [here](https://github.com/su2code/SU2/blob/master/config_template.cfg). The developers keep this file up to date with the latest options, and it serves as the first reference for the available options in SU2. It is a very important document because it supplements the documentation in this website.** +**Note: An example configuration file, called config_template.cfg, can be found in the root SU2/ directory or [here](https://github.com/su2code/SU2/blob/master/config_template.cfg). It is a very important document because it supplements the documentation in this website. The developers keep this file up to date with the latest options, and it serves as the first reference for the available options in SU2.** The configuration file consists of only three elements: - **Options**. An option in the file has the following syntax: option_name = value, where option_name is the name of the option and value is the desired option value. The value element may be a scalar data type, a list of data types, or a more complicated structure. The "=" sign must come immediately after the option_name element and is not optional. Lists of data types may be formatted for appearance using commas, ()-braces, {}-braces, and []-braces, though this is not required. Semicolons are semantically relevant for several option types and may not be used as convenience delimiters. SU2 will exit with an error if there are options in the config file which do not exist or if there are options with improper formatting. Some example option formats are given below. diff --git a/_docs_v7/Markers-and-BC.md b/_docs_v7/Markers-and-BC.md index b3cc40ed..58bb1f18 100755 --- a/_docs_v7/Markers-and-BC.md +++ b/_docs_v7/Markers-and-BC.md @@ -57,12 +57,12 @@ A symmetry wall is defined with using the `MARKER_SYM` option. Only the marker n For all Finite Volume (FVM) solvers, i.e. not the `FEM_*` solvers, its implementation is identical to `MARKER_SYM` solvers and both options can be used interchangeably. -For the Negative Spalart-Allmaras variable Neumann boundary conditions are implemented. - ``` MARKER_SYM = (Symmetry_Wall1, Symmetry_Wall2, ...) ``` +The negative Sapalart-Allmaras model implements the same boundary conditions as for the standard/standalone version. + ## Constant Heatflux (no-slip) Wall ## | Solver | Version | @@ -70,7 +70,7 @@ MARKER_SYM = (Symmetry_Wall1, Symmetry_Wall2, ...) | `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_NAVIER_STOKES`, `HEAT_EQUATION_FVM` | 7.0.0 | -A solid viscous wall with a prescribed constant heatflux is defined with the `MARKER_HEATFLUX` option. The option format is the marker name followed by the value of the heatflux (in Watts per square meter `[W/m^2],[J/(s*m^2)]`), e.g. +A viscous wall with a prescribed constant heatflux is defined with the `MARKER_HEATFLUX` option. The option format is the marker name followed by the value of the heatflux (in Watts per square meter `[W/m^2],[J/(s*m^2)]`), e.g. ``` MARKER_HEATFLUX = (Wall1, 1e05, Wall2, 0.0) ``` @@ -113,13 +113,6 @@ A marker can be defined as a Farfield boundary by addings its name to the `MARKE ``` MARKER_FAR= (farfield) ``` -## Periodic boundary conditions ## -For two given periodic surfaces `periodic marker` and `donor marker` SU2 defines periodicity by -``` -MARKER_PERIODIC= ( periodic marker, donor marker, rotation_center_x, rotation_center_y, rotation_center_z, rotation_angle_x-axis, rotation_angle_y-axis, rotation_angle_z-axis, translation_x, translation_y, translation_z, ... ) -``` - -The same number of points on both surfaces is assumed. Their orientation is specified by the additional set of parameters. Whereby `rotation_center_` specifies the coordinates of the center of rotation for the specified axis, `rotation_angle_` defines the rotation angle [in radians] between `periodic marker` and `donor marker` about the specified axis and `translation_` specifies the translation in space between `periodic marker` and `donor marker` about the specified axis. ## Inlet Boundary Condition ## Inlet boundary conditions are set using the option `MARKER_INLET`. @@ -231,6 +224,12 @@ MARKER_OUTLET = (outlet, 1e1) | --- | --- | | `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_NAVIER_STOKES` | 7.0.0 | +For two given periodic surfaces `periodic marker` and `donor marker` SU2 defines periodicity by +``` +MARKER_PERIODIC= ( periodic marker, donor marker, rotation_center_x, rotation_center_y, rotation_center_z, rotation_angle_x-axis, rotation_angle_y-axis, rotation_angle_z-axis, translation_x, translation_y, translation_z, ... ) +``` +The same number of points on both surfaces is assumed. Their orientation is specified by the additional set of parameters. Whereby `rotation_center_` specifies the coordinates of the center of rotation for the specified axis, `rotation_angle_` defines the rotation angle [in radians] between `periodic marker` and `donor marker` about the specified axis and `translation_` specifies the translation in space between `periodic marker` and `donor marker` about the specified axis. + ## Structural Boundary Conditions ## ### Clamped Boundary ### diff --git a/_docs_v7/Solver-Setup.md b/_docs_v7/Solver-Setup.md index dc1e1b7a..a04864ae 100644 --- a/_docs_v7/Solver-Setup.md +++ b/_docs_v7/Solver-Setup.md @@ -6,9 +6,9 @@ permalink: /docs_v7/Solver-Setup/ This is a basic introduction on how to set up a simulation using SU2. We distinguish between single-zone computations and multi-zone computations. The following considers a single zone only. For an explanation on multi-zone problems, continue with [Basics of Multi-Zone Computations](/docs_v7/Multizone). Three different types of mathematical problems can be solved in SU2. The type of problem to be solved is specified on the config file by the `MATH_PROBLEM` field. The three options are: -`DIRECT`: -`DISCRETE_ADJOINT`: -`CONTINUOUS_ADJOINT`: +`DIRECT`: also refered to as primal, flow solver.? +`DISCRETE_ADJOINT`: a discrete adjoint methodology based on Automatic Differentiation. +`CONTINUOUS_ADJOINT`: a continuous adjoint methodology based on Automatic Differentiation. See the [Software Components](/docs_v7/Software-Components/) documentation to determine which software module is required for each problem. @@ -31,7 +31,7 @@ See the [Software Components](/docs_v7/Software-Components/) documentation to de | --- | --- | | `ALL`| 7.0.0 | -## Direct or Primal ## +## Direct ## SU2 is capable of dealing with different kinds of physical problems. The kind of problem is defined by choosing a solver using the `SOLVER` option. The list of possible values and a description can be found in the following table: @@ -66,9 +66,6 @@ TURB_MODEL_CORRECTIONS= SA-EDW, SA-NEG ``` #### Spalart-Allamaras #### - - - The single transported Spalart-Allmaras variable $\tilde{\nu}$ is initialized with the value at the farfield or inlet boundary. As suggested in the literature, the value there is computed as $\tilde{\nu}/\nu = \mathrm{turb2lam}$. In SU2 the free-stream Spalart-Allmaras variable to kinematic laminar viscosity ratio, $\mathrm{turb2lam}$, is controlled by the `FREESTREAM_NU_FACTOR` option. The default value is $\tilde{\nu}/\nu = 3.0$ avoiding laminar solutions. In the following the implemented model versions in SU2 are listed: @@ -112,12 +109,10 @@ Further, by the model definition in the farfield region there is no production o To determine those grid points where the correction should be applied, we compare the dot product of the normalized freestream velocity vector and the grid point coordinates. For those points which dot product result is lower than the specified `TURB_FIXED_VALUES_DOMAIN` value, the turbulence quantities are just set to the farfield values there. Note that although the Spalart-Allmaras turbulence model does not suffer from a decaying turbulence variable, the floor values limitation can also be employed. #### Wall functions #### +Should be written here. ### Foward mode of AD ### -A further capability of the - -This module? computes the forward derivatives (see [Advanced AD Techniques](/docs_v7/Advanced-AD-Techniques)) of an specified function with respect to a registered variable. The function to be differentiated can be any of the variables specified as `COEFFICIENT` in the `SetHistoryOutputFields` functions of the flow output classes. In the config file one just needs to write D_< string group name > in the `HISTORY_OUTPUT`. In the config file, the field `DIRECT_DIFF` specifies the variable to be registered as an input. -In SU2 it is possible to register almost any variable as an input. Currently SU2 has implemented the following variables: +The forward mode of AD capability allows to compute the forward derivatives (see [Advanced AD Techniques](/docs_v7/Advanced-AD-Techniques)) of an specified function with respect to a registered variable. The function to be differentiated can be any of the variables specified as `COEFFICIENT` in the `SetHistoryOutputFields` functions of the flow output classes. To get the derivative, one just needs to write D_< string group name > in the `HISTORY_OUTPUT` field from the config file. Addioiniallty, the field `DIRECT_DIFF` specifies the variable to be registered as an input. In SU2 it is possible to register almost any variable as an input. Currently SU2 has implemented the following variables: `D_MACH` Mach number `D_AOA` angle of attack @@ -135,15 +130,21 @@ In SU2 it is possible to register almost any variable as an input. Currently SU2 `D_RHO_DL` density for dead loads `D_EFIELD` electric field -The execution of this capability is done by the module `SU2_CFD_DIRECTDIFF`. See the [Software Components](/docs_v7/Software-Components/) for further. - -Every solver has its specific options and we refer to the tutorial cases for more information. However, the basic controls detailed in the remainder of this page are the same for all problems. +The execution of this capability is done by the module `SU2_CFD_DIRECTDIFF`. See the [Software Components](/docs_v7/Software-Components/) for further details. ## Discrete adjoint ## +SU2 can compute the variation of an objective function with respect to design surface shape deformations. To get the list of objective functions available in SU2 we address to https://github.com/su2code/SU2/blob/master/Common/include/option_structure.hpp ENUM_OBJECTIVE and Objective_Map to see the proper nomenclature for the config file. + +The objective function can be scaled by a weighting factor. This can be specified with the `OBJECTIVE_WEIGHT` field in the config file. + +## Continuous adjoint ## + +Same as the discrete adjoint but using the continuous adjoint approach :) +Every solver has its specific options and we refer to the tutorial cases for more information. However, the basic controls detailed in the remainder of this page are the same for all solvers and mathematical problems. -## Restarting the simulation ## +# Restarting the simulation # | Solver | Version | | --- | --- | @@ -204,7 +205,7 @@ The option `CFL_ADAPT_PARAM` controls the adaptative CFL number, which parameter The local CFL number increases by factor-up until CFL max value if the solution rate of change is not limited, and acceptable linear convergence is achieved. It is reduced by factor-down if rate is limited, there is not enough linear convergence, or the nonlinear residuals are stagnant and oscillatory. It is reset back to CFL min value when linear solvers diverge, or if nonlinear residuals increase too much. -No idea about the acceptable linear solver convergence parameter!!!!! +No idea about the acceptable linear solver convergence parameter? ## Time-dependent Simulation ## From 19a4bf561c9c7495edb3e8ee3ec0a0a65c03c774 Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Thu, 26 Aug 2021 10:06:53 +0200 Subject: [PATCH 03/18] Add and update documentation --- _docs_v7/Custom-Output.md | 2 -- _docs_v7/Software-Components.md | 4 ++-- _docs_v7/Solver-Setup.md | 23 ++++++++++------------- 3 files changed, 12 insertions(+), 17 deletions(-) diff --git a/_docs_v7/Custom-Output.md b/_docs_v7/Custom-Output.md index 181219ee..f01e8dfe 100644 --- a/_docs_v7/Custom-Output.md +++ b/_docs_v7/Custom-Output.md @@ -93,8 +93,6 @@ For the compressible Navier-Stokes solver (i.e. `SOLVER=NAVIER_STOKES`), a **non | `VORTICITY` | Vorticity | `VORTEX_IDENTIFICATION` | | `Q_Criterion` | Q-Criterion | `VORTEX_IDENTIFICATION` | -Agree to include each output or point to...? - ## Customizing the Screen and History Output ## diff --git a/_docs_v7/Software-Components.md b/_docs_v7/Software-Components.md index 3c9460e9..f12e9a1b 100644 --- a/_docs_v7/Software-Components.md +++ b/_docs_v7/Software-Components.md @@ -19,7 +19,7 @@ The key C++ and Python tools in the SU2 software suite are briefly described bel ## C++ Software Modules -- **SU2_CFD (Computational Fluid Dynamics Code)**: Solves direct, adjoint, and linearized problems for the Euler, Navier-Stokes, and Reynolds-Averaged Navier-Stokes (RANS) equation sets, among many others. SU2_CFD can be run serially or in parallel using MPI. It uses a Finite Volume Method (FVM), and an edge-based structure. A Discontinuous-Galerkin Finite Element Method solver is currently being completed and will be available to the public in an upcoming release. Explicit and implicit time integration methods are available with centered or upwinding spatial integration schemes. The software also has several advanced features to improve robustness and convergence, including residual smoothing, preconditioners, and agglomeration multigrid. +- **SU2_CFD (Computational Fluid Dynamics Code)**: Solves direct, adjoint (conitnuous?), and linearized problems for the Euler, Navier-Stokes, and Reynolds-Averaged Navier-Stokes (RANS) equation sets, among many others. SU2_CFD can be run serially or in parallel using MPI. It uses a Finite Volume Method (FVM), and an edge-based structure. A Discontinuous-Galerkin Finite Element Method solver is currently being completed and will be available to the public in an upcoming release. Explicit and implicit time integration methods are available with centered or upwinding spatial integration schemes. The software also has several advanced features to improve robustness and convergence, including residual smoothing, preconditioners, and agglomeration multigrid. - **SU2_DOT (Gradient Projection Code)**: Computes the partial derivative of a functional with respect to variations in the aerodynamic surface. SU2_DOT uses the surface sensitivity, the flow solution, and the definition of the geometrical variable to evaluate the derivative of a particular functional (e.g. drag, lift, etc.). This is essentially a large dot product operation between the adjoint sensitivities and geometric sensitivities for the particular design variable parameterization. - **SU2_DEF (Mesh Deformation Code)**: Computes the geometrical deformation of an aerodynamic surface and the surrounding volumetric grid. Once the type of deformation is defined, SU2_DEF performs the grid deformation by solving the linear elasticity equations on the volume grid. Three-dimensional geometry parameterization is defined using Free Form Deformation, while two-dimensional problems can be defined by both Free From Deformation or bump functions, such as Hicks-Henne. - **SU2_MSH (Mesh Adaptation Code)**: Performs grid adaptation using various techniques based on an analysis of a converged flow solution, adjoint solution, and linearized problem to strategically refine the mesh about key flow features. This module also contains a preprocessor that creates the appropriate structures for periodic boundary conditions. THIS DOES NOT LONGER EXIST?? @@ -33,7 +33,7 @@ While they are not C++ modules, two other similar directories included in the so SU2 includes integrated support for Algorithmic Differentiation (AD) based on Operator Overloading to compute arbitrary derivatives. One application of this feature is the discrete adjoint solver that is implemented in SU2. In contrast to the continuous adjoint method, special versions of the modules SU2_CFD and SU2_DOT are required to use this solver. - **SU2_CFD_AD**: Solves the discrete adjoint equations using a consistent linearization of the flow solver with the help of AD. Although it has additionally the same features as SU2_CFD, using it for other solvers will result in a slight slow-down due to the AD overhead. -- **SU2_CFD_DIRECTDIFF**: Solves... +- **SU2_CFD_DIRECTDIFF**: Computes the gradients of an objective function by forward mode of AD. Although it has additionally the same features as SU2_CFD, using it for other solvers will result in a slight slow-down due to the AD overhead. - **SU2_DOT_AD**: The discrete adjoint formulation does not include the influence of the mesh deformation, therefore this module will compute the required partial derivative of the functional with respect to variations in the computational mesh. Instead of SU2_DOT, SU2_DOT_AD uses the volume sensitivities to evaluate the derivative. Finally, the resulting sensitivities on the aerodynamic surface are projected on to the particular design parameterization. ## Python Scripts diff --git a/_docs_v7/Solver-Setup.md b/_docs_v7/Solver-Setup.md index a04864ae..60ed68be 100644 --- a/_docs_v7/Solver-Setup.md +++ b/_docs_v7/Solver-Setup.md @@ -51,7 +51,7 @@ SU2 is capable of dealing with different kinds of physical problems. The kind of ### Turbulence modeling ### -The turbulence model to be used is specified in the config file by the `KIND_TURB_MODEL` option. The current options are `SA` for the Spalart-Allmaras and `SST` for the Mentor Shear Stress Transport. +The turbulence model to be used for RANS and INC_RANS is specified in the config file by the `KIND_TURB_MODEL` option. The current options are `SA` for the Spalart-Allmaras and `SST` for the Mentor Shear Stress Transport. Different corrections or variations are implemented for each turbulence model which can be simultaneously used. These are specified in the `TURB_MODEL_CORRECTIONS` option. The default is `NONE` standing for the standalone version. @@ -91,7 +91,7 @@ The freestream turbulence kinetic energy value is set by the `FREESTREAM_TURBULE The freestream dissipation is set by the `FREESTREAM_TURB2LAMVISCRATIO` field. The same definition as for `FREESTREAM_TURBULENCEINTENSITY` applies. ##### Limitations of k and omega ##### -To increase robustness and prevent negative values, a hard-coded upper and lower limit is set for each turbulent variable: +To increase robustness and prevent negative values, a hard-coded upper and lower limit are set for each turbulent variable: ``` // turbulence kinetic energy lowerlimit = 1.0e-10; @@ -101,20 +101,17 @@ upperlimit = 1.0e10; lowerlimit = 1.0e-4; upperlimit = 1.0e15; ``` -Further, by the model definition in the farfield region there is no production of $k$ nor $\omega$ while destruction still takes place. Consequently the turbulence quantities typically decay on their way from the farfield boundary to the airfoil. In order to prevent the non-physical decay of the turbulence variables in SU2 there are implemented to two approaches: +Further, by the model definition in the farfield region there is no production of $k$ nor $\omega$ while destruction still takes place. Consequently the turbulence quantities typically decay on their way from the farfield boundary to the airfoil. In order to prevent the non-physical decay in SU2 there are implemented to two approaches: - Sustaining terms: it consists on the introduction of additional source terms in the turbulence model equations compensating the destruction terms in the farfield flow. This approach is activated by using the modified version of the SST moodel, `SST-sust`. - Floor values: this approach is equivalent to setting the lowerlimit to the farfield values in the upstream region of an airfoil. The floor values are implemented in the form of fixed values. This correction can be activated with the following parameters in the config file: `TURB_FIXED_VALUES= YES` `TURB_FIXED_VALUES_DOMAIN= -1.0` To determine those grid points where the correction should be applied, we compare the dot product of the normalized freestream velocity vector and the grid point coordinates. For those points which dot product result is lower than the specified `TURB_FIXED_VALUES_DOMAIN` value, the turbulence quantities are just set to the farfield values there. Note that although the Spalart-Allmaras turbulence model does not suffer from a decaying turbulence variable, the floor values limitation can also be employed. -#### Wall functions #### -Should be written here. - ### Foward mode of AD ### -The forward mode of AD capability allows to compute the forward derivatives (see [Advanced AD Techniques](/docs_v7/Advanced-AD-Techniques)) of an specified function with respect to a registered variable. The function to be differentiated can be any of the variables specified as `COEFFICIENT` in the `SetHistoryOutputFields` functions of the flow output classes. To get the derivative, one just needs to write D_< string group name > in the `HISTORY_OUTPUT` field from the config file. Addioiniallty, the field `DIRECT_DIFF` specifies the variable to be registered as an input. In SU2 it is possible to register almost any variable as an input. Currently SU2 has implemented the following variables: +The forward mode of AD capability allows to compute the forward derivatives (see [Advanced AD Techniques](/docs_v7/Advanced-AD-Techniques)) of an specified function with respect to a registered variable/s. If multiple design variables are registered as input, the output will consist on the accumulation. The function to be differentiated can be any of the variables specified as `COEFFICIENT` in the `SetHistoryOutputFields` functions of the flow output classes. To get the derivative, one just needs to write D_< string group name > in the `HISTORY_OUTPUT` field from the config file. Addioiniallty, the field `DIRECT_DIFF` specifies the variable to be registered as an input. In SU2 it is possible to register almost any variable. Currently SU2 has implemented the following variables: -`D_MACH` Mach number +`D_MACH` Freestream Mach number `D_AOA` angle of attack `D_PRESSURE` freestream pressure `D_TEMPERATURE` freestream temperature @@ -122,7 +119,7 @@ The forward mode of AD capability allows to compute the forward derivatives (see `D_TURB2LAM` freestream ratio of turbulent to laminar viscosity `D_SIDESLIP` sideslip angle `D_VISCOSITY` freestream laminar viscosity -`D_REYNOLDS` reynolds number +`D_REYNOLDS` freestream Reynolds number `D_DESIGN` design?? `D_YOUNG` Young's modulus `D_POISSON` Poisson's ratio @@ -134,9 +131,9 @@ The execution of this capability is done by the module `SU2_CFD_DIRECTDIFF`. See ## Discrete adjoint ## -SU2 can compute the variation of an objective function with respect to design surface shape deformations. To get the list of objective functions available in SU2 we address to https://github.com/su2code/SU2/blob/master/Common/include/option_structure.hpp ENUM_OBJECTIVE and Objective_Map to see the proper nomenclature for the config file. +SU2 can compute the variation of an objective function with respect to the design surface shape control points. To get the list of objective functions available in SU2 we address to https://github.com/su2code/SU2/blob/master/Common/include/option_structure.hpp ENUM_OBJECTIVE and Objective_Map to see the proper nomenclature for the config file. DON'T KNOW HOW TO ADDRESS PROPERLY? -The objective function can be scaled by a weighting factor. This can be specified with the `OBJECTIVE_WEIGHT` field in the config file. +The objective function value can be scaled by a weighting factor. This value can be specified in the `OBJECTIVE_WEIGHT` field on the config file. ## Continuous adjoint ## @@ -203,9 +200,9 @@ The Courant-Friedrichs-Lewy number is specified by the `CFL_NUMBER` parameter. I The option `CFL_ADAPT_PARAM` controls the adaptative CFL number, which parameters are: factor-down, factor-up, CFL min value, CFL max value and acceptable linear solver convergence. -The local CFL number increases by factor-up until CFL max value if the solution rate of change is not limited, and acceptable linear convergence is achieved. It is reduced by factor-down if rate is limited, there is not enough linear convergence, or the nonlinear residuals are stagnant and oscillatory. It is reset back to CFL min value when linear solvers diverge, or if nonlinear residuals increase too much. +If an adaptative CFL number is used, the initial CFL number for the finest grid is set to . The local CFL number increases by until if the solution rate of change is not limited, and acceptable linear convergence is achieved. It is reduced by if rate is limited, there is not enough linear convergence, or the nonlinear residuals are stagnant and oscillatory. It is reset back to when linear solvers diverge, or if nonlinear residuals increase too much. -No idea about the acceptable linear solver convergence parameter? +No idea about the acceptable parameter? ## Time-dependent Simulation ## From ded75ba0b78e04531f373d48432bcab669fdd01e Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Thu, 26 Aug 2021 10:52:48 +0200 Subject: [PATCH 04/18] Add and update documentation --- _docs_v7/Mesh-File.md | 5 +---- docs_files/SU2_geometry_nomenclature.png | Bin 15047 -> 23220 bytes 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/_docs_v7/Mesh-File.md b/_docs_v7/Mesh-File.md index 4a721d67..50e58e67 100644 --- a/_docs_v7/Mesh-File.md +++ b/_docs_v7/Mesh-File.md @@ -153,7 +153,4 @@ We are continuously working to integrate SU2 with industry-standard tools. The l The following image illustrates the primary and dual grid components nomenclature used inside the SU2 code. ![SU2 geometry definition](../../docs_files/SU2_geometry_nomenclature.png) - -with the dual grid in red and the primary grid in black. - -MAKE IT PRETTIER! +*Primary and dual grid nomenclature. Primary grid in black and dual grid in red.* diff --git a/docs_files/SU2_geometry_nomenclature.png b/docs_files/SU2_geometry_nomenclature.png index 584b0f93986fbfe7adbe803016966012a7923c4e..5b3373bd22b860e3fcbc967c2c71106c6868d8d7 100644 GIT binary patch literal 23220 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 PfssB8``}K{@$7#9*mqIm literal 15047 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 CrunD< From 3a31e8f02dc880a1c963a376d8fea472f84c11aa Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Thu, 26 Aug 2021 11:00:15 +0200 Subject: [PATCH 05/18] Update version number --- _docs_v7/Convective-Schemes.md | 6 ++--- _docs_v7/Markers-and-BC.md | 36 +++++++++++++++--------------- _docs_v7/Physical-Definition.md | 6 ++--- _docs_v7/Solver-Setup.md | 12 +++++----- _docs_v7/Streamwise-Periodicity.md | 2 +- _docs_v7/Theory.md | 12 +++++----- 6 files changed, 37 insertions(+), 37 deletions(-) diff --git a/_docs_v7/Convective-Schemes.md b/_docs_v7/Convective-Schemes.md index 0195cbe8..5db882ae 100755 --- a/_docs_v7/Convective-Schemes.md +++ b/_docs_v7/Convective-Schemes.md @@ -32,7 +32,7 @@ To achieve second order upwind schemes need to be used with MUSCL reconstruction | Solver | Version | | --- | --- | -| `EULER`, `NAVIER_STOKES`, `RANS` | 7.0.0 | +| `EULER`, `NAVIER_STOKES`, `RANS` | 7.2.0 | ### Central Schemes ### @@ -89,7 +89,7 @@ Some of the schemes above have tunning parameters or accept extra options, the f | Solver | Version | | --- | --- | -| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.0.0 | +| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.2.0 | ### Central Schemes ### @@ -103,7 +103,7 @@ Some of the schemes above have tunning parameters or accept extra options, the f | Solver | Version | | --- | --- | -| `RANS`, `INC_RANS` | 7.0.0 | +| `RANS`, `INC_RANS` | 7.2.0 | Only one method is currently available: `SCALAR_UPWIND` which must be selected via option `CONV_NUM_METHOD_TURB`. This method does not have any special parameters. diff --git a/_docs_v7/Markers-and-BC.md b/_docs_v7/Markers-and-BC.md index 58bb1f18..85558b85 100755 --- a/_docs_v7/Markers-and-BC.md +++ b/_docs_v7/Markers-and-BC.md @@ -35,7 +35,7 @@ The term *Marker* refers to a named entity in your mesh file. Boundary condition | Solver | Version | | --- | --- | -| `EULER`, `NAVIER_STOKES`, `RANS`, `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `EULER`, `NAVIER_STOKES`, `RANS`, `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.2.0 | An Euler wall for inviscid flow is defined with the `MARKER_EULER` option. It can also be used as a slip wall in viscous flow. Only the marker name has to be given for this option. @@ -51,7 +51,7 @@ MARKER_EULER = (Euler_Wall1, Euler_Wall2, ...) | Solver | Version | | --- | --- | -| `EULER`, `NAVIER_STOKES`, `RANS`, `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `EULER`, `NAVIER_STOKES`, `RANS`, `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.2.0 | A symmetry wall is defined with using the `MARKER_SYM` option. Only the marker name has to be given for this option. @@ -67,7 +67,7 @@ The negative Sapalart-Allmaras model implements the same boundary conditions as | Solver | Version | | --- | --- | -| `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_NAVIER_STOKES`, `HEAT_EQUATION_FVM` | 7.0.0 | +| `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_NAVIER_STOKES`, `HEAT_EQUATION_FVM` | 7.2.0 | A viscous wall with a prescribed constant heatflux is defined with the `MARKER_HEATFLUX` option. The option format is the marker name followed by the value of the heatflux (in Watts per square meter `[W/m^2],[J/(s*m^2)]`), e.g. @@ -81,7 +81,7 @@ MARKER_HEATFLUX = (Wall1, 1e05, Wall2, 0.0) | Solver | Version | | --- | --- | -| `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.0.0 | +| `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.2.0 | A wall with a prescribed locally variable heatflux via a heat transfer coefficient and and a Temperature at infinity (or reservoir Temperature) is defined with the `MARKER_HEATTRANSFER` option. The heatflux `q` computes to `q = h(T_inf - T_wall)`, where `T_wall` is the local wall temperature and therefore no user input. The option format is the marker name followed by the value of the heat-transfer coefficient (in Watts per square meter and Kelvin `[W/(m^2*K)],[J/(s*m^2*K)]`) and the value of the Temperature at infinity (in Kelvin `[K]`), e.g. @@ -95,7 +95,7 @@ MARKER_HEATTRANSFER = (Wall1, 10.0, 350.0, Wall2, 5.0, 330.0, ...) | Solver | Version | | --- | --- | -| `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_NAVIER_STOKES`, `HEAT_EQUATION_FVM` | 7.0.0 | +| `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_NAVIER_STOKES`, `HEAT_EQUATION_FVM` | 7.2.0 | A wall with a constant temperature is defined with the `MARKER_ISOTHERMAL` option. The option format is the marker name followed by the value of the temperature (in Kelvin `[K]`), e.g. ``` @@ -106,7 +106,7 @@ MARKER_ISOTHERMAL = (Wall1, 300.0, Wall2, 250.0) | Solver | Version | | --- | --- | -| `EULER`, `NAVIER_STOKES`, `RANS`, `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `EULER`, `NAVIER_STOKES`, `RANS`, `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.2.0 | A marker can be defined as a Farfield boundary by addings its name to the `MARKER_FAR` option. No other values are necesseary for that option. The actual values which will be prescribed depend on the solver and other user input settings. The implementation is based on the Riemann invariants of the Euler system calculated from the user input config file. More details can be found in the [Physical Definition](/docs_v7/Physical-Definition/) section. @@ -121,7 +121,7 @@ Inlet boundary conditions are set using the option `MARKER_INLET`. | Solver | Version | | --- | --- | -| `EULER`, `NAVIER_STOKES`, `RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `EULER`, `NAVIER_STOKES`, `RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.2.0 | To describe the **Total Conditions** at the inlet, set the option `INLET_TYPE= TOTAL_CONDITIONS` (which is the default). The format for `MARKER_INLET` then is the marker name, followed by the Total Temperature (in Kelvin `[K]`), the total Pressure (in Pascal `[Pa]`) and the flow direction unity vector (in meter per second `[m/s]`). For example: ``` @@ -133,7 +133,7 @@ MARKER_INLET = (inlet1, 300, 1e6, 1.0, 0.0, 0.0, inlet2, 400, 1e6, 0.0, 1.0, 0.0 | Solver | Version | | --- | --- | -| `EULER`, `NAVIER_STOKES`, `RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `EULER`, `NAVIER_STOKES`, `RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.2.0 | To describe the **Mass Flow** at the inlet, set the option `INLET_TYPE= MASS_FLOW`. The format for `MARKER_INLET` then is the marker name, followed by the Density (in `[kg/m^3`]), the Velocity magnitude (in meter per second `[m/s]`) and the flow direction unity vector (in meter per second `[m/s]`). For example: ``` @@ -146,7 +146,7 @@ MARKER_INLET = (inlet1, 1.13 , 20, 1.0, 0.0, 0.0, inlet2, 1.15, 10, 0.0, 1.0, 0. | Solver | Version | | --- | --- | -| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.0.0 | +| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.2.0 | To describe the **Velocity** at the inlet, set the option `INC_INLET_TYPE= VELOCITY_INLET`. The format for `MARKER_INLET` then is the marker name, followed by the Temperature (in Kelvin `[K`]), the Velocity magnitude (in meter per second `[m/s]`) and the flow direction unity vector (in meter per second `[m/s]`). @@ -159,7 +159,7 @@ MARKER_INLET = (inlet1, 300 , 20, 1.0, 0.0, 0.0, inlet2, 200, 10, 0.0, 1.0, 0.0) | Solver | Version | | --- | --- | -| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.0.0 | +| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.2.0 | To describe the **Total Pressure** at the inlet, set the option `INC_INLET_TYPE= PRESSURE_INLET`. The format for `MARKER_INLET` then is the marker name, followed by the Temperature (in Kelvin `[K]`), the Total Pressure (in Pascal `[Pa]`) and the flow direction unity vector (in meter per second `[m/s]`). @@ -180,7 +180,7 @@ Outlet boundary conditions are set using the `MARKER_OUTLET` option. These are p | Solver | Version | | --- | --- | -| `EULER`, `NAVIER_STOKES`, `RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `EULER`, `NAVIER_STOKES`, `RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.2.0 | To describe the static thermodynamic pressure at an outlet, the format for `MARKER_OUTLET` is the marker name, followed by the value of the static pressure (in Pascal `[Pa]`). @@ -192,7 +192,7 @@ MARKER_OUTLET = (outlet, 1e5) | Solver | Version | | --- | --- | -| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`| 7.0.0 | +| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`| 7.2.0 | To describe the pressure at an outlet, set the option `INC_OUTLET_TYPE= PRESSURE_OUTLET`. The format for `MARKER_OUTLET` is the marker name, followed by the value of the gauge pressure (in Pascal `[Pa]`). @@ -207,7 +207,7 @@ MARKER_OUTLET = (outlet, 1e1) | Solver | Version | | --- | --- | -| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`| 7.0.0 | +| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`| 7.2.0 | To describe the mass flow at an outlet, set the option `INC_OUTLET_TYPE= MASS_FLOW_OUTLET`. The format for `MARKER_OUTLET` is the marker name, followed by the value of the target mass flow (in kilogramm per second `[kg/s]`). @@ -222,7 +222,7 @@ MARKER_OUTLET = (outlet, 1e1) | Solver | Version | | --- | --- | -| `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `NAVIER_STOKES`, `RANS`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_NAVIER_STOKES` | 7.2.0 | For two given periodic surfaces `periodic marker` and `donor marker` SU2 defines periodicity by ``` @@ -236,7 +236,7 @@ The same number of points on both surfaces is assumed. Their orientation is spec | Solver | Version | | --- | --- | -| `ELASTICITY` | 7.0.0 | +| `ELASTICITY` | 7.2.0 | The format for this boundary condition consists of a list of all clamped surfaces (markers). Structural displacements are set to 0 for the nodes on those surfaces. @@ -250,7 +250,7 @@ MARKER_CLAMPED = (surface_1,...,surface_N) | Solver | Version | | --- | --- | -| `ELASTICITY` | 7.0.0 | +| `ELASTICITY` | 7.2.0 | The displacements of the nodes on `surface` are enforced, the displacement vector is specified by magnitude and direction (the x/y/z components), internally the solver makes the direction unitary, the multiplier (should usually be set to 1) can be used to increase/decrease the magnitude for example after scaling an existing mesh. ``` @@ -263,7 +263,7 @@ MARKER_DISPLACEMENT = (surface, multiplier, magnitude `[m]`, x component, y comp | Solver | Version | | --- | --- | -| `ELASTICITY` | 7.0.0 | +| `ELASTICITY` | 7.2.0 | A force-like boundary condition but specified in terms of pressure (units of Pa) which is integrated to obtain nodal forces. The syntax is identical to `MARKER_DISPLACEMENT`. ``` @@ -276,7 +276,7 @@ MARKER_LOAD = (surface, multiplier, magnitude `[Pa]`, x component, y component, | Solver | Version | | --- | --- | -| `ELASTICITY` | 7.0.0 | +| `ELASTICITY` | 7.2.0 | Normal pressure boundary condition (positive means into the surface). This is a following force both magnitude and direction depend of the deformation of the structure. ``` diff --git a/_docs_v7/Physical-Definition.md b/_docs_v7/Physical-Definition.md index c5b36555..040c5e13 100644 --- a/_docs_v7/Physical-Definition.md +++ b/_docs_v7/Physical-Definition.md @@ -25,7 +25,7 @@ SU2 offers different ways of setting and computing this definition. This documen | Solver | Version | | --- | --- | -| `EULER`, `NAVIER_STOKES`, `RANS`, `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `EULER`, `NAVIER_STOKES`, `RANS`, `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS`, `FEM_EULER`, `FEM_NAVIER_STOKES` | 7.2.0 | The following table depicts the reference values used by most of the solvers in SU2. The highlighted variables vary depending on the actual solver and the user input. @@ -49,7 +49,7 @@ The following table depicts the reference values used by most of the solvers in | Solver | Version | | --- | --- | -| `EULER`, `NAVIER_STOKES`, `RANS`,`FEM_EULER`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `EULER`, `NAVIER_STOKES`, `RANS`,`FEM_EULER`, `FEM_NAVIER_STOKES` | 7.2.0 | The physical definition for the compressible solvers in SU2 based around the definition of the free-stream. The free-stream values are not only used as boundary conditions for the `MARKER_FAR` option, but also for initialization and non-dimensionalization. That means even if you don't have any farfield BCs in your problem, it might be important to prescribe physically meaningful values for the options. @@ -81,7 +81,7 @@ For all schemes, as reference values for the density and temperature the free-st | Solver | Version | | --- | --- | -| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.0.0 | +| `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.2.0 | The physical definition of the incompressible solvers is accomplished by setting an appropriate flow condition for initialization and non-dimensionalization. SU2 solves the [incompressible Navier-Stokes equations](/docs_v7/Theory/#incompressible-navier-stokes) in a general form allowing for variable density due to heat transfer through the low-Mach approximation (or incompressible ideal gas formulation). diff --git a/_docs_v7/Solver-Setup.md b/_docs_v7/Solver-Setup.md index 60ed68be..3467204a 100644 --- a/_docs_v7/Solver-Setup.md +++ b/_docs_v7/Solver-Setup.md @@ -29,7 +29,7 @@ See the [Software Components](/docs_v7/Software-Components/) documentation to de | Solver | Version | | --- | --- | -| `ALL`| 7.0.0 | +| `ALL`| 7.2.0 | ## Direct ## @@ -145,7 +145,7 @@ Every solver has its specific options and we refer to the tutorial cases for mor | Solver | Version | | --- | --- | -| `ALL`| 7.0.0 | +| `ALL`| 7.2.0 | A simulation can be restarted from a previous computation by setting `RESTART_SOL=YES`. If it is a time-dependent problem, additionally `RESTART_ITER` must be set to the time iteration index you want to restart from: @@ -185,7 +185,7 @@ The option `MATH_PROBLEM` defines whether the direct problem (`DIRECT`, default) | Solver | Version | | --- | --- | -| `ALL`| 7.0.0 | +| `ALL`| 7.2.0 | A simulation is controlled by setting the number of iterations the solver should run (or by setting a convergence critera). The picture below depicts the two types of iterations we consider. @@ -208,7 +208,7 @@ No idea about the acceptable parameter? | Solver | Version | | --- | --- | -| `ALL`| 7.0.0 | +| `ALL`| 7.2.0 | To enable a time-dependent simulation set the option `TIME_DOMAIN` to `YES` (default is `NO`). There are different methods available for certain solvers which can be set using the `TIME_MARCHING` option. For example for any of the FVM-type solvers a first or second-order dual-time stepping (`DUAL_TIME_STEPPING-1ST_ORDER`/`DUAL_TIME_STEPPING-2ND_ORDER`) method or a conventional time-stepping method (`TIME_STEPPING`) can be used. @@ -237,7 +237,7 @@ The solver will stop either when it reaches the maximum time (`MAX_TIME`) or the | Solver | Version | | --- | --- | -| `ALL`| 7.0.0 | +| `ALL`| 7.2.0 | A steady-state simulation is defined by using `TIME_DOMAIN=NO`, which is the default value if the option is not present. In this case the number of iterations is controlled by the option `ITER`. @@ -247,7 +247,7 @@ A steady-state simulation is defined by using `TIME_DOMAIN=NO`, which is the def | Solver | Version | | --- | --- | -| `ALL`| 7.0.0 | +| `ALL`| 7.2.0 | Despite setting the maximum number of iterations, it is possible to use a convergence criterion so that the solver will stop when it reaches a certain value of a residual or if variations of a coefficient are below a certain threshold. To enable a convergence criterion use the option `CONV_FIELD` to set an output field that should be monitored. The list of possible fields depends on the solver. Take a look at [Custom Output](/docs_v7/Custom-Output/) to learn more about output fields. Depending on the type of field (residual or coefficient) there are two types of methods: diff --git a/_docs_v7/Streamwise-Periodicity.md b/_docs_v7/Streamwise-Periodicity.md index e239e87b..b63ab837 100644 --- a/_docs_v7/Streamwise-Periodicity.md +++ b/_docs_v7/Streamwise-Periodicity.md @@ -5,7 +5,7 @@ permalink: /docs_v7/Streamwise-Periodicity/ | Solver | Version | | --- | --- | -| `INC_NAVIER_STOKES`, `INC_RANS` | 7.0.0 | +| `INC_NAVIER_STOKES`, `INC_RANS` | 7.2.0 | This page contains an overview of the theory behind streamwise periodic flow and builds upon [Incompressible Navier-Stokes](/docs_v7/Theory/#incompressible-navier-stokes). A tutorial for [Streamwise Periodic Flow](/tutorials/Inc_Streamwise_Periodic/) is available. diff --git a/_docs_v7/Theory.md b/_docs_v7/Theory.md index 3b1ebfd6..8f327a5d 100644 --- a/_docs_v7/Theory.md +++ b/_docs_v7/Theory.md @@ -21,7 +21,7 @@ This page contains a very brief summary of the different governing equation sets | Solver | Version | | --- | --- | -| `NAVIER_STOKES`, `RANS`, `FEM_NAVIER_STOKES` | 7.0.0 | +| `NAVIER_STOKES`, `RANS`, `FEM_NAVIER_STOKES` | 7.2.0 | SU2 solves the compressible Navier-Stokes equations expressed in differential form as @@ -66,7 +66,7 @@ Within the `NAVIER_STOKES` and `RANS` solvers, we discretize the equations in sp | Solver | Version | | --- | --- | -| `EULER`, `FEM_EULER` | 7.0.0 | +| `EULER`, `FEM_EULER` | 7.2.0 | SU2 solves the compressible Euler equations, which can be obtained as a simplification of the compressible Navier-Stokes equations in the absence of viscosity and thermal conductivity. They can be expressed in differential form as @@ -90,7 +90,7 @@ Within the `EULER` solvers, we discretize the equations in space using a finite | Solver | Version | | --- | --- | -| `INC_NAVIER_STOKES`, `INC_RANS` | 7.0.0 | +| `INC_NAVIER_STOKES`, `INC_RANS` | 7.2.0 | SU2 solves the incompressible Navier-Stokes equations in a general form allowing for variable density due to heat transfer through the low-Mach approximation (or incompressible ideal gas formulation). The equations can be expressed in differential form as @@ -137,7 +137,7 @@ Within the `INC_NAVIER_STOKES` and `INC_RANS` solvers, we discretize the equatio | Solver | Version | | --- | --- | -| `INC_EULER` | 7.0.0 | +| `INC_EULER` | 7.2.0 | SU2 solves the incompressible Euler equations as a simplification of the low-Mach formulation above in the absence of viscosity and thermal conductivity (no energy equation is required). The equations can be expressed in differential form as @@ -173,7 +173,7 @@ Within the turbulence solvers, we discretize the equations in space using a fini | Solver | Version | | --- | --- | -| `ELASTICITY` | 7.0.0 | +| `ELASTICITY` | 7.2.0 | For structural analysis of solids in SU2, we solve the elasticity equations in a form allowing for geometric non-linearities expressed as @@ -189,7 +189,7 @@ In the `ELASTICITY` solver, we discretize the equations in space with a nodal fi | Solver | Version | | --- | --- | -| `HEAT_EQUATION_FVM` | 7.0.0 | +| `HEAT_EQUATION_FVM` | 7.2.0 | The governing equation for heat conduction through a solid material can be expressed in differential form as the following: From 694e88c12aeb1f31e5f2b933879f5f85d44ae86c Mon Sep 17 00:00:00 2001 From: suargi <64904120+suargi@users.noreply.github.com> Date: Thu, 26 Aug 2021 11:08:19 +0200 Subject: [PATCH 06/18] Update _docs_v7/Gradients-Limiters.md Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- _docs_v7/Gradients-Limiters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Gradients-Limiters.md b/_docs_v7/Gradients-Limiters.md index b6ffe206..955ae7f8 100644 --- a/_docs_v7/Gradients-Limiters.md +++ b/_docs_v7/Gradients-Limiters.md @@ -12,7 +12,7 @@ This page lists the gradient computation methods and the limiter functions in SU ## Gradient Computation ## The numerical method for the spatial gradients computation is specified by the `NUM_METHOD_GRAD` field. The list of availabel options is given below. -`GREEN_GAUSS`: classic gradient reconstruction based on the Green-Gauss theorem. +`GREEN_GAUSS`: Classic gradient reconstruction based on the Green-Gauss theorem. `LEAST_SQUARES`: Compute the gradient of a field using unweighted Least- Squares approximation. `WEIGHTED_LEAST_SQUARES`: Compute the gradient of a field using inverse-distance-weighted approximation. The default option is set to `WEIGHTED_LEAST_SQUARES`. From bfc9fb656fec5935bab420dcfbf83c3a84e5e341 Mon Sep 17 00:00:00 2001 From: suargi <64904120+suargi@users.noreply.github.com> Date: Thu, 26 Aug 2021 11:09:15 +0200 Subject: [PATCH 07/18] Update _docs_v7/Gradients-Limiters.md Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- _docs_v7/Gradients-Limiters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Gradients-Limiters.md b/_docs_v7/Gradients-Limiters.md index 955ae7f8..c003f46e 100644 --- a/_docs_v7/Gradients-Limiters.md +++ b/_docs_v7/Gradients-Limiters.md @@ -11,7 +11,7 @@ This page lists the gradient computation methods and the limiter functions in SU --- ## Gradient Computation ## -The numerical method for the spatial gradients computation is specified by the `NUM_METHOD_GRAD` field. The list of availabel options is given below. +The numerical method for the computation of the spatial gradients used for viscous fluxes and source terms is specified by the `NUM_METHOD_GRAD` field. The list of available options is given below. `GREEN_GAUSS`: Classic gradient reconstruction based on the Green-Gauss theorem. `LEAST_SQUARES`: Compute the gradient of a field using unweighted Least- Squares approximation. `WEIGHTED_LEAST_SQUARES`: Compute the gradient of a field using inverse-distance-weighted approximation. From 63a93586f4ed2086d873e76fe935377f5ccac575 Mon Sep 17 00:00:00 2001 From: suargi <64904120+suargi@users.noreply.github.com> Date: Thu, 26 Aug 2021 11:11:51 +0200 Subject: [PATCH 08/18] Update _docs_v7/Markers-and-BC.md Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- _docs_v7/Markers-and-BC.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Markers-and-BC.md b/_docs_v7/Markers-and-BC.md index 58bb1f18..c10acd89 100755 --- a/_docs_v7/Markers-and-BC.md +++ b/_docs_v7/Markers-and-BC.md @@ -61,7 +61,7 @@ For all Finite Volume (FVM) solvers, i.e. not the `FEM_*` solvers, its implement MARKER_SYM = (Symmetry_Wall1, Symmetry_Wall2, ...) ``` -The negative Sapalart-Allmaras model implements the same boundary conditions as for the standard/standalone version. +The negative Spalart-Allmaras model implements the same boundary conditions as for the standard/standalone version. ## Constant Heatflux (no-slip) Wall ## From 22dbc601bd42e048c3e8bef3e27553756c8f6b96 Mon Sep 17 00:00:00 2001 From: suargi <64904120+suargi@users.noreply.github.com> Date: Thu, 26 Aug 2021 11:41:25 +0200 Subject: [PATCH 09/18] Update _docs_v7/Solver-Setup.md Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- _docs_v7/Solver-Setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Solver-Setup.md b/_docs_v7/Solver-Setup.md index 3467204a..95275c65 100644 --- a/_docs_v7/Solver-Setup.md +++ b/_docs_v7/Solver-Setup.md @@ -6,7 +6,7 @@ permalink: /docs_v7/Solver-Setup/ This is a basic introduction on how to set up a simulation using SU2. We distinguish between single-zone computations and multi-zone computations. The following considers a single zone only. For an explanation on multi-zone problems, continue with [Basics of Multi-Zone Computations](/docs_v7/Multizone). Three different types of mathematical problems can be solved in SU2. The type of problem to be solved is specified on the config file by the `MATH_PROBLEM` field. The three options are: -`DIRECT`: also refered to as primal, flow solver.? +`DIRECT`: Also referred to as primal, this is the default when SU2_CFD or SU2_DEF are used. `DISCRETE_ADJOINT`: a discrete adjoint methodology based on Automatic Differentiation. `CONTINUOUS_ADJOINT`: a continuous adjoint methodology based on Automatic Differentiation. From f979f9be5919b8aa9048ef50fb756b81e094828a Mon Sep 17 00:00:00 2001 From: suargi <64904120+suargi@users.noreply.github.com> Date: Thu, 26 Aug 2021 11:41:40 +0200 Subject: [PATCH 10/18] Update _docs_v7/Solver-Setup.md Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- _docs_v7/Solver-Setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Solver-Setup.md b/_docs_v7/Solver-Setup.md index 95275c65..34a34a77 100644 --- a/_docs_v7/Solver-Setup.md +++ b/_docs_v7/Solver-Setup.md @@ -7,7 +7,7 @@ This is a basic introduction on how to set up a simulation using SU2. We disting Three different types of mathematical problems can be solved in SU2. The type of problem to be solved is specified on the config file by the `MATH_PROBLEM` field. The three options are: `DIRECT`: Also referred to as primal, this is the default when SU2_CFD or SU2_DEF are used. -`DISCRETE_ADJOINT`: a discrete adjoint methodology based on Automatic Differentiation. +`DISCRETE_ADJOINT`: A discrete adjoint methodology based on Automatic Differentiation, available for most solvers. `CONTINUOUS_ADJOINT`: a continuous adjoint methodology based on Automatic Differentiation. See the [Software Components](/docs_v7/Software-Components/) documentation to determine which software module is required for each problem. From 26cac3c86d753391881d418b2cabc4a47a327885 Mon Sep 17 00:00:00 2001 From: suargi <64904120+suargi@users.noreply.github.com> Date: Thu, 26 Aug 2021 11:41:47 +0200 Subject: [PATCH 11/18] Update _docs_v7/Solver-Setup.md Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- _docs_v7/Solver-Setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Solver-Setup.md b/_docs_v7/Solver-Setup.md index 34a34a77..40d49f3e 100644 --- a/_docs_v7/Solver-Setup.md +++ b/_docs_v7/Solver-Setup.md @@ -8,7 +8,7 @@ This is a basic introduction on how to set up a simulation using SU2. We disting Three different types of mathematical problems can be solved in SU2. The type of problem to be solved is specified on the config file by the `MATH_PROBLEM` field. The three options are: `DIRECT`: Also referred to as primal, this is the default when SU2_CFD or SU2_DEF are used. `DISCRETE_ADJOINT`: A discrete adjoint methodology based on Automatic Differentiation, available for most solvers. -`CONTINUOUS_ADJOINT`: a continuous adjoint methodology based on Automatic Differentiation. +`CONTINUOUS_ADJOINT`: A hand-derived continuous adjoint methodology available only for compressible flows. See the [Software Components](/docs_v7/Software-Components/) documentation to determine which software module is required for each problem. From 980c3322b7ad293db7728e2217654e86a16395da Mon Sep 17 00:00:00 2001 From: suargi <64904120+suargi@users.noreply.github.com> Date: Thu, 26 Aug 2021 11:42:45 +0200 Subject: [PATCH 12/18] Update _docs_v7/Solver-Setup.md Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- _docs_v7/Solver-Setup.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Solver-Setup.md b/_docs_v7/Solver-Setup.md index 40d49f3e..dc8a2bcd 100644 --- a/_docs_v7/Solver-Setup.md +++ b/_docs_v7/Solver-Setup.md @@ -5,7 +5,7 @@ permalink: /docs_v7/Solver-Setup/ This is a basic introduction on how to set up a simulation using SU2. We distinguish between single-zone computations and multi-zone computations. The following considers a single zone only. For an explanation on multi-zone problems, continue with [Basics of Multi-Zone Computations](/docs_v7/Multizone). -Three different types of mathematical problems can be solved in SU2. The type of problem to be solved is specified on the config file by the `MATH_PROBLEM` field. The three options are: +Three different types of mathematical problems can be solved in SU2. The type of problem to be solved is specified on the config file by the `MATH_PROBLEM` field. The options are: `DIRECT`: Also referred to as primal, this is the default when SU2_CFD or SU2_DEF are used. `DISCRETE_ADJOINT`: A discrete adjoint methodology based on Automatic Differentiation, available for most solvers. `CONTINUOUS_ADJOINT`: A hand-derived continuous adjoint methodology available only for compressible flows. From 0f79ed3455b530feb88013735fe9a57cb9bf5bc9 Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Thu, 26 Aug 2021 16:48:07 +0200 Subject: [PATCH 13/18] Add and update documentation --- _docs_v7/Gradients-Limiters.md | 3 +-- _docs_v7/Markers-and-BC.md | 2 +- _docs_v7/Software-Components.md | 6 +++--- _docs_v7/Solver-Setup.md | 8 +++++--- 4 files changed, 10 insertions(+), 9 deletions(-) diff --git a/_docs_v7/Gradients-Limiters.md b/_docs_v7/Gradients-Limiters.md index c003f46e..035023f7 100644 --- a/_docs_v7/Gradients-Limiters.md +++ b/_docs_v7/Gradients-Limiters.md @@ -13,11 +13,10 @@ This page lists the gradient computation methods and the limiter functions in SU ## Gradient Computation ## The numerical method for the computation of the spatial gradients used for viscous fluxes and source terms is specified by the `NUM_METHOD_GRAD` field. The list of available options is given below. `GREEN_GAUSS`: Classic gradient reconstruction based on the Green-Gauss theorem. -`LEAST_SQUARES`: Compute the gradient of a field using unweighted Least- Squares approximation. `WEIGHTED_LEAST_SQUARES`: Compute the gradient of a field using inverse-distance-weighted approximation. The default option is set to `WEIGHTED_LEAST_SQUARES`. -The spatial gradients method used only for upwind reconstruction is pecified by the `NUM_METHOD_GRAD_RECON` field. +The spatial gradients method used only for upwind reconstruction is specified by the `NUM_METHOD_GRAD_RECON` field. An additional method is available; `LEAST_SQUARES`: Compute the gradient of a field using unweighted Least- Squares approximation. If this field is left empty or set to `NONE` it defaults to `NUM_METHOD_GRAD`. Thin Shear Layer gradient reconstruction is always used for the construction of the Jacobian. diff --git a/_docs_v7/Markers-and-BC.md b/_docs_v7/Markers-and-BC.md index 4a417554..91974b95 100755 --- a/_docs_v7/Markers-and-BC.md +++ b/_docs_v7/Markers-and-BC.md @@ -228,7 +228,7 @@ For two given periodic surfaces `periodic marker` and `donor marker` SU2 defines ``` MARKER_PERIODIC= ( periodic marker, donor marker, rotation_center_x, rotation_center_y, rotation_center_z, rotation_angle_x-axis, rotation_angle_y-axis, rotation_angle_z-axis, translation_x, translation_y, translation_z, ... ) ``` -The same number of points on both surfaces is assumed. Their orientation is specified by the additional set of parameters. Whereby `rotation_center_` specifies the coordinates of the center of rotation for the specified axis, `rotation_angle_` defines the rotation angle [in radians] between `periodic marker` and `donor marker` about the specified axis and `translation_` specifies the translation in space between `periodic marker` and `donor marker` about the specified axis. +The same number of points on both surfaces is assumed. Their orientation is specified by the additional set of arguments. For rotational periodicity the parameter `rotation_center_` specifies the coordinates of the center of rotation for the specified axis and `rotation_angle_` defines the rotation angle [in radians] between `periodic marker` and `donor marker` about the specified axis. For translational periodicty the parameter `translation_` specifies the translation between `periodic marker` and `donor marker` in each space direction. ## Structural Boundary Conditions ## diff --git a/_docs_v7/Software-Components.md b/_docs_v7/Software-Components.md index f12e9a1b..a5400946 100644 --- a/_docs_v7/Software-Components.md +++ b/_docs_v7/Software-Components.md @@ -22,8 +22,8 @@ The key C++ and Python tools in the SU2 software suite are briefly described bel - **SU2_CFD (Computational Fluid Dynamics Code)**: Solves direct, adjoint (conitnuous?), and linearized problems for the Euler, Navier-Stokes, and Reynolds-Averaged Navier-Stokes (RANS) equation sets, among many others. SU2_CFD can be run serially or in parallel using MPI. It uses a Finite Volume Method (FVM), and an edge-based structure. A Discontinuous-Galerkin Finite Element Method solver is currently being completed and will be available to the public in an upcoming release. Explicit and implicit time integration methods are available with centered or upwinding spatial integration schemes. The software also has several advanced features to improve robustness and convergence, including residual smoothing, preconditioners, and agglomeration multigrid. - **SU2_DOT (Gradient Projection Code)**: Computes the partial derivative of a functional with respect to variations in the aerodynamic surface. SU2_DOT uses the surface sensitivity, the flow solution, and the definition of the geometrical variable to evaluate the derivative of a particular functional (e.g. drag, lift, etc.). This is essentially a large dot product operation between the adjoint sensitivities and geometric sensitivities for the particular design variable parameterization. - **SU2_DEF (Mesh Deformation Code)**: Computes the geometrical deformation of an aerodynamic surface and the surrounding volumetric grid. Once the type of deformation is defined, SU2_DEF performs the grid deformation by solving the linear elasticity equations on the volume grid. Three-dimensional geometry parameterization is defined using Free Form Deformation, while two-dimensional problems can be defined by both Free From Deformation or bump functions, such as Hicks-Henne. -- **SU2_MSH (Mesh Adaptation Code)**: Performs grid adaptation using various techniques based on an analysis of a converged flow solution, adjoint solution, and linearized problem to strategically refine the mesh about key flow features. This module also contains a preprocessor that creates the appropriate structures for periodic boundary conditions. THIS DOES NOT LONGER EXIST?? -- **SU2_SOL (Solution Export Code)**: Generates the volumetric and surface solution files from SU2 restart files. HOW TO USE IT?? + +- **SU2_SOL (Solution Export Code)**: Generates the volumetric and surface solution files from SU2 restart files from SU2 restart files (although SU2_CFD will output as many formats as requested in the config file). HOW TO USE IT?? - **SU2_GEO (Geometry Definition Code)**: Geometry preprocessing and definition code. In particular, this module performs the calculation of geometric constraints for shape optimization. While they are not C++ modules, two other similar directories included in the source distribution should be mentioned. First, the **SU2_IDE** (Integrated Development Environment) directory contains files associated with various IDEs to aid developers (Eclipse, VisualStudio, Wing, Xcode). Second, the **SU2_PY** directory contains all of the files making up the Python framework, and some of these will be highlighted in a section below. @@ -33,7 +33,7 @@ While they are not C++ modules, two other similar directories included in the so SU2 includes integrated support for Algorithmic Differentiation (AD) based on Operator Overloading to compute arbitrary derivatives. One application of this feature is the discrete adjoint solver that is implemented in SU2. In contrast to the continuous adjoint method, special versions of the modules SU2_CFD and SU2_DOT are required to use this solver. - **SU2_CFD_AD**: Solves the discrete adjoint equations using a consistent linearization of the flow solver with the help of AD. Although it has additionally the same features as SU2_CFD, using it for other solvers will result in a slight slow-down due to the AD overhead. -- **SU2_CFD_DIRECTDIFF**: Computes the gradients of an objective function by forward mode of AD. Although it has additionally the same features as SU2_CFD, using it for other solvers will result in a slight slow-down due to the AD overhead. +- **SU2_CFD_DIRECTDIFF**: Computes the gradients of an objective function by forward mode of AD. It has the same features as SU2_CFD, but using it for direct problems will result in a slow-down due to the AD overhead. - **SU2_DOT_AD**: The discrete adjoint formulation does not include the influence of the mesh deformation, therefore this module will compute the required partial derivative of the functional with respect to variations in the computational mesh. Instead of SU2_DOT, SU2_DOT_AD uses the volume sensitivities to evaluate the derivative. Finally, the resulting sensitivities on the aerodynamic surface are projected on to the particular design parameterization. ## Python Scripts diff --git a/_docs_v7/Solver-Setup.md b/_docs_v7/Solver-Setup.md index dc8a2bcd..11ec0091 100644 --- a/_docs_v7/Solver-Setup.md +++ b/_docs_v7/Solver-Setup.md @@ -129,13 +129,15 @@ The forward mode of AD capability allows to compute the forward derivatives (see The execution of this capability is done by the module `SU2_CFD_DIRECTDIFF`. See the [Software Components](/docs_v7/Software-Components/) for further details. -## Discrete adjoint ## +## Adjoint Formulations ## -SU2 can compute the variation of an objective function with respect to the design surface shape control points. To get the list of objective functions available in SU2 we address to https://github.com/su2code/SU2/blob/master/Common/include/option_structure.hpp ENUM_OBJECTIVE and Objective_Map to see the proper nomenclature for the config file. DON'T KNOW HOW TO ADDRESS PROPERLY? +### Discrete adjoint ### + +SU2 can compute the sensitivities of an objective function with respect to the control points defining the shape of the design surface. To get the list of objective functions available in SU2 we address to https://github.com/su2code/SU2/blob/master/Common/include/option_structure.hpp ENUM_OBJECTIVE and Objective_Map to see the proper nomenclature for the config file. DON'T KNOW HOW TO ADDRESS PROPERLY? The objective function value can be scaled by a weighting factor. This value can be specified in the `OBJECTIVE_WEIGHT` field on the config file. -## Continuous adjoint ## +### Continuous adjoint ### Same as the discrete adjoint but using the continuous adjoint approach :) From cb6c0d4a1ffd97a120326e3ac9dc9ffec486d9cf Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Thu, 26 Aug 2021 16:51:53 +0200 Subject: [PATCH 14/18] Add and update documentation --- _docs_v7/Software-Components.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Software-Components.md b/_docs_v7/Software-Components.md index a5400946..7dd13f7b 100644 --- a/_docs_v7/Software-Components.md +++ b/_docs_v7/Software-Components.md @@ -32,7 +32,7 @@ While they are not C++ modules, two other similar directories included in the so SU2 includes integrated support for Algorithmic Differentiation (AD) based on Operator Overloading to compute arbitrary derivatives. One application of this feature is the discrete adjoint solver that is implemented in SU2. In contrast to the continuous adjoint method, special versions of the modules SU2_CFD and SU2_DOT are required to use this solver. -- **SU2_CFD_AD**: Solves the discrete adjoint equations using a consistent linearization of the flow solver with the help of AD. Although it has additionally the same features as SU2_CFD, using it for other solvers will result in a slight slow-down due to the AD overhead. +- **SU2_CFD_AD**: Solves the discrete adjoint equations using a consistent linearization of the flow solver with the help of AD. It has the same features as SU2_CFD, but using it for direct problems will result in a slow-down due to the AD overhead. - **SU2_CFD_DIRECTDIFF**: Computes the gradients of an objective function by forward mode of AD. It has the same features as SU2_CFD, but using it for direct problems will result in a slow-down due to the AD overhead. - **SU2_DOT_AD**: The discrete adjoint formulation does not include the influence of the mesh deformation, therefore this module will compute the required partial derivative of the functional with respect to variations in the computational mesh. Instead of SU2_DOT, SU2_DOT_AD uses the volume sensitivities to evaluate the derivative. Finally, the resulting sensitivities on the aerodynamic surface are projected on to the particular design parameterization. From f76378763769c60d05d013ee9dc7688257d2fc4f Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Thu, 26 Aug 2021 16:56:17 +0200 Subject: [PATCH 15/18] Add and update documentation --- _docs_v7/Gradients-Limiters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Gradients-Limiters.md b/_docs_v7/Gradients-Limiters.md index 035023f7..5eb7ebd1 100644 --- a/_docs_v7/Gradients-Limiters.md +++ b/_docs_v7/Gradients-Limiters.md @@ -16,7 +16,7 @@ The numerical method for the computation of the spatial gradients used for visco `WEIGHTED_LEAST_SQUARES`: Compute the gradient of a field using inverse-distance-weighted approximation. The default option is set to `WEIGHTED_LEAST_SQUARES`. -The spatial gradients method used only for upwind reconstruction is specified by the `NUM_METHOD_GRAD_RECON` field. An additional method is available; `LEAST_SQUARES`: Compute the gradient of a field using unweighted Least- Squares approximation. If this field is left empty or set to `NONE` it defaults to `NUM_METHOD_GRAD`. +The spatial gradients method used only for upwind reconstruction is specified by the `NUM_METHOD_GRAD_RECON` field. An additional method is available; `LEAST_SQUARES`: Compute the gradient of a field using unweighted Least- Squares approximation. If the `NUM_METHOD_GRAD_RECON` field is left empty or set to `NONE` it defaults to `NUM_METHOD_GRAD`. Thin Shear Layer gradient reconstruction is always used for the construction of the Jacobian. From f5a9a4ac16ca4fdea23f3eb56d71f9cedfd4cf4e Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Tue, 31 Aug 2021 10:44:53 +0200 Subject: [PATCH 16/18] Add and update documentation --- _docs_v7/Convective-Schemes.md | 2 +- _docs_v7/Gradients-Limiters.md | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/_docs_v7/Convective-Schemes.md b/_docs_v7/Convective-Schemes.md index 5db882ae..9a1c3a62 100755 --- a/_docs_v7/Convective-Schemes.md +++ b/_docs_v7/Convective-Schemes.md @@ -24,7 +24,7 @@ The options listed here do not apply to the high order DG solver. Convective schemes are used in the FVM discretization of convective fluxes through the faces of the dual-grid control volumes. They are selected via option `CONV_NUM_METHOD_FLOW` and fall under the two broad categories of central and upwind. Central schemes tend to be more robust whereas second order upwind schemes can be more accurate (i.e. less dissipative). -To achieve second order upwind schemes need to be used with MUSCL reconstruction (`MUSCL_FLOW = YES`), see the "gradients and limiters" page for the MUSCL-related options. +To achieve second order upwind schemes need to be used with MUSCL reconstruction (`MUSCL_FLOW = YES`), see the [Gradients and Limiters](/docs_v7/Gradients-Limiters) page for the MUSCL-related options. **Note:** MUSCL options have no effect on central schemes or on coarse multigrid levels in general. diff --git a/_docs_v7/Gradients-Limiters.md b/_docs_v7/Gradients-Limiters.md index 5eb7ebd1..60cbafcc 100644 --- a/_docs_v7/Gradients-Limiters.md +++ b/_docs_v7/Gradients-Limiters.md @@ -24,15 +24,13 @@ Thin Shear Layer gradient reconstruction is always used for the construction of SU2 implements limiter functions to prevent the generation of oscillations when using upwind spatial discretisations. These are specified by the config field `SLOPE_LIMITER_FLOW`. The available options are: - `NONE` - No limiter - `VENKATAKRISHNAN` - Slope limiter using Venkatakrisnan method. -- `VENKATAKRISHNAN_WANG` - Slope limiter using Venkatakrisnan method, eps based on solution. EPS is...? +- `VENKATAKRISHNAN_WANG` - Slope limiter using Venkatakrisnan method, with the small non-vanishing bias to prevent divisions by zero based on the min-to-max range of the solution. - `BARTH_JESPERSEN` - Slope limiter using Barth-Jespersen method. - `VAN_ALBADA_EDGE` - Slope limiter using Van Albada method. - `SHARP_EDGES` - Slope limiter using sharp edges. - `WALL_DISTANCE` - Slope limiter using wall distance. -The default option is set to `VENKATAKRISHNAN`. +With the default option set to `VENKATAKRISHNAN`. - * \n DESCRIPTION: Coefficient for the limiter. DEFAULT value 0.5. Larger values decrease the extent of limiting, values approaching zero cause lower-order approximation to the solution. \ingroup Config */ - addDoubleOption("VENKAT_LIMITER_COEFF", Venkat_LimiterCoeff, 0.05); - +The `VENKAT_LIMITER_COEFF` field is used to compute the small non-vanishing bias to prevent divisions by zero, $\epsilon$. Depending on the limiter to be used this field has different interpretations. For the `VENKATAKRISHNAN` limiter it represents the constant $K$ in $\epsilon^2=\left(K\Delta x\right)^3$. We refer to [Venkatakrishnan](https://doi.org/10.1006/jcph.1995.1084) for further details. For the `VENKATAKRISHNAN_WANG` limiter it represents the constant $\epsilon^{\prime}$ in $\epsilon = \epsilon^{\prime}(q^{\text{\max}}-q^{\text{\min}})$. We refer to [Wang](https://doi.org/10.2514/6.1996-2091) for further details. For both limiters larger values of `VENKAT_LIMITER_COEFF` decrease the extent of limiting, while values approaching zero cause lower-order approximation to the solution. The dafault value is 0.05. The option `LIMITER_ITER` specifies the number of iterations afterFreeze the value of the limiter after a number of iterations. DEFAULT value $999999$. From 62dd0cd947f1979016db6b398c18bc02d2bd6689 Mon Sep 17 00:00:00 2001 From: suargi <64904120+suargi@users.noreply.github.com> Date: Tue, 31 Aug 2021 10:46:16 +0200 Subject: [PATCH 17/18] Update _docs_v7/Gradients-Limiters.md Co-authored-by: Pedro Gomes <38071223+pcarruscag@users.noreply.github.com> --- _docs_v7/Gradients-Limiters.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_docs_v7/Gradients-Limiters.md b/_docs_v7/Gradients-Limiters.md index 60cbafcc..758cf4a1 100644 --- a/_docs_v7/Gradients-Limiters.md +++ b/_docs_v7/Gradients-Limiters.md @@ -27,8 +27,8 @@ SU2 implements limiter functions to prevent the generation of oscillations when - `VENKATAKRISHNAN_WANG` - Slope limiter using Venkatakrisnan method, with the small non-vanishing bias to prevent divisions by zero based on the min-to-max range of the solution. - `BARTH_JESPERSEN` - Slope limiter using Barth-Jespersen method. - `VAN_ALBADA_EDGE` - Slope limiter using Van Albada method. -- `SHARP_EDGES` - Slope limiter using sharp edges. -- `WALL_DISTANCE` - Slope limiter using wall distance. +- `SHARP_EDGES` - Slope limiter based on the distance to the nearest sharp edge. +- `WALL_DISTANCE` - Slope limiter based on wall distance. With the default option set to `VENKATAKRISHNAN`. The `VENKAT_LIMITER_COEFF` field is used to compute the small non-vanishing bias to prevent divisions by zero, $\epsilon$. Depending on the limiter to be used this field has different interpretations. For the `VENKATAKRISHNAN` limiter it represents the constant $K$ in $\epsilon^2=\left(K\Delta x\right)^3$. We refer to [Venkatakrishnan](https://doi.org/10.1006/jcph.1995.1084) for further details. For the `VENKATAKRISHNAN_WANG` limiter it represents the constant $\epsilon^{\prime}$ in $\epsilon = \epsilon^{\prime}(q^{\text{\max}}-q^{\text{\min}})$. We refer to [Wang](https://doi.org/10.2514/6.1996-2091) for further details. For both limiters larger values of `VENKAT_LIMITER_COEFF` decrease the extent of limiting, while values approaching zero cause lower-order approximation to the solution. The dafault value is 0.05. From ad7dab6affc1397e8dbf01726a7629431d2c1434 Mon Sep 17 00:00:00 2001 From: Guillermo Suarez Date: Fri, 24 Sep 2021 14:28:24 +0200 Subject: [PATCH 18/18] Add and update documentation --- _docs_v7/Gradients-Limiters.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/_docs_v7/Gradients-Limiters.md b/_docs_v7/Gradients-Limiters.md index 60cbafcc..c206a440 100644 --- a/_docs_v7/Gradients-Limiters.md +++ b/_docs_v7/Gradients-Limiters.md @@ -3,7 +3,7 @@ title: Gradients and Limiters permalink: /docs_v7/Gradients-Limiters/ --- -This page lists the gradient computation methods and the limiter functions in SU2 as well as their associated options, it is not meant as a detailed theory guide but some application guidance is given nonetheless. The options listed here do not apply to the high order DG solver.? +This page lists the gradient computation methods and the limiter functions in SU2 as well as their associated options, it is not meant as a detailed theory guide but some application guidance is given nonetheless. The options listed here do not apply to the high order DG solver. ---