|
| 1 | +# Basics of Multi-Zone Computations # |
| 2 | + |
| 3 | +SU2 is capable of solving physical problems in distinct zones coupled through interfaces. Applications range from Fluid-Fluid coupling (e.g. using a sliding mesh approach) over Conjugate-Heat-Transfer to Fluid-Structure Interactions problems. The following section gives an overview on the general terminology for multizone computations and how you can make use of these features. For specific problem-related options, please refer to the Tutorials. |
| 4 | + |
| 5 | +## What is a Zone ? ## |
| 6 | +We refer to a Zone as a subdomain in your physical problem. For example consider a heated cylinder immersed into a fluid. In this case, the solid cylinder would be refered to as zone 0 and the fluid domain as zone 1. All zones can be discretized independently and do not need to be matching at the interfaces. See the figure below. |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | +## Multi-zone and Multi-physics ## |
| 11 | + |
| 12 | +A *multi-zone problem* is a problem that consists of multiple zones. If there are additionally different physical problems solved in the individual zones (i.e. the option `PHYSICAL_PROBLEM` is different) then we refer to that as a *multi-physics problem*, otherwise we call it a *single-physics problem*. In that sense, every *multi-physics problem* is also a *multi-zone problem*. However, both cases differ slighty in how a problem is set up using the config files. |
| 13 | + |
| 14 | + |
| 15 | +### <a name="singlephysics"></a> How to set up a multi-zone, single-physics problem ### |
| 16 | + |
| 17 | +To enable the multi-zone mode use the option `MULTIZONE = YES` (default is `NO`). If all zones share all config options and are not connected, this is all you have to do. To define a common interface between zones use the option `MARKER_ZONE_INTERFACE`. This option should be set to a list of markers, in which every two consecutive markers are considered as a connected pair, e.g.: |
| 18 | +``` |
| 19 | +MARKER_ZONE_INTERFACE= ( internal_interface, inner_interface, domain_interface, external_interface ) |
| 20 | +``` |
| 21 | +In this example `internal_interface, inner_interface` and `domain_interface, external_interface` are connected. The type of interface is determined automatically, depending on the type of the physical problem (set with `PHYSICAL_PROBLEM`). |
| 22 | + |
| 23 | +**Note:** Currently the only *single-physics* problems available are Fluid-Fluid cases (that means `PHYSICAL_PROBLEM` must be set to `EULER`, `NAVIER_STOKES` or `RANS`). |
| 24 | + |
| 25 | +Even if you run a *single-physics* problem, there might be cases where you want to use different config options in the individual zones. For example to specify a rotation in one zone or to use a different numerical scheme. This can be accomplished using the *sub-config file* feature of SU2. A *sub-config file* is similar to the usual config file, but only contains options which are different from the main config file in the particular zone. This allows to override or to only set options in certain zones. To use this feature just provide a list of sub-config files using the `CONFIG_LIST` option. The number of items in that list must match the number of zones (of course you can provide an empty file or the same file for multiple zones). The first item in that list sets options in zone 0, the second in zone 1 and so on. |
| 26 | + |
| 27 | +As an example consider a problem with two zones coupled using a Fluid-Fluid interface. In the second zone we want to add a rotation. The two additional entries in the main config file are the following: |
| 28 | + |
| 29 | +``` |
| 30 | +% Enable Multizone mode |
| 31 | +MULTIZONE= YES |
| 32 | +% |
| 33 | +% List of config files to specify zone options |
| 34 | +CONFIG_LIST= (zone_0.cfg, zone_1.cfg) |
| 35 | +% |
| 36 | +``` |
| 37 | +In zone 0 we do not want to override any options from the main config. In particular (in contrast to zone 1) we do not want to add rotation. The file `zone_0.cfg` could be very well just empty, but to make it more clear we explicitly disable any grid movement: |
| 38 | +``` |
| 39 | +% zone_0.cfg |
| 40 | +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% |
| 41 | +% |
| 42 | +% Dynamic mesh simulation (NO, YES) |
| 43 | +GRID_MOVEMENT= NONE |
| 44 | +% |
| 45 | +``` |
| 46 | +`zone_1.cfg` contains the options to set the rotation: |
| 47 | +``` |
| 48 | +% zone_1.cfg |
| 49 | +% ----------------------- DYNAMIC MESH DEFINITION -----------------------------% |
| 50 | +% |
| 51 | +% Type of dynamic mesh (NONE, ROTATING_FRAME) |
| 52 | +GRID_MOVEMENT= RIGID_MOTION |
| 53 | +% |
| 54 | +% Motion mach number (non-dimensional). Used for intitializing a viscous flow |
| 55 | +% with the Reynolds number and for computing force coeffs. with dynamic meshes. |
| 56 | +MACH_MOTION= 0.35 |
| 57 | +% |
| 58 | +
|
| 59 | +MOTION_ORIGIN= 0.3 0.0 0.0 |
| 60 | +
|
| 61 | +% Angular velocity vector (rad/s) about the motion origin. |
| 62 | +ROTATION_RATE = 0.0 0.0 160.0 |
| 63 | +``` |
| 64 | + |
| 65 | +### How to set up a multi-zone, multi-physics problem ### |
| 66 | + |
| 67 | +While for the single-physics problems the usage of sub-config files is optional, setting up a multi-physics problem heavily relies on this feature. A good way to start is to first create a separate config file for each individual zone. If it is possible, also try to run each zone independently (with appropriate boundary conditions) to find proper numerical settings. To couple the zones create a new config file with the option `MATH_PROBLEM` set to `MULTIPHYSICS`. Then specify the list of config files with `CONFIG_LIST`. These two options are mandatory. To set a coupling between the zones the `MARKER_ZONE_INTERFACE` option can be used (same way as for the [single-physics problem](#singlephysics)). As an example consider the following main config file: |
| 68 | + |
| 69 | +``` |
| 70 | +% main_config.cfg |
| 71 | +% ------------------------ MULTI-PHYSICS SETUP --------------------------------% |
| 72 | +% Problem definition |
| 73 | +PHYSICAL_PROBLEM= MULTIPHYSICS |
| 74 | +
|
| 75 | +% The list of config files |
| 76 | +CONFIG_LIST = (configFlow.cfg, configSolid.cfg) |
| 77 | +
|
| 78 | +% The markers which should be coupled |
| 79 | +MARKER_ZONE_INTERFACE= (PIN, PINSD) |
| 80 | +
|
| 81 | +``` |
| 82 | + |
| 83 | +The files `configFlow.cfg` and `configSolid.cfg` contain a **full set of options** to run a flow or a heat equation problem, respectively (apart from a definition of the boundary conditions for the markers `PIN` and `PINSD`, which will be determined automatically). However, every option not present in the sub-config files **will be inherited** from the main config file. If it is also not set there, then the default value will be used. This means options common in all zones, can be written to the main config file. |
| 84 | + |
| 85 | +## Providing mesh information for a multi-zone problem ## |
| 86 | + |
| 87 | +For a multizone problem you have two options to provide the mesh (set with the option `MULTIZONE_MESH`). |
| 88 | + |
| 89 | +- *Multi-zone mesh* (`MULTIZONE_MESH= YES` (default)): In this case the mesh information for all zones is in one file. Note that this option currently only works with the native SU2 mesh format (`MESH_FORMAT= SU2`) and the keywords `NZONE=` and `IZONE=` have to be present in the mesh file. Example: |
| 90 | +``` |
| 91 | +% Number of zones |
| 92 | +NZONE= 2 |
| 93 | +
|
| 94 | +
|
| 95 | +% Information for zone with index 1 follows |
| 96 | +IZONE= 1 |
| 97 | +% |
| 98 | +% Problem dimension |
| 99 | +% |
| 100 | +NDIME= 2 |
| 101 | +% |
| 102 | +% Inner element connectivity |
| 103 | +NELEM= 39092 |
| 104 | + 5 1264 1265 825 0 |
| 105 | +... |
| 106 | +
|
| 107 | +% Information for zone with index 2 follows |
| 108 | +IZONE= 2 |
| 109 | +% |
| 110 | +% Problem dimension |
| 111 | +% |
| 112 | +NDIME= 2 |
| 113 | +% |
| 114 | +% Inner element connectivity |
| 115 | +% |
| 116 | +NELEM= 6365 |
| 117 | + 5 364 365 366 0 |
| 118 | +... |
| 119 | +
|
| 120 | +
|
| 121 | +``` |
| 122 | +- *Single-zone mesh* (`MULTIZONE_MESH= NO`): In this case there is a separate mesh file for each zone and `MESH_FILENAME` must be set in the sub-config files. |
0 commit comments