large sloped ceiling - efficient and robust modelling? #13034
-
Hello, I´m trying to model a large, sloped ceiling in a building (60 x 20 x 20m). The challenge is as follows: For modelling the slope, I cannot use "Repeated Objects: The MULTNamelist Group" as the items which are placed inside the building are using unstructured Geometry &GEOM. Modelling these items without the sloped ceiling works great. The grid cell site is 0.125m which results in 12 Mio Cells with approx. 16 GB of RAM usage. Such a "fine" grid is required to model light gas dispersion. For modelling the sloped ceiling, I used "Geometries Extruded From Simple Planar Polygon". This works great for the case in setup only mode T_END=0.0. Upon changing T_END to calculate time steps, the RAM usage explodes to approx. 128GB (which is my current limit) even with zero unstructured geometry placed inside. I tried many configurations for the extruded geometries, but none is solving this issue. Together with the unstructured geometry, which is located at the floor, the simulation reports an error prior to the 1st timestep at a RAM usage of 104GB: ULMAT_H_MATRIX_LUDCMP PARDISO Num Factor: The following ERROR was detected: -2 Are there any ideas for a more efficient, more robust or better way for modelling of the sloped ceiling? I have attached the fds-code of the test case, in case it is needed. I´m running it with fds_local -p 12 -o 1. Thanks in advance! Stephan __&HEAD CHID='sloped_roof',TITLE='testfile' #12,5cm grid, overall dimensions: length = 60m, width = 20m, height = 20m #sloped roof &GEOM ID='Roof2', SURF_ID='Poly2', #not used: &TAIL /_ |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 4 replies
-
GEOM requires the use of the optional pressure solvers which are memory intensive as they are full-matrix inversions rather than FFT. Target ~150,000 cells per mesh (See 21.1.1 in the User's Guide, GEOM invokes ULMAT). |
Beta Was this translation helpful? Give feedback.
-
Hi Stephan, as Jason commented, the high memory usage is related to GEOM using ULMAT as Poisson solver. This is because we use an unstructured solver for geometries.
ULMAT does a Cholesky factorization per mesh, and the factorization matrix uses a substantial amount of memory (worst case, scales like the square of the number of cells).
In your case you have a million cells per mesh, you want to be using ~50^3 cells per mesh to make memory usage manageable.
…________________________________
From: stephanB79 ***@***.***>
Sent: Friday, June 7, 2024 09:10 AM
To: firemodels/fds ***@***.***>
Cc: Subscribed ***@***.***>
Subject: [firemodels/fds] large sloped ceiling - efficient and robust modelling? (Discussion #13034)
Hello, I´m trying to model a large, sloped ceiling in a building (60 x 20 x 20m). The challenge is as follows:
For modelling the slope, I cannot use "Repeated Objects: The MULTNamelist Group" as the items which are placed inside the building are using unstructured Geometry &GEOM. Modelling these items without the sloped ceiling works great. The grid cell site is 0.125m which results in 12 Mio Cells with approx. 16 GB of RAM usage. Such a "fine" grid is required to model light gas dispersion.
For modelling the sloped ceiling, I used "Geometries Extruded From Simple Planar Polygon". This works great for the case in setup only mode T_END=0.0. Upon changing T_END to calculate time steps, the RAM usage explodes to approx. 128GB (which is my current limit) even with zero unstructured geometry placed inside. I tried many configurations for the extruded geometries, but none is solving this issue.
sloped.ceiling.png (view on web)<https://github.com/firemodels/fds/assets/172036230/1ddb8f07-6bcf-4f80-b414-ff2c7a9a9a2b>
Together with the unstructured geometry, which is located at the floor, the simulation reports an error prior to the 1st timestep at a RAM usage of 104GB:
ULMAT_H_MATRIX_LUDCMP PARDISO Num Factor: The following ERROR was detected: -2
Insufficient Memory for Poisson Matrix Factorization.
ERROR: FDS was improperly set-up - FDS stopped (CHID: hydrogendis)
Are there any ideas for a more efficient, more robust or better way for modelling of the sloped ceiling?
I have attached the fds-code of the test case, in case it is needed. I´m running it with fds_local -p 12 -o 1.
Thanks in advance!
Stephan
__&HEAD CHID='sloped_roof',TITLE='testfile'
&TIME T_END=0.1/
#12<#12>,5cm grid, overall dimensions: length = 60m, width = 20m, height = 20m
&MESH ID='Mesh 1' ,IJK=80, 80, 160, XB=0, 10, 0, 10, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 2' ,IJK=80, 80, 160, XB=0, 10, 10, 20, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 3' ,IJK=80, 80, 160, XB=10, 20, 0, 10, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 4' ,IJK=80, 80, 160, XB=10, 20, 10, 20, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 5' ,IJK=80, 80, 160, XB=20, 30, 0, 10, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 6' ,IJK=80, 80, 160, XB=20, 30, 10, 20, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 7' ,IJK=80, 80, 160, XB=30, 40, 0, 10, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 8' ,IJK=80, 80, 160, XB=30, 40, 10, 20, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 9' ,IJK=80, 80, 160, XB=40, 50, 0, 10, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 10' ,IJK=80, 80, 160, XB=40, 50, 10, 20, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 11' ,IJK=80, 80, 160, XB=50, 60, 0, 10, 0, 20/ 1.024.000 Cells
&MESH ID='Mesh 12' ,IJK=80, 80, 160, XB=50, 60, 10, 20, 0, 20/ 1.024.000 Cells
#sloped roof
&GEOM ID='Roof1', SURF_ID='Poly1',
VERTS =
0, 0, 18,
60, 0, 18,
0, 9, 19.8,
60, 9, 19.8,
POLY = 1, 2, 4, 3,
EXTRUDE=0.2/
&SURF ID='Poly1', COLOR='STEEL BLUE'/
&GEOM ID='Roof2', SURF_ID='Poly2',
VERTS =
0, 11, 19.8,
60, 11, 19.8,
0, 20, 18,_
60,20, 18,
POLY = 1, 2, 4, 3,
EXTRUDE=0.2 /
&SURF ID='Poly2', COLOR='STEEL BLUE'/
#not used:
#CELL_BLOCK_IOR= 3,
&TAIL /_
—
Reply to this email directly, view it on GitHub<#13034>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/ABY23VO3LEQ6OFHGWKK2TRLZGGWLVAVCNFSM6AAAAABI6UTAYGVHI2DSMVQWIX3LMV43ERDJONRXK43TNFXW4OZWG44TANBXG4>.
You are receiving this because you are subscribed to this thread.Message ID: ***@***.***>
|
Beta Was this translation helpful? Give feedback.
-
Hi Stephan, I assume you are still using the single workstation? Also, is the memory usage you report the total memory usage for the run (as what you would gather using the top command in linux)? |
Beta Was this translation helpful? Give feedback.
-
Thank you Stephan, so, when running with 48 meshes, how many meshes per mpi process are you using and how many cpu cores do you have? |
Beta Was this translation helpful? Give feedback.
Hi Stephan, I assume you are still using the single workstation? Also, is the memory usage you report the total memory usage for the run (as what you would gather using the top command in linux)?
Please do me a favor, comment the geom lines and run your case with the line:
&PRES SOLVER='ULMAT'/
And run both sets of meshes, also reporting the memory usage. We are thinking of moving to a different library for unstructured solvers that would provide a lower memory intensive option. But this will take some time as re are tied up for the next few weeks.
In terms of using GEOM, using the extruding polygon constructor should not make much difference memory-wise respect to just loading them from …