-
Notifications
You must be signed in to change notification settings - Fork 0
The idea behind BlenderFDS
Let's start by comparing the geometric-data structures used by Blender and FDS for describing the 3D space, its physical objects, and their properties.
Each Blender file (.blend
) contains a database of geometric features. This database describes all the Scene
, Object
, Mesh
, Material
data-blocks, that are shown in Blender user interface.
A Blender Scene
represents the 3D space where the collection of Object
data-blocks is placed.
A Blender Object
is a 3D entity: its shape is built from the related Mesh
geometry, its aspect (eg. colour, transparency, ...) depends on the referenced Material
appearance. Its properties are manipulated in Blender Object Mode
.
A .blend
file can provide multiple Scene
data-blocks, i.e. different 3D spaces populated by Object
data-blocks.
The user can easily inspect the file contents and the relationship between data-blocks by using the Outliner editor
in Blender interface, which displays all of the data-blocks in the .blend
file.
The Outliner allows the user to do simple operations on data-blocks, such as selecting, renaming, deleting, linking and parenting. Data-blocks can link to each other, for reuse and instancing. For example, two Object
data-blocks can share the same Mesh
shape or Material
appearance, and the same Object
can exist in different Scene
data-blocks.
ℹ️ For example, if you have a car
Mesh
, you can use that carMesh
for various different carsObjects
in a parking lotScene
. If you modify the original carMesh
, then all the linked cars of the parking lot inherit that modification.
A Blender Mesh
is a collection of faces, edges, and vertices which can be modeled and manipulated in Blender Edit Mode
.
A vertex
is a 3-dimensional coordinate, representing a point in space. An edge
is a straight, wire-like line representing the boundary of 2 adjacent vertices. A face
is a planar connection of edges representing a boundary, field, or solid surface. Faces are always flat and edges are always straight. An edge is formed by the intersection of 2 faces. Vertices are formed by the intersection of 3 or more faces (eg. a cube is represented by 6 faces, 12 edges and 8 vertices).
FDS input is a single text file. Input data is specified by namelist groups:
Namelist groups are used to describe every aspect of the fire simulation: simulation name, duration, computational domain, geometry, boundary conditions, materials, output quantities, control logic...
Many namelist groups extend their action in the computational space to volumes, faces, segments, points, or planes. We call those groups geometric namelists.
The simulated 3D space geometric description is entered line by line by geometric namelist groups having XB
, XYZ
, PBX
, PBY
, PBZ
parameters.
In FDS 3D space, a face is represented by a right plane face with edges parallel to the axis. Its position and dimensions are described by the coordinates of two opposite vertices, that must lie on the same plane.
ℹ️ For example:
&VENT XB=0.5,1.1,2.0,3.1,-2.0,-2.0, SURF_ID='fire' /
uses the parameter
XB
to define a flat face perpendicular to the z axis imposing a particular boundary condition over a solid. Two of the six coordinates are the same, denoting a flat face as opposed to a solid.
In FDS 3D space, a segment is bounded by two end points. If point A=(xA, yA, zA) and point B=(xB, yB, zB) are the end points, its coordinates are entered following the same convention valid for volumes.
ℹ️ For example,
&DEVC XB=0.5,1.5,2.0,3.5,-2.0,0., QUANTITY='PATH OBSCURATION', ID='beam1', SETPOINT=0.33 /
is a beam smoke detector between (0.5,2.0,-2.0) and (1.5,3.5,0.) end points.
In FDS 3D space, a point is simply identified by its 3 coordinates.
ℹ️ For example, the line:
&DEVC XYZ=2.,3.,4., QUANTITY='THERMOCOUPLE', ID='termo1' /
uses the parameter
XYZ
to insert a thermocouple at the point of coordinates (2.,3.,4.).
In FDS 3D space, a plane is represented by a right plane perpendicular to one of the reference axis.
ℹ️ For example, these lines:
&SLCF PBX=0.5, QUANTITY='TEMPERATURE' /
is a plane perpendicular to the x axis and intersecting its point (.5,0.,0.).
&SLCF PBY=1.5, QUANTITY='TEMPERATURE' /
is a plane perpendicular to the y axis and intersecting its point (0.,1.5,0.).
&SLCF PBZ=-.5, QUANTITY='TEMPERATURE' /
is a plane perpendicular to the z axis and intersecting its point (0.,0.,-.5).
All these namelists use the parameters
PBX, PBY, PBZ
to specify the coordinate in the direction of the perpendicular axis.
The following table explains how BlenderFDS translates Blender 3d space and entities into corresponding FDS entities.
Blender | FDS |
---|---|
Each file | One or more FDS cases (.fds files) |
Each Scene
|
One FDS case, specified by general namelists as HEAD , TIME , MISC , DUMP , REAC , ... |
Each Object
|
Depending on the complexity of the Object , one or more geometric namelist groups (eg. OBST , DEVC , VENT , HOLE , SLCF , ...) |
Each Material
|
One SURF namelist group, specifing a boundary condition of the fluid domain |
Each Blender Scene
is exported to an .fds
input file. In this way, a single Blender file can contain several simulated FDS scenarios, one for each of its Scene
data-blocks.
ℹ️ For example, one
.blend
file can contain several design scenarios of the same parking lot. Cars and wallsObject
data-blocks are linked to severalScene
data-blocks. The geometry and the thermo-physical parameters of cars and walls are shared between allScene
data-blocks, but the position of the cars can be varied according to the various simulated scenarios.
When exporting to an FDS case, each Blender Object
is transformed to one or more FDS namelist groups. The exported namelist groups will extend their action to the geometry described by the related Blender Mesh
. The boundary condition SURF
is created from the related Blender Material
.
Let's imagine a simple one floor building.
The wall geometry is modeled in a Blender Object
named Wall. The user assigns an OBST
FDS namelist and its parameters to the Wall Object
.
Then a Blender Material
named Gypsum wall is linked to the Wall Object
. The SURF
namelist is automatically assigned to it. The user sets its FDS parameters.
That Wall Object
is exported to many OBST
namelist groups that describe the round geometry of the wall. The entered FDS parameters are appended to the generated namelists.
The Gypsum wall Material
is exported as an FDS SURF
namelist containing all its FDS parameters.
An excerpt of the exported FDS case follows:
&SURF ID='Gypsum wall',
RGB=204,199,56,
MATL_ID='Gypsum plaster',
THICKNESS=0.03
/
&OBST ID='Wall_0',
XB=-1.575,-1.375,-1.375,-0.475,-0.025,1.975,
SURF_ID='Gypsum wall'
/
&OBST ID='Wall_1',
XB=-1.575,-1.375,-1.375,1.375,1.975,3.025,
SURF_ID='Gypsum wall'
/
&OBST ID='Wall_2',
XB=-1.575,-1.375,0.475,1.375,-0.025,1.975,
SURF_ID='Gypsum wall'
/
...
After generation of the FDS file (.fds
), the user launches the FDS calculation on the command line, and visualizes the results in Smokeview.
The generated geometry appears in Smokeview as follows: