The domain-partitioning technique is useful for computer simulation of flow phenomena characterised by a predominant direction of flow, as for example when several chemical-plant vessels are connected in series, as sketched below, the flow being always from left to right.
--------------- --------------- -------------
| | | | | |
| | | | | |
- vessel 1 ---------- vessel 2 --------- vessel 3 ---------
- ---------- --------- ---------
| | | | | |
| | | | | |
--------------- --------------- -------------
upstream >>>>>>> direction of flow >>>>>>>> downstream
It is of course possible, with sufficient computer memory, to simulate
all three vessels, and the pipes and spaces between them, at the same
time; but it is seldom either necessary or cost-effective to do so;
for there is usually no significant influence of happenings in
downstream vessels on those in upstream ones.
A similar situation arises when it is necessary to simulate the flow over an extensive tract of terrain, for example a complete city or a wide forest. Partitioning is then possible because usually the direction of wind varies little from place to place.
Thus, if the wind blows predominantly from the north west over the area of land indicated below, the sub-areas marked 1, 2, 3, etc below can be simulated separately but in sequence, if the output from an earlier calculation is stored for use as input to a later one.
\
\
\ wind from
_| north-
west North
|----------|---------|---------|---------|--------|--------|---
| | | | | | |
| 1 | 2 | 3 | 4 | 5 | 6 |
West| | | | | | |
| | | | | | |
|----------|---------|---------|---------|--------|--------|---
| | | | | | |
| 7 | 8 | 9 | 10 | 11 | 12 |
| | | | | | |
| | | | | | |
|----------|---------|---------|---------|--------|--------|---
| | | | | | |
| 13 | 14 | 15 | 16 | 17 | 18 |
| | | | | | |
| | | | | | |
|----------|---------|---------|---------|--------|--------|---
When it is desired to take into account the shapes of individual buildings in the city, or of fire-breaks traversing the forest, the computer-memory requirements could not be met by commonly-available machines if the whole region were to be simulated at once.
The domain-partitioning technique however does permit the simulation to be performed by computers of modest size.
It does so by splitting the whole terrain into parts which are sufficiently small to be handled by the available computer; and it then causes the parts to be simulated one after the other, the upwind ones being considered first.
At the end of each calculation, data describing the flow conditions on the downstream boundaries are placed into files which serve as 'transfer objects'; for the data can then be imported as upstream-boundary data for the later-to-be-simulated next-downstream part.
The first causes the PHOENICS solver module, EARTH, to write a transfer-object file at the end of its run; and the second causes EARTH to read such a file at the start of its run.
(EXPORT in NAME_OF_TRANSFER_OBJECT at PATCH_NAME)
wherein
NAME_OF_TRANSFER_OBJECT
and
PATCH_NAME are
respectively:
Names of transfer objects should not exceed 14 characters.
The reading of the information from a transfer-object file is effected by placing in the Q1 file an In-Form (import statement such as
(IMPORT from NAME_OF_TRANSFER_OBJECT at PATCH_NAME)
If it is not, it is better to locate the transfer object by associating it with a VR object of PLATE type, which is located by way of the usual POSITION and SIZE lines.
The (export and (import statements then take the form:
(EXPORT in NAME_OF_TRANSFER_OBJECT at OBJECT_NAME)and
(IMPORT in NAME_OF_TRANSFER_OBJECT at OBJECT_NAME)Input-library case 864 provides an example.
Transfer objects have 'surface' type and are placed always on the boundary of the computational domain. Part of the file created by library case 858 is reproduced below.
! (c) CHAM 2005 Exported from PHOENICS Version 3.6.0; May 2005
! File name TROB1
! Transfer object
!
! Q1 commands
!
> OBJ, POSITION, 2.000000E-01, 0.000000E+00, 0.000000E+00
> OBJ, SIZE , 0.000000E+00, 2.000000E-01, 1.000000E+00
> OBJ, GEOMETRY, default
> OBJ, ROTATION24, 1
> OBJ, TYPE, PLATE
! number of vertices
8
! x, y, z of vertices
0.0000E+00 0.0000E+00 0.0000E+00
0.0000E+00 1.0000E+00 0.0000E+00
1.0000E+00 1.0000E+00 0.0000E+00
1.0000E+00 0.0000E+00 0.0000E+00
0.0000E+00 0.0000E+00 1.0000E+00
0.0000E+00 1.0000E+00 1.0000E+00
1.0000E+00 1.0000E+00 1.0000E+00
1.0000E+00 0.0000E+00 1.0000E+00
!
! number of facets
6
! facet connectedness and colour
1 2 3 4 80
5 8 7 6 81
1 4 8 5 80
2 6 7 3 81
4 3 7 8 82
1 5 6 2 82
!
!-------------------data derived by In-Form
!
! number of cells in X, Y, Z direction
! 1 20 1
! X-coordinates of the cell faces
! 0.000000E+00
! 1.000000E-02
! Y-coordinates of the cell faces
! 0.000000E+00
! 1.000000E-02
. . .
! 2.000000E-01
! Z-coordinates of the cell faces
! 0.000000E+00
! 1.000000E+00
! Field Values of P1
! 7.947696E-04
! 1.147313E-03
. . .
! 6.130185E-04
! Field Values of U1
! 6.805007E-02
! 9.728204E-02
. . .
! 9.946590E-02
! Field Values of V1
! 1.206840E-03
! 1.995379E-03
. . .
! 0.000000E+00
! Field Values of H1
! 5.355338E-01
! 9.021159E-01
. . .
! 1.000000E+00
! Field Values of C1
! 8.131076E-01
! 2.500963E-01
. . .
! 8.074208E-12
It is the first part of the transfer-object file which corresponds
to that of the .POB file. Here such parameters are described
as a position, size of transfer object, number and coordinates
of vertices, number of facets, facet connectedness and colour.
In the second part, after 'data derived by In-Form', the parameters characteristic only for transfer objects are listed. Each new line begins with '!' symbol which is interpreted by Satellite as a beginning of the comment.
The numbers of cells in X, Y, Z direction are specified as integers after the appropriate comment.
Further the coordinates of cell faces are listed as reals consistently in X, Y, Z direction. The number of coordinates in each direction is equal to the number of cells plus 1.
Further the fields of all dependent variables follow as reals after the line 'Field Values of ...' where ... stands for the appropriate variable name.
The field of the variable P1 contains the mass-flux values. The fields of other variables contain values of these variables near to the transfer-object surface. Number of values in each field equal the number of cells in the transfer object.
Input-file library case 855 concerns heat conduction in the z direction. Low and high walls have uniform temperatures.
The grid, which extends also in the y-direction, is divided into three parts.
! !
/----------------+-----------------+---------------/
low / ! ! / high
wall / 1st part ! 2nd part ! 3rd part / wall
/ ! ! /
/ ---------------+-----------------+---------------/
^ y ! !
|-------> z-direction
The calculation for each part is executed in a separate run; and finally
a fourth run is carried out in which the domain is not
sub-divided, this being arranged by the RUN(1,4) appearing in the topmost
line of the Q1 file.Transfer object TROB1 for the high boundary is created at the end of the first run by means an In-Form (export statement.
The second run applies this information to its low boundary by reason of an In-Form (import' statements and then creates its own export object , TROB2 at its high boundary.
The third run reads this information because of this statement.
Finally, so as to establish the satisfactory working of the technique, a fourth run simulates the behaviour of all three domains in a single calculation. The comparison is shown here, which demonstrates the complete concurrence.
The area is divided into three parts as in the previous example.
! !
/////////////////!// North Wall ///!///////////////////
-----------------+-----------------+-------------------
--> ! ! ->
--> 1st run ! 2nd run ! 3rd run -->
-->C ! ! ->
-----------------+-----------------+-------------------
/////////////////!// South Wall ///!///////////////////
^ y ! !
|-------> z-direction
TROB1 transfer object at high
boundary is formed at the end of the first run and is read
in the beginning of the second run. By a similar way the data
are transmitted from the second run to third.
The fourth run simulates flow in the whole channel without the domain-partitioning technique for comparison with previous runs.
Comparison of results of calculations of temperature and the concentration with use of a domain-partitioning technique and without it are submitted on next pictures - (temperature) and (concentration) where the index a) corresponds the standard calculation and b) to the domain-partitioning technique (here and further below).
The significances of variable h1 at a channel output are distinguished on 6 percents. The values of variable c1 on a output are equal.
The extractions from the result file indicated below contain values of nett sources for each run.
Sources and sinks of first run:
Nett source of V1 at patch named: OUT = 2.362974E-12 pos. sum= 2.362974E-12 neg. sum= 0.000000E+00 nett sum= 2.362974E-12 Nett source of W1 at patch named: IN = 1.000000E-04 Nett source of W1 at patch named: OUT =-1.171417E-04 Nett source of W1 at patch named: SW =-1.194491E-04 Nett source of W1 at patch named: NW =-1.194491E-04 pos. sum= 1.000000E-04 neg. sum=-3.560399E-04 nett sum=-2.560399E-04 Nett source of R1 at patch named: IN = 9.999999E-04 Nett source of R1 at patch named: OUT =-9.999999E-04 pos. sum= 9.999999E-04 neg. sum=-9.999999E-04 nett sum= 0.000000E+00 Nett source of H1 at patch named: OUT =-6.785596E-04 Nett source of H1 at patch named: SW = 3.393030E-04 Nett source of H1 at patch named: NW = 3.393032E-04 pos. sum= 6.786062E-04 neg. sum=-6.785596E-04 nett sum= 4.656613E-08 Nett source of C1 at patch named: OUT =-1.405406E-04 pos. sum= 0.000000E+00 neg. sum=-1.405406E-04 nett sum=-1.405406E-04
Sources and sinks of second run:
Nett source of V1 at patch named: OUT =-3.205130E-13 Nett source of V1 at patch named: PAT1 =-2.432330E-12 pos. sum= 0.000000E+00 neg. sum=-2.752843E-12 nett sum=-2.752843E-12 Nett source of W1 at patch named: OUT =-1.171422E-04 Nett source of W1 at patch named: PAT1 = 1.171417E-04 Nett source of W1 at patch named: SW =-1.117958E-04 Nett source of W1 at patch named: NW =-1.117958E-04 pos. sum= 1.171417E-04 neg. sum=-3.407337E-04 nett sum=-2.235920E-04 Nett source of R1 at patch named: OUT =-9.999999E-04 Nett source of R1 at patch named: PAT1 = 9.999999E-04 pos. sum= 9.999999E-04 neg. sum=-9.999999E-04 nett sum= 0.000000E+00 Nett source of H1 at patch named: OUT =-8.794902E-04 Nett source of H1 at patch named: PAT1 = 6.784530E-04 Nett source of H1 at patch named: SW = 1.005561E-04 Nett source of H1 at patch named: NW = 1.005561E-04 pos. sum= 8.795653E-04 neg. sum=-8.794902E-04 nett sum= 7.508788E-08 Nett source of C1 at patch named: OUT =-1.405405E-04 Nett source of C1 at patch named: PAT1 = 1.405407E-04 pos. sum= 1.405407E-04 neg. sum=-1.405405E-04 nett sum= 1.455192E-10
Sources and sinks of third run:
Nett source of V1 at patch named: OUT =-9.111080E-13 Nett source of V1 at patch named: PAT1 = 3.708913E-13 pos. sum= 3.708913E-13 neg. sum=-9.111080E-13 nett sum=-5.402167E-13 Nett source of W1 at patch named: OUT =-1.171422E-04 Nett source of W1 at patch named: PAT1 = 1.171422E-04 Nett source of W1 at patch named: SW =-1.117955E-04 Nett source of W1 at patch named: NW =-1.117956E-04 pos. sum= 1.171422E-04 neg. sum=-3.407333E-04 nett sum=-2.235911E-04 Nett source of R1 at patch named: OUT =-9.999998E-04 Nett source of R1 at patch named: PAT1 = 9.999999E-04 pos. sum= 9.999999E-04 neg. sum=-9.999998E-04 nett sum= 1.164153E-10 Nett source of H1 at patch named: OUT =-9.547846E-04 Nett source of H1 at patch named: PAT1 = 8.794502E-04 Nett source of H1 at patch named: SW = 3.771034E-05 Nett source of H1 at patch named: NW = 3.771035E-05 pos. sum= 9.548709E-04 neg. sum=-9.547846E-04 nett sum= 8.632196E-08 Nett source of C1 at patch named: OUT =-1.405351E-04 Nett source of C1 at patch named: PAT1 = 1.405406E-04 pos. sum= 1.405406E-04 neg. sum=-1.405351E-04 nett sum= 5.529728E-09
Sources and sinks of fourth run:
Nett source of V1 at patch named: OUT =-4.011315E-12 pos. sum= 0.000000E+00 neg. sum=-4.011315E-12 nett sum=-4.011315E-12 Nett source of W1 at patch named: IN = 1.000000E-04 Nett source of W1 at patch named: OUT =-1.171437E-04 Nett source of W1 at patch named: SW =-3.547435E-04 Nett source of W1 at patch named: NW =-3.547435E-04 pos. sum= 1.000000E-04 neg. sum=-8.266307E-04 nett sum=-7.266307E-04 Nett source of R1 at patch named: IN = 9.999999E-04 Nett source of R1 at patch named: OUT =-9.999999E-04 pos. sum= 9.999999E-04 neg. sum=-9.999999E-04 nett sum= 0.000000E+00 Nett source of H1 at patch named: OUT =-9.500020E-04 Nett source of H1 at patch named: SW = 4.781655E-04 Nett source of H1 at patch named: NW = 4.781662E-04 pos. sum= 9.563317E-04 neg. sum=-9.500020E-04 nett sum= 6.329676E-06 Nett source of C1 at patch named: OUT =-1.405382E-04 pos. sum= 0.000000E+00 neg. sum=-1.405382E-04 nett sum=-1.405382E-04
On the west side there is an inlet and on the north and east sides are outlets. The south side is a wall with constant temperature. In the south-west corner of the domain area there is a point source of pollutant..
The area is divided to two parts.
Outlet
---------------------
I ! ! ! O
U1 n ! ! ! u
--> l ! 1st run ! 2nd run ! t
e ! ! ! l
Y ! t !C ! ! e
! --------------------- t
! Wall
!----- X
The data are transmitted from the first run to second
by means of TROB1 transfer object
file.
The third run simulate flow in whole area without the domain-partitioning technique for comparison with previous runs.
Comparison of results of calculations with a domain-partitioning technique and without it are submitted on next pictures - (pressure), (velocity vectors), (temperature) and (concentration).
The significances of variables h1 and c1 at a output near wall calculated by second and third runs is distinguished on 3 and 2 percents accordingly.
The extractions from the result file indicated below contain values of nett sources for each run.
Sources and sinks of first run:
Nett source of U1 at patch named: IN = 2.378000E-03 Nett source of U1 at patch named: OUT =-2.264942E-03 Nett source of U1 at patch named: NOUT =-9.344649E-05 Nett source of U1 at patch named: SW =-3.788430E-05 pos. sum= 2.378000E-03 neg. sum=-2.396273E-03 nett sum=-1.827232E-05 Nett source of V1 at patch named: OUT =-4.884571E-05 Nett source of V1 at patch named: NOUT =-2.866054E-06 pos. sum= 0.000000E+00 neg. sum=-5.171177E-05 nett sum=-5.171177E-05 Nett source of R1 at patch named: IN = 2.378000E-02 Nett source of R1 at patch named: OUT =-2.284209E-02 Nett source of R1 at patch named: NOUT =-9.379070E-04 pos. sum= 2.378000E-02 neg. sum=-2.378000E-02 nett sum= 1.862645E-09 Nett source of H1 at patch named: IN = 2.378000E-02 Nett source of H1 at patch named: OUT =-2.233863E-02 Nett source of H1 at patch named: NOUT =-9.379071E-04 Nett source of H1 at patch named: SW =-5.038937E-04 pos. sum= 2.378000E-02 neg. sum=-2.378043E-02 nett sum=-4.265457E-07 Nett source of C1 at patch named: OUT =-1.000001E-03 Nett source of C1 at patch named: NOUT =-4.949639E-15 Nett source of C1 at patch named: SOURCE = 1.000000E-03 pos. sum= 1.000000E-03 neg. sum=-1.000001E-03 nett sum=-1.047738E-09
Sources and sinks of second run:
Nett source of U1 at patch named: PAT2 = 2.264945E-03 Nett source of U1 at patch named: OUT =-2.140202E-03 Nett source of U1 at patch named: NOUT =-8.796383E-05 Nett source of U1 at patch named: SW =-2.261113E-05 pos. sum= 2.264945E-03 neg. sum=-2.250777E-03 nett sum= 1.416798E-05 Nett source of V1 at patch named: PAT2 = 4.884538E-05 Nett source of V1 at patch named: OUT =-6.592841E-05 Nett source of V1 at patch named: NOUT =-4.381087E-06 pos. sum= 4.884538E-05 neg. sum=-7.030949E-05 nett sum=-2.146411E-05 Nett source of R1 at patch named: PAT2 = 2.284210E-02 Nett source of R1 at patch named: OUT =-2.200961E-02 Nett source of R1 at patch named: NOUT =-8.324963E-04 pos. sum= 2.284210E-02 neg. sum=-2.284210E-02 nett sum=-1.862645E-09 Nett source of H1 at patch named: PAT2 = 2.233864E-02 Nett source of H1 at patch named: OUT =-2.125856E-02 Nett source of H1 at patch named: NOUT =-8.324966E-04 Nett source of H1 at patch named: SW =-2.484911E-04 pos. sum= 2.233864E-02 neg. sum=-2.233955E-02 nett sum=-9.089708E-07 Nett source of C1 at patch named: PAT2 = 9.999997E-04 Nett source of C1 at patch named: OUT =-9.999811E-04 pos. sum= 9.999997E-04 neg. sum=-9.999811E-04 nett sum= 1.862645E-08
Sources and sinks of third run:
Nett source of U1 at patch named: IN = 2.378000E-03 Nett source of U1 at patch named: OUT =-2.175100E-03 Nett source of U1 at patch named: NOUT =-1.607635E-04 Nett source of U1 at patch named: SW =-6.079296E-05 pos. sum= 2.378000E-03 neg. sum=-2.396656E-03 nett sum=-1.865602E-05 Nett source of V1 at patch named: OUT =-6.660743E-05 Nett source of V1 at patch named: NOUT =-5.713164E-06 pos. sum= 0.000000E+00 neg. sum=-7.232060E-05 nett sum=-7.232060E-05 Nett source of R1 at patch named: IN = 2.378000E-02 Nett source of R1 at patch named: OUT =-2.216903E-02 Nett source of R1 at patch named: NOUT =-1.610970E-03 pos. sum= 2.378000E-02 neg. sum=-2.378000E-02 nett sum= 1.862645E-09 Nett source of H1 at patch named: IN = 2.378000E-02 Nett source of H1 at patch named: OUT =-2.142373E-02 Nett source of H1 at patch named: NOUT =-1.610971E-03 Nett source of H1 at patch named: SW =-7.454244E-04 pos. sum= 2.378000E-02 neg. sum=-2.378013E-02 nett sum=-1.285225E-07 Nett source of C1 at patch named: OUT =-1.000006E-03 Nett source of C1 at patch named: NOUT =-1.628934E-14 Nett source of C1 at patch named: SOURCE = 1.000000E-03 pos. sum= 1.000000E-03 neg. sum=-1.000006E-03 nett sum=-5.820766E-09
This example, which is case 858 of the core Input-File Library, explores distribution of pollutant over a large territory. Use of transfer objects permits to calculate uni-directional flow on small parts by one for other. The researched area according to the domain-partitioning technique in this case is divided on four parts as is submitted below.
---------------------
! ! !
! ! !
! 3rd run ! 4th run !
! ! !
W1 ! ! !
--> ----------+----------
! ! !
! ! !
! 1st run ! 2nd run !
! ! !
X ! ! ! !
! ---------------------
! ^
!----- Z /!\
!
!U1
HIGHTRO1 and EASTTRO1
transfer objects on high and east boundaries are formed
at the end of the first run by means two '(export' In-Form
statements. They store values of outlet mass flux and
concentration on this boundaries for transfer them
in second and third run.
The second run reads the information at low boundary from HIGHTRO1 object by means '(import' In-Form statements and at the end of calculations dumps it at east boundary in EASTTRO2 object.
The third run reads EASTTRO1 object and forms HIGHTRO3 object.
The fourth run reads the information from HIGHTRO3 and EASTTRO2 import transfer objects at low and west boundaries.
In general case the quantity of transfer objects can be any. Each run simulates distribution of pollution in an atmospheric boundary layer.
The wind profile at inlet boundaries is set by means of In-Form statements as a logarithmic velocity profile.
The ground relief (HIG variable) is calculated by In-Form formula.
MARK variable defined by In-Form is used for the image of ground relief in Photon.
The ground roughness are simulated by change of air density on height of a atmospheric layer. Density of air is calculated by barometric formula by means In-Form.
The fifth run simulates the flow in whole region with the partitioning. Its results are used for comparison with the concentration fields calculated by previous runs.
Use of the domain-partitioning technique in unsteady calculations assumes the creation of transfer objects on each time step.
This case explores unsteady distribution of pollution at a large region of the ground.
The pollution source is set in the west-low corner and acts only at the first time step. Further the pollution cloud will be distributed by wind.
Use of the domain-partitioning technique similarly to the previous example. Except that the transfer objects are created and read at the each time step.
The position of a spot after 500 sec., 1000 sec., 1500 sec., 2000 sec., 2500 sec., 3000 sec., 3500 sec., 4000 sec., 4500 sec. and 5000 sec..
This case simulates influences of value and direction of wind velocity on the position of pollution spot. The pollution source is set in the west-low corner and acts only at the first time step. Further the pollution cloud will be distributed by wind on a diagonal. But after NSTP time step the wind velocity increases and changes direction strictly at the left on the right.
The position of a spot after 500 sec., 1000 sec., 1500 sec., 2000 sec., 2500 sec., 3000 sec., 3500 sec., 4000 sec., 4500 sec. and 5000 sec..
Here some examples will be indicated which expand the area of application of domain-partitioning technique.
This research includes three q1 files created by VR Editor. The first simulates a fire in a living room. The formed smoke leaves on a street through a windows described as TROBJ1, TROBJ2 and TROBJ3 VR objects. The smoke concentration, is dumped in export transfer objects connected with each window.
The second q1 file simulates the distribution of smoke outside of a building. The smoke concentration coming in a street from windows of a fired room undertakes from import transfer objects.
The smoke rounds the building and enters in opened windows (described as EXTROB1, EXTROB2 and EXTROB3 VR objects) of a next apartment. The smoke concentration at this VR objects is dumped in export transfer objects connected with each window.
The third q1 file simulates the distribution of smoke inside a next room. The smoke concentration coming in room through open windows is read from import transfer objects.
The second q1 file simulates a heat exchange in a room. The temperature values at all boundaries for each computer block are read from transfer objects.
nip