diff --git a/_data/vandv.yml b/_data/vandv.yml index de4b668c..cd7f2806 100644 --- a/_data/vandv.yml +++ b/_data/vandv.yml @@ -8,3 +8,4 @@ - MMS_FVM_Navier_Stokes - Flat_Plate - Bump_Channel + - 30p30n diff --git a/_docs_v7/Custom-Output.md b/_docs_v7/Custom-Output.md index 20311cd5..22c93d83 100644 --- a/_docs_v7/Custom-Output.md +++ b/_docs_v7/Custom-Output.md @@ -42,8 +42,12 @@ SU2 can output the solution in several file formats. You can specify what files | Option value | Description | |---|---| | `RESTART` | Native SU2 binary restart format | -| `RESTART_ASCII` | ASCII CSV restart format | +| `RESTART_ASCII` | Native SU2 ASCII CSV restart format | +| `STL_BINARY` | binary mesh in .stl format | +| `STL_ASCII` | ASCII mesh in .stl format | +| `MESH` | Native SU2 mesh in .su2 format | | `CSV` | ASCII CSV restart format (identical to `RESTART_ASCII`) | +| `PARAVIEW_MULTIBLOCK` | Binary Paraview .vtm format | | `PARAVIEW` | Binary Paraview .vtk format | | `PARAVIEW_ASCII` | ASCII Paraview .vtk format | | `TECPLOT` | Binary Tecplot .szplt format | @@ -54,44 +58,103 @@ SU2 can output the solution in several file formats. You can specify what files | `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`)| -The default value of `OUTPUT_FILES` is `(RESTART, PARAVIEW, SURFACE_PARAVIEW)`. The output frequency can be set by using the `OUTPUT_WRT_FREQ` option. If it is a time-dependent problem, the frequency is based on the time iterations, while for steady-state problems it is based on the outer or inner iterations, depending on whether it is a multi-zone or single-zone problem, respectively. +The default value of `OUTPUT_FILES` is `(RESTART, PARAVIEW, SURFACE_PARAVIEW)`. The output frequencies can be set by using the `OUTPUT_WRT_FREQ` option. OUTPUT_WRT_FREQ accepts a list of integer values for each of the file types in `OUTPUT_FILES`. If a single value is given, this value will be used as the writing frequency for all output files. If 2 values are used, the first value is used for the first file type in OUTPUT_FILES, and the second value is used for the other file types in the list. For time-dependent problems, the frequency is based on the time iterations, while for steady-state problems it is based on the outer or inner iterations, depending on whether it is a multi-zone or single-zone problem, respectively. -**Note:** If run SU2 in parallel you should always use binary output files to get the best performance. +**Note:** If you run SU2 in parallel you should always use binary output files to get the best performance. ### Setting Output Fields ### The `VOLUME_OUTPUT` option can be used to set fields for the restart and visualization files. Here you have the option to specify either single fields and/or groups. +| Option value | Default value | Description | Data type | +|---|---|---|---| +| VOLUME_OUTPUT| COORDINATES,SOLUTION,PRIMITIVE| fields or groups that will be saved to file| list of keywords| + + ### Example ### +Groups and fields can be combined, e.g.: + +`VOLUME_OUTPUT= SOLUTION, PRESSURE, DENSITY ` + +will save all field that are in the `SOLUTION` group. Pressure is in the `PRIMITIVE` group for the compressible solver and in the `SOLUTION` group for the incompressible solver. Density on the other hand is in the `SOLUTION` group for the compressible solver and in the `PRIMITIVE` group for the incompressible solver. They can be added individually as in the example above, or by simply adding the entire `PRIMITIVE` group to the list if file size is no issue. Note that keywords that are not valid for the current setup will simply be ignored. + For the compressible Navier-Stokes solver (i.e. `SOLVER=NAVIER_STOKES`), a **non-exhaustive list** of possible fields/groups is the following: -| Field Name | Description | Group Name | +| Field Name | Description | Group Name | Remarks | +|---|---|---| +| `COORD-X` | x coordinate | `COORDINATES` | - | +| `COORD-Y` | y coordinate | `COORDINATES` | - | +| `COORD-Z` | z coordinate | `COORDINATES` | 3D only | +| `DENSITY` | Density | `SOLUTION` | - | +| `MOMENTUM-X` | Momentum x-component | `SOLUTION` | - | +| `MOMENTUM-Y` | Momentum y-component | `SOLUTION` | - | +| `MOMENTUM-Z` | Momentum z-component | `SOLUTION` | 3D only | +| `ENERGY` | Energy | `SOLUTION` | - | +| `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` | 3D only | +| `HEAT_FLUX` | Heat flux | `PRIMITIVE` | - | +| `Y_PLUS` | Y-Plus | `PRIMITIVE` | - | + +Additionally, for every field in the SOLUTION group, the limiters (group name `LIMITER`) and residuals (group name RESIDUAL) can be saved by adding `RES_` or `LIMITER_` in front of the field name. + + +For the incompressible Navier-Stokes solver (i.e. `SOLVER=INC_NAVIER_STOKES`), the solution group is different: + +| Field Name | Description | Group Name | Remarks | +|---|---|---| +| `PRESSURE` | Pressure | `SOLUTION` | - | +| `VELOCITY-X` | Velocity x-component | `SOLUTION` | - | +| `VELOCITY-Y` | Velocity y-component | `SOLUTION` | - | +| `VELOCITY-Z` | Velocity z-component | `SOLUTION` | 3D only | +| `TEMPERATURE` | Static Temperature | `SOLUTION` | `INC_ENERGY_EQUATION= YES` | +| `DENSITY` | Density | `PRIMITIVE` | - | + + +Turbulence quantities: + +| Field Name | Description | Group Name | Remarks | |---|---|---| -| `COORD-X` | x coordinate | `COORDINATES` | -| `COORD-Y` | y coordinate | `COORDINATES` | -| `COORD-Z` | z coordinate | `COORDINATES` | -| `DENSITY` | Density | `SOLUTION` | -| `MOMENTUM-X` | Momentum x-component | `SOLUTION` | -| `MOMENTUM-Y` | Momentum y-component | `SOLUTION` | -| `MOMENTUM-Z` | Momentum z-component | `SOLUTION` | -| `ENERGY` | Energy | `SOLUTION` | -| `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` | -| `HEAT_FLUX` | Heat flux | `PRIMITIVE` | -| `Y_PLUS` | Y-Plus | `PRIMITIVE` | +| `NU_TILDE` | Spalart Allmaras variable | `SOLUTION` | SA models | +| `TKE` | Turbulent kinetic energy k | `SOLUTION` | SST models | +| `DISSIPATION` | Turbulent dissipation rate omega | `SOLUTION` | SST models | +| `EDDY_VISCOSITY` | Turbulent eddy viscosity | `PRIMITIVE` | - | + + +To inspect the mesh quality we additionaly have: + +| Field Name | Description | Group Name | Remarks | +|---|---|---| +| `ORTHOGONALITY` | Orthogonality angle | `MESH_QUALITY` | - | +| `ASPECT_RATIO` | CV Aspect ratio | `MESH_QUALITY` | - | +| `VOLUME_RATIO` | CV sub-volume ratio | `MESH_QUALITY` | - | + +For moving grids: + +| Field Name | Description | Group Name | Remarks | +|---|---|---| +| `GRID_VELOCITY-X` | X-component of grid velocity vector | `GRID_VELOCITY` | - | +| `GRID_VELOCITY-Y` | Y-component of grid velocity vector | `GRID_VELOCITY` | - | +| `GRID_VELOCITY-Z` | Z-component of grid velocity vector | `GRID_VELOCITY` | 3D only | ## Customizing the Screen and History Output ## ### Screen Output ### -You can define the output fields you want to have on screen by using the config option `SCREEN_OUTPUT`. +You can define the output fields you want to have printed on screen by using the config option `SCREEN_OUTPUT`. + +| Option value | Default value | Description | Data type | Remark | +|---|---|---|---|---| +| SCREEN_OUTPUT| INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X,RMS_MOMENTUM-Y, RMS_ENERGY| field or group that will be printed to screen | list of keywords| compressible | +| SCREEN_OUTPUT| INNER_ITER, RMS_PRESSURE, VELOCITY-X,VELOCITY-Y| field or group that will be printed to screen | list of keywords| incompressible | + + Fields available depend on the solver you are using. Fields available for **all solvers** are the following: - `TIME_ITER`: Time iteration index @@ -110,7 +173,7 @@ You can also customize the frequency when the convergence history should be writ ### History Output ### -The history output can be customized in a similar fashion to the screen output by using the `HISTORY_OUTPUT` option. In fact, screen and history outputs share all fields which means that everything that can written to screen can be written also to the history file and vice versa. However, instead of specifying single output fields, for the history output it is **only possible** to specify output groups by using the group name. +The history output can be customized in a similar fashion as the screen output by using the `HISTORY_OUTPUT` option. In fact, screen and history outputs share all fields which means that everything that can written to screen can be written also to the history file and vice versa. If you run a multizone problem, in addition to the history files per zone, a file (default: `history_multizone.dat`) will be created where the convergence history of the outer iteration is stored. Groups for this output can be set by using the `HISTORY_OUTPUT` option in the main config file. @@ -129,18 +192,18 @@ For the compressible Navier-Stokes solver (i.e. `SOLVER=NAVIER_STOKES`), a **non | `TIME_STEP` | Current time step. | `TIME_DOMAIN` | | `WALL_TIME` | Current average wall-clock time for one iteration. | `WALL_TIME` | | `RMS_DENSITY` | Root-mean square residual of the density. | `RMS_RES` | -| `RMS_MOMENTUM-X` | Root-mean square residual of the momentum x-component. | `RMS_RES` | -| `RMS_MOMENTUM-Y` | Root-mean square residual of the momentum y-component. | `RMS_RES` | -| `RMS_MOMENTUM-Z` | Root-mean square residual of the momentum z-component. | `RMS_RES` | -| `RMS_ENERGY` | Root-mean square residual of the energy. | `RMS_RES` | -| `DRAG` | Total Drag coefficient. | `AERO_COEFF` | -| `LIFT` | Total Lift coefficient | `AERO_COEFF` | -| `SIDEFORCE` | Total Sideforce coefficient. | `AERO_COEFF` | -| `MOMENT_X` | Total Moment around the x-axis. | `AERO_COEFF` | -| `MOMENT_Y` | Total Moment around the y-axis. | `AERO_COEFF` | -| `MOMENT_Z` | Total Moment around the z-axis. | `AERO_COEFF` | -| `FORCE_X` | Total Force in x direction. | `AERO_COEFF` | -| `FORCE_Y` | Total Force in y direction. | `AERO_COEFF` | -| `FORCE_Z` | Total Force in z direction.| `AERO_COEFF` | -| `EFFICIENCY` | Total Lift-to-drag ratio. | `AERO_COEFF` | +| `RMS_MOMENTUM-X` | Root-mean square residual of the momentum x-component. | `RMS_RES` | +| `RMS_MOMENTUM-Y` | Root-mean square residual of the momentum y-component. | `RMS_RES` | +| `RMS_MOMENTUM-Z` | Root-mean square residual of the momentum z-component. | `RMS_RES` | +| `RMS_ENERGY` | Root-mean square residual of the energy. | `RMS_RES` | +| `DRAG` | Total Drag coefficient. | `AERO_COEFF` | +| `LIFT` | Total Lift coefficient | `AERO_COEFF` | +| `SIDEFORCE` | Total Sideforce coefficient. | `AERO_COEFF` | +| `MOMENT_X` | Total Moment around the x-axis. | `AERO_COEFF` | +| `MOMENT_Y` | Total Moment around the y-axis. | `AERO_COEFF` | +| `MOMENT_Z` | Total Moment around the z-axis. | `AERO_COEFF` | +| `FORCE_X` | Total Force in x direction. | `AERO_COEFF` | +| `FORCE_Y` | Total Force in y direction. | `AERO_COEFF` | +| `FORCE_Z` | Total Force in z direction.| `AERO_COEFF` | +| `EFFICIENCY` | Total Lift-to-drag ratio. | `AERO_COEFF` | diff --git a/_docs_v7/Markers-and-BC.md b/_docs_v7/Markers-and-BC.md index f36183e9..9f291c37 100755 --- a/_docs_v7/Markers-and-BC.md +++ b/_docs_v7/Markers-and-BC.md @@ -155,11 +155,11 @@ MARKER_INLET = (inlet1, 1.13 , 20, 1.0, 0.0, 0.0, inlet2, 1.15, 10, 0.0, 1.0, 0. | --- | --- | | `INC_EULER`, `INC_NAVIER_STOKES`, `INC_RANS` | 7.0.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]`). +To describe the **Velocity** as well as the **Temperature** 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 vector (the direction vector does not need to be normalized). Note that the temperature has to be provided even when `INC_ENERGY_EQUATION= NO`, but it will be ignored in the calculations. ``` INC_INLET_TYPE= VELOCITY_INLET, VELOCITY_INLET -MARKER_INLET = (inlet1, 300 , 20, 1.0, 0.0, 0.0, inlet2, 200, 10, 0.0, 1.0, 0.0) +MARKER_INLET = (inlet1, 300, 20, 1.0, 0.0, 0.0, inlet2, 200, 10, 0.0, 1.0, 0.0) ``` ### Pressure Inlet ### diff --git a/_docs_v7/Restart-File.md b/_docs_v7/Restart-File.md index 8a7ad63c..b486ca2e 100644 --- a/_docs_v7/Restart-File.md +++ b/_docs_v7/Restart-File.md @@ -6,23 +6,23 @@ permalink: /docs_v7/Restart-File/ ## Saving files for restarts or adjoint runs -The SU2 binary restart format has the extension `.dat`, but it is also possible to write out restart files in a simple ASCII file format with extension `.csv`. Have a look at the [Output section](/docs_v7/Custom-Output/) to learn how to change output file formats. - -The restart files are used to restart the code from a previous solution and also to run the adjoint simulations, which require a flow solution as input. To save a restart file, the user needs to add the option `RESTART` to the keyword `OUTPUT_FILES`: +The restart files are used to restart the code from a previous solution and also to run the adjoint simulations, which require a flow solution as input. To save a restart file, the user needs to add the option `RESTART` to the keyword `OUTPUT_FILES` in the configuration file: `OUTPUT_FILES= RESTART` +The SU2 binary restart format has the extension `.dat`, but it is also possible to write out restart files in a simple ASCII file format with extension `.csv`. Have a look at the [Output section](/docs_v7/Custom-Output/) to learn how to change output file formats. + A restart file with the name given by the keyword `RESTART_FILENAME` is then saved at the end of the simulation, or after every number of iterations given by the keyword `OUTPUT_WRT_FREQ`. For instance, `RESTART_FILENAME= restart_flow` \ `OUTPUT_WRT_FREQ= 100` -will write the the file restart_flow.dat every 100 iterations when then the total number of iterations is larger than 100, or only once at the end of the simulation when the total number of iterations is smaller than 100. Note that the file extension (the suffix) is automatic and can be left out. +will write the file restart_flow.dat every 100 iterations when the total number of iterations is larger than 100, or only once at the end of the simulation when the total number of iterations is smaller than 100. Note that the file extension (the suffix) is automatic and can be left out. If you would like to keep copies of previously saved restart files, this is possible by setting `WRT_RESTART_OVERWRITE= NO` -This option is available only for steady simulations. In unsteady simulations, the number of timesteps is appended to the filename automatically. Additional to the regular restart file, a restart file with the current iteration appended to the filename will be written every `OUTPUT_WRT_FREQ` iterations. +Additional to the regular restart file, a restart file with the current iteration appended to the filename will then be written every `OUTPUT_WRT_FREQ` iterations. Note that this option is available only for steady simulations. In unsteady simulations, the number of timesteps is appended to the filename automatically. ## Starting a simulation from a saved solution @@ -37,8 +37,9 @@ If performing an unsteady restart the `RESTART_ITER` needs to be set to the iter | Option value | Default value | Description | Data type | |---|---|---|---| +| `OUTPUT_FILES` | RESTART,PARAVIEW,SURFACE_PARAVIEW | files types to write | list of keywords | | `RESTART_FILENAME` | restart.dat | filename under which the restart file will be saved | string | -| `OUTPUT_WRT_FREQ` | 250 | the frequency with which the output files will be saved | integer | +| `OUTPUT_WRT_FREQ` | 10,250,42 | the list of frequencies with which the output files will be saved | list of integers | | `WRT_RESTART_OVERWRITE` | YES | overwrite the restart file or (additionally) append the iteration number to the filename | boolean | | `RESTART_SOL` | solution | restart from file or from initial conditions | boolean | | `SOLUTION_FILENAME` | solution.dat | filename that will be used to restart the primal or start the adjoint computation | string | diff --git a/_docs_v7/SU2-Windows.md b/_docs_v7/SU2-Windows.md index 104223b8..451939d5 100644 --- a/_docs_v7/SU2-Windows.md +++ b/_docs_v7/SU2-Windows.md @@ -19,7 +19,7 @@ SU2 supports Windows platforms from Windows 7 and Windows 10 for x86 (64-bit). Y ## Installation ### Download and unpack the archive -[Download](/download/) the .zip for your operating system and unzip it where you want it to be installed. +[Download](/docs_v7/Download/) the .zip for your operating system and unzip it where you want it to be installed. ### Add SU2 environment variables This is done through the Environment Variables control panel. You can access these by typing "environ" in the search/run box of the start menu. Start a New System variable. Assign the Variable Name `SU2_RUN`, and assign the Variable Value to be the path to your SU2 Executables (the folder that contains `SU2_CFD.exe` for example). This variable will allow you to quickly navigate to the SU2 directory using `cd %SU2_RUN%`, and run the executables using `%SU2_RUN%\`. diff --git a/_tutorials/compressible_flow/Unsteady_NACA0012/Unsteady_NACA0012.md b/_tutorials/compressible_flow/Unsteady_NACA0012/Unsteady_NACA0012.md index b97bcecc..f7b6cd73 100644 --- a/_tutorials/compressible_flow/Unsteady_NACA0012/Unsteady_NACA0012.md +++ b/_tutorials/compressible_flow/Unsteady_NACA0012/Unsteady_NACA0012.md @@ -24,7 +24,6 @@ Furthermore, the user is introduced in the so-called windowing approach, a regul - Dual time-stepping for unsteady flows - Windowing - Time-convergence -- Code parallelism (optional) This tutorial also provides an explanation for properly setting up viscous, compressible, unsteady 2D flow conditions in SU2. We also introduce a new type of time-convergence criteria for periodic flows, which monitors the change of the time-average of a specific objective, such as lift or drag, in order to assess convergence. @@ -69,8 +68,8 @@ Figure (3): Close-up view of the airfoil surface and the aerodynamic coefficient ### Configuration File Options ### -Configuration of the physical problem is similar to the ONERA M6 tutorial, that one can access [here](../Turbulent_ONERAM6). However, contrary to the ONERA M6 case, here a unsteady simulation is performed, hence, the Unsteady RANS (URANS) equations in 2D must be solved. -Unsteady simulations in SU2 are computed by employing a dual time-stepping scheme. To this end, one first performs a spatial discretization as explained in the [ONERA M6](../Turbulent_ONERAM6) tutorial. +Configuration of the physical problem is similar to the ONERA M6 tutorial, that one can access [here](../Turbulent_ONERAM6). However, contrary to the ONERA M6 case, here an unsteady simulation is performed, hence, the Unsteady RANS (URANS) equations in 2D must be solved. +Unsteady RANS simulations in SU2 are typically computed via the dual time-stepping approach. To this end, one first performs a spatial discretization as explained in the [ONERA M6](../Turbulent_ONERAM6) tutorial. After that, a time discretization in physical time is performed, that results in a residual equation of the form $$ R(u^n) = 0 \qquad \forall n=1,\dots,N. $$ @@ -97,13 +96,13 @@ TIME_DOMAIN = YES TIME_MARCHING= DUAL_TIME_STEPPING-2ND_ORDER % % Time Step for dual time stepping simulations (s) -TIME_STEP= 5e-3 +TIME_STEP= 5e-4 % % Maximum Number of physical time steps. -TIME_ITER= 2200 +TIME_ITER= 2000 % % Number of internal iterations (dual time method) -INNER_ITER= 50 +INNER_ITER= 10 % % Time discretization for inner iteration. TIME_DISCRE_FLOW= EULER_IMPLICIT @@ -167,10 +166,10 @@ WINDOW_CAUCHY_CRIT = YES CONV_WINDOW_FIELD= (TAVG_DRAG, TAVG_LIFT) % % Number of elements to apply the criteria -CONV_WINDOW_CAUCHY_ELEMS= 100 +CONV_WINDOW_CAUCHY_ELEMS= 10 % % Epsilon to control the series convergence -CONV_WINDOW_CAUCHY_EPS= 1E-2 +CONV_WINDOW_CAUCHY_EPS= 1E-4 % % Number of iterations to wait after the iteration specified in WINDOW_START_ITER. CONV_WINDOW_STARTITER = 10 @@ -197,37 +196,25 @@ RESTART_ITER = 499 ### Running SU2 -Instructions for running this test case are given here for both serial and parallel computations. - -#### In Serial - -The wing mesh should fit on a single-core machine. To run this test case in serial, follow these steps at a terminal command line: - 1. Move to the directory containing the config file (unsteady_NACA0012.cfg) and the mesh file (unsteady_NACA0012_mesh.su2). Make sure that the SU2 tools were compiled, installed, and that their install location was added to your path. - 2. Run the executable by entering in the command line: - +The airfoil mesh should fit on a single-core machine. To run this test case follow these steps at a terminal command line: + 1. Move to the directory containing the config file ([unsteady_naca0012.cfg](https://github.com/su2code/Tutorials/tree/master/compressible_flow/Unsteady_NACA0012/unsteady_naca0012.cfg)) and the mesh file ([unsteady_naca0012_mesh.su2](https://github.com/su2code/Tutorials/tree/master/compressible_flow/Unsteady_NACA0012/unsteady_naca0012_mesh.su2)). Make sure that the SU2 tools were compiled, installed, and that their install location was added to your path. + 2. For serial execution run the command: ``` $ SU2_CFD unsteady_NACA0012.cfg ``` 3. SU2 will print residual updates with each iteration of the flow solver, and the simulation will terminate after reaching the specified convergence criteria. - 4. Files containing the results will be written upon exiting SU2. The flow solution can be visualized in ParaView (.vtk) or Tecplot (.dat for ASCII). - -#### In Parallel - -If SU2 has been built with parallel support, the recommended method for running a parallel simulation is through the use of the parallel_computation.py Python script. This automatically handles the domain decomposition and execution with SU2_CFD, and the merging of the decomposed files using SU2_SOL. Follow these steps to run the ONERA M6 case in parallel: - 1. Move to the directory containing the config file ([unsteady_naca0012.cfg](https://github.com/su2code/Tutorials/tree/master/compressible_flow/Unsteady_NACA0012/unsteady_naca0012.cfg)) and the mesh file ([unsteady_naca0012_mesh.su2](https://github.com/su2code/Tutorials/tree/master/compressible_flow/Unsteady_NACA0012/unsteady_naca0012_mesh.su2)). Make sure that the SU2 tools were compiled with parallel support, installed, and that their install location was added to your path. - 2. Run the python script which will automatically call SU2_CFD and will perform the simulation using `NP` number of processors by entering in the command line: - - ``` - $ parallel_computation.py -n NP -f unsteady_NACA0012.cfg - ``` + 4. Files containing the results will be written on every time step. - 3. SU2 will print residual updates with each iteration of the flow solver, and the simulation will terminate after reaching the specified convergence criteria. - 4. The python script will automatically call the `SU2_SOL` executable for generating visualization files from the native restart file written during runtime. The flow solution can then be visualized in ParaView (.vtk) or Tecplot (.dat for ASCII). +To run the case in parallel (using MPI) simply do: +``` +$ mpirun -n NP SU2_CFD unsteady_NACA0012.cfg +``` +Where NP is the number of processors, note that different MPI distributions may need slightly different syntax (e.g. mpiexec). ### Results -Results for the turbulent flow about the NACA0012 airfoil are shown below. The first picture shows the time dependent +Results for the flow about the NACA0012 airfoil are shown below. The first picture shows the time dependent drag (black) as well as the windowed average from iteration 500 up to the current iteration computed with different windowing-functions. The Hann-Square-windowed time-average set up in this tutorial is displayed by the red line. diff --git a/_tutorials/design_features/Unsteady_Shape_Opt_NACA0012/Unsteady_Shape_Opt_NACA0012.md b/_tutorials/design_features/Unsteady_Shape_Opt_NACA0012/Unsteady_Shape_Opt_NACA0012.md index 05050c32..9750fba9 100644 --- a/_tutorials/design_features/Unsteady_Shape_Opt_NACA0012/Unsteady_Shape_Opt_NACA0012.md +++ b/_tutorials/design_features/Unsteady_Shape_Opt_NACA0012/Unsteady_Shape_Opt_NACA0012.md @@ -27,7 +27,6 @@ Consequently, the following capabilities of SU2 will be showcased in this tutori - Windowed sensitivity calculation - Unsteady adjoints - Unsteady Optimization -- Code parallelism This tutorial uses the windowing techniques explained in [here](../Unsteady_NACA0012), to compute meaningful optimization objectives. Hence it is recommended to read that tutorial first. @@ -131,7 +130,7 @@ TIME_DOMAIN = YES TIME_MARCHING= DUAL_TIME_STEPPING-2ND_ORDER % % Time Step for dual time stepping simulations (s) -TIME_STEP= 5e-3 +TIME_STEP= 5e-4 % % Maximum Number of physical time steps. TIME_ITER= 2200 diff --git a/_vandv/30p30n.md b/_vandv/30p30n.md new file mode 100644 index 00000000..2271c081 --- /dev/null +++ b/_vandv/30p30n.md @@ -0,0 +1,98 @@ +--- +title: Three-Element High-Lift Subsonic Airfoil +permalink: /vandv/30p30n/ +--- + +| Solver | Version | Author | +| --- | --- | --- | +| `RANS` | 7.3.0 | P. Gomes | + +The details of the 30P30N validation case are taken from the [Fourth Aerodynamics Prediction Challenge (APC-IV) website](https://cfdws.chofu.jaxa.jp/apc/apc4/). + +

+Mach number contours at 5.5deg AoA +

+**Figure 1** - Mach number contours at 5.5deg AoA. + +By comparing the SU2 results against other codes on a sequence of grids we can verify the implementation of the SA turbulence model. +Furthermore, we compare the results obtained with two common convective methods (Roe and JST) to study their characteristics and suitability for this type of application (high-lift, subsonic). + +## Problem Setup + +The flow conditions are according to the APC-IV specifications, in summary, Mach 0.17 and Re 1.71e6. +The SU2 configuration file used in this study is [available here](https://github.com/su2code/SU2/blob/develop/TestCases/vandv/rans/30p30n/config.cfg). +SU2 was run with "freestream equal Mach" non-dimensionalization for all configurations. +The SA-noft2 turbulence model was used with first order advection, the convective methods used for the NS equations are described later. + +## Mesh Description + +Structured meshes of increasing density are used to perform a grid convergence study. The meshes are 2D SU2 versions of the publicly available [2.5D APC-IV JAXA grids](https://cfdws.chofu.jaxa.jp/apc/grids/3element_highlift_airfoil/30P30N_modified_slat_configF/cgns/). +The SU2 versions can be downloaded from the [SU2 V&V GitHub repository](https://github.com/su2code/VandV/tree/master/rans/30p30n). +The mesh designations and approximate sizes are: + +- L1 "coarse" (2 x "fine") - 64k quadrilaterals +- L2 "medium" (1.5 x "fine") - 113k quadrilaterals +- L3 "fine" - 261k quadrilaterals +- L4 "extra-fine" ("fine" / 1.5) - 585k quadrilaterals +- L5 "super-fine" ("fine" / 2) - 1M quadrilaterals + +**Note:** The original meshes use US length units (in) whereas the converted SU2 meshes use SI units (m). + +## Results + +First, we obtain results at low angle-of-attack (5.5 degrees) for different solver configurations. +Then we study the behavior of two configurations around the maximum lift point on the "fine" grid level. +Finally we analyze the differences between solver configurations. + +### Grid convergence + +The main configuration studied here is the Roe scheme, with MUSCL reconstruction using Green-Gauss gradients, and limited using the van Albada edge-based limiter. +The only possible tunning parameter of this configuration is the entropy fix coefficient, which was fixed at 1e-5. +We compare this configuration with the JST scheme on three grid levels (with 2nd and 4th order coefficient values of 0.5 and 0.01, respectively). +For completeness, we also test the effect of the limiter on the "fine" level by using the Venkatakrishnan limiter with coefficient 0.05. + +We observe second order convergence of the lift and drag coefficients, and good agreement between Roe + van Albada, JST, [FaSTAR results](https://jaxa.repo.nii.ac.jp/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=2921&item_no=1&page_id=13&block_id=21), and [Cflow results](https://jaxa.repo.nii.ac.jp/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id=2923&item_no=1&page_id=13&block_id=21). +The Roe + Venkatakrishnan configuration predicts lower values, which were observed to be sensitive to the limiter coefficient. For example lowering it to 0.025 increases drag to the level obtained with the other two configurations. + +

+Drag coefficient at 5.5deg AoA +

+**Figure 2** - Drag coefficient at 5.5deg AoA. + +

+Lift coefficient at 5.5deg AoA +

+**Figure 3** - Lift coefficient at 5.5deg AoA. + +### Maximum lift + +Roe + van Albada and JST agree well on the maximum lift, and again match the results of other codes. +However JST predicts the flow to remain attached at significantly higher angle-of-attack than expected. + +

+Lift coefficient on the fine grid level +

+**Figure 4** - Lift coefficient on the fine grid level. + +

+Drag coefficient on the fine grid level +

+**Figure 5** - Drag coefficient on the fine grid level. + +### Discussion + +The pressure coefficient distributions at 5.5 degrees AoA computed by Roe + van Albada and JST are nearly identical. +However, JST predicts significantly higher skin friction coefficient (Cf) on the suction side which explains the higher angle-of-attack required for leading-edge separation to occur. +Away from this critical point the lift and drag characteristics are dominated by the pressure distribution and thus the two schemes agree well. +The only significant differences in Cf between the van Albada and Venkatakrishnan limiters are at the trailing-edges. + +

+Pressure coefficient distribution at 5.5deg AoA on fine grid level +

+**Figure 6** - Pressure coefficient distribution at 5.5deg AoA on fine grid level. + +

+Skin friction coefficient distribution at 5.5deg AoA on fine grid level +

+**Figure 7** - Skin friction coefficient distribution at 5.5deg AoA on fine grid level. + diff --git a/_vandv/index.md b/_vandv/index.md index 980f84ff..a4c82d71 100644 --- a/_vandv/index.md +++ b/_vandv/index.md @@ -25,3 +25,5 @@ Formal order of accuracy of the finite volume solver in SU2 for the laminar Navi Code-to-code comparisons of drag and skin friction on a turbulent flat plate is presented using data from the NASA Turbulence Modeling Resource. * [2D Bump-in-Channel RANS Verification Case](/vandv/Bump_Channel/) Code-to-code comparisons for a bump in a channel, which results in pressure gradients, is presented using data from the NASA Turbulence Modeling Resource. +* [Three-Element High-Lift Subsonic Airfoil](/vandv/30p30n/) +Results for the 30p30n airfoil, mesh independence study at low angle-of-attack, and determination of maximum lift, both comparing different numerical schemes. diff --git a/vandv_files/30p30n/cf.png b/vandv_files/30p30n/cf.png new file mode 100644 index 00000000..0427f094 Binary files /dev/null and b/vandv_files/30p30n/cf.png differ diff --git a/vandv_files/30p30n/cp.png b/vandv_files/30p30n/cp.png new file mode 100644 index 00000000..52e4facc Binary files /dev/null and b/vandv_files/30p30n/cp.png differ diff --git a/vandv_files/30p30n/drag.png b/vandv_files/30p30n/drag.png new file mode 100644 index 00000000..85b94e7d Binary files /dev/null and b/vandv_files/30p30n/drag.png differ diff --git a/vandv_files/30p30n/lift.png b/vandv_files/30p30n/lift.png new file mode 100644 index 00000000..ce97ac0f Binary files /dev/null and b/vandv_files/30p30n/lift.png differ diff --git a/vandv_files/30p30n/mach.png b/vandv_files/30p30n/mach.png new file mode 100644 index 00000000..2c6f4d02 Binary files /dev/null and b/vandv_files/30p30n/mach.png differ diff --git a/vandv_files/30p30n/max_drag.png b/vandv_files/30p30n/max_drag.png new file mode 100644 index 00000000..71ec48a7 Binary files /dev/null and b/vandv_files/30p30n/max_drag.png differ diff --git a/vandv_files/30p30n/max_lift.png b/vandv_files/30p30n/max_lift.png new file mode 100644 index 00000000..3efcd9c4 Binary files /dev/null and b/vandv_files/30p30n/max_lift.png differ