Buildings.ThermalZones.Detailed.Examples.FFD.Tutorial
Tutorial with step by step instructions for how to do coupled simulation
Information
This package contains tutorials for CFD simulations of zones with natural and mixed convection, with step by step instructions for how to build such models.
Extends from Modelica.Icons.Information (Icon for general information packages).
Package Content
Name | Description |
---|---|
MixedConvection | Tutorial for Mixed Convection case |
NaturalConvection | Tutorial for Natural Convection case |
Buildings.ThermalZones.Detailed.Examples.FFD.Tutorial.MixedConvection
Tutorial for Mixed Convection case
Information
This tutorial gives step by step instructions on building and simulating a mixed convection model. The model tests the coupled simulation of Buildings.ThermalZones.Detailed.CFD with the FFD program by simulating ventilation with mixed convection in an empty room.
Case Description
The temperature of the floor is fixed at 30°C and the temperature of the walls and the ceiling are fixed at 10°C. The supply air temperature is fixed at 10°C.
Figure (a) shows the schematic of the FFD simulation and Figure (b) shows the velocity vectors and temperatures on the X-Z plane at Y = 0.5 m as simulated by the FFD.
Figure (a)
Figure (b)
Step by Step Guide
This section describes step by step how to build and simulate the model.
-
Add the following model components into the
MixedConvection
model:-
Buildings.ThermalZones.Detailed.CFD.
This model is used to implement data exchange between Modelica and FFD.
Name it as
roo
. -
Buildings.BoundaryConditions.WeatherData.ReaderTMY3.
Use weather data from OHare Intl. Airport, Chicago, Illinoi, U.S.A.
Name it as
weaDat
. -
Modelica.Blocks.Sources.Constant.
Three models are needed to specify that internal radiation, internal convective heat gain and internal latent heat gain are zero.
Name these models as
qRadGai_flow
,qConGai_flow
andqLatGai_flow
, respectively. -
Modelica.Blocks.Routing.Multiplex3.
This block is used to convert three numbers into a vector.
Name it as
multiple_x3
. -
Buildings.HeatTransfer.Sources.FixedTemperature.
Two models are needed to specify the temperature on the floor and other walls.
Name them as
TFlo
andTOthWal
respectively. Please note that it is necessary to declareTOthWal
as a vector of 5 elements. -
Buildings.Fluid.Sources.MassFlowSource_T.
This model provides inlet air for the
roo
. Name it asbouIn
. -
Buildings.Fluid.Sources.Boundary_pT.
This model is the outdoor environment to which the outlet of
roo
is connected. Name it asbouOut
.
-
Buildings.ThermalZones.Detailed.CFD.
This model is used to implement data exchange between Modelica and FFD.
Name it as
-
In the textual editor mode, add the medium and the number of surfaces as below:
package MediumA = Buildings.Media.GasesConstantDensity.MoistAirUnsaturated (T_default=283.15); parameter Integer nConExtWin=0; parameter Integer nConBou=0; parameter Integer nSurBou=6; parameter Integer nConExt=0; parameter Integer nConPar=0;
-
Edit
roo
as below:Buildings.ThermalZones.Detailed.CFD roo( redeclare package Medium = MediumA, surBou( name={"East Wall","West Wall","North Wall","South Wall","Ceiling","Floor"}, A={0.9,0.9,1,1,1,1}, til={Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Ceiling, Buildings.Types.Tilt.Floor}, each absIR=1e-5, each absSol=1e-5, each boundaryCondition=Buildings.ThermalZones.Detailed.Types.CFDBoundaryConditions.Temperature), AFlo = 1*1, hRoo = 1, linearizeRadiation = false, useCFD = true, sensorName = {"Occupied zone air temperature", "Velocity"}, cfdFilNam = "modelica://Buildings/Resources/Data/ThermalZones/Detailed/Examples/FFD/Tutorial/MixedConvection.ffd", nConExt = nConExt, nConExtWin = nConExtWin, nConPar = nConPar, nConBou = nConBou, nSurBou = nSurBou, nPorts = 2, portName={"Inlet","Outlet"}, samplePeriod = 6);
-
Set the parameters for the following components:
-
Set
qRadGai_flow
,qConGai_flow
andqLatGai_flow
to 0. -
Set
TFlo
to 303.15 Kelvin. -
Set
TOthWal
to 283.15 Kelvin.
-
Set
-
Set the values for the parameters of
bouIn
andbouOut
as below:Fluid.Sources.MassFlowSource_T bouIn( redeclare package Medium = MediumA, nPorts=1, m_flow=0.1, T=283.15);
Fluid.Sources.FixedBoundary bouOut( redeclare package Medium = MediumA, nPorts=1);
-
Connect the components as shown in the figure below.
-
Confirm in the textual editor that the connections to
roo.ports
are as follows:connect(bouIn.ports[1], roo.ports[1]); connect(bouOut.ports[1], roo.ports[2]);
-
Use the Simplified CFD Interface (SCI) to generate the input file for the FFD.
- Use a 20 X 20 X 20 stretched grid.
- Set the time step size of the FFD to 0.1 seconds.
-
Generate the input files, which have by default the names
input.cfd
(mesh file) andzeroone.dat
(obstacles file). -
Rename the files as
MixedConvection.cfd
andMixedConvection.dat
, respectively.
-
Revise the FFD parameter input file
MixedConvection.ffd
(an example file is available inBuildings/Resources/Data/ThermalZones/Detailed/Examples/FFD/Tutorial/
):inpu.parameter_file_format SCI inpu.parameter_file_name MixedConvection.cfd inpu.block_file_name MixedConvection.dat prob.nu 0.000015 // Kinematic viscosity prob.rho 1.205 // Density prob.gravx 0 // Gravity in x direction prob.gravy 0 // Gravity in y direction prob.gravz -9.81 // Gravity in z direction prob.cond 0.0257 // Conductivity prob.Cp 1006.0 // Specific heat capacity prob.beta 0.00343 // Thermal expansion coefficient prob.diff 0.00001 // Diffusivity for contaminants prob.coeff_h 0.0004 // Convective heat transfer coefficient near the wall prob.Temp_Buoyancy 10.0 // Reference temperature for calculating buoyance force init.T 10.0 // Initial condition for Temperature init.u 0.0 // Initial condition for velocity u init.v 0.0 // Initial condition for velocity v init.w 0.0 // Initial condition for velocity w
-
Put the files
MixedConvection.ffd
,MixedConvection.dat
, andMixedConvection.cfd
in the directoryBuildings/Resources/Data/ThermalZones/Detailed/Examples/FFD/Tutorial/
. -
Set the simulation stop time of the Modelica model to
180
seconds and choose, for example, the CVode solver. - Translate the model and start the simulation.
-
Post-process: click the Tecplot macro script
Buildings/Resources/Image/Rooms/Examples/FFD/Tutorial/MixedConvection.mcr
that will generate the temperature contour and velocity vectors shown in the Figure (b). Note: Tecplot is needed for this.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
---|---|---|---|
Integer | nConExtWin | 0 | Number of constructions with a window |
Integer | nConBou | 0 | Number of surface that are connected to constructions that are modeled inside the room |
Integer | nSurBou | 6 | Number of surface that are connected to the room air volume |
Integer | nConExt | 0 | Number of exterior constructions withour a window |
Integer | nConPar | 0 | Number of partition constructions |
Modelica definition
Buildings.ThermalZones.Detailed.Examples.FFD.Tutorial.NaturalConvection
Tutorial for Natural Convection case
Information
This tutorial gives step by step instructions for building and simulating a natural convection model. The model tests the coupled simulation of Buildings.ThermalZones.Detailed.CFD with the FFD program by simulating the natural convection in an empty room with only surface boundary conditions.
Case Description
The Rayleigh number is a dimensionless number associated with natural convection, defined as
Ra = g β (Tw-Te)L3 ⁄ (ν α)
To get a Rayleigh number of 1E5, the flow properties are manually set as acceleration due to gravity gz=-0.01 m/s2, thermal expansion coefficient β=3e-3 K-1, kinematic viscosity ν=1.5e-5 m2/s, thermal diffusivity α=2e-5 m2/s, and characteristic length L=1 m.
Figure (a) shows the schematic of the FFD simulation. The following conditions are applied in Modelica.:
- East wall: Fixed temperature at Te=0°C,
- West wall: Fixed temperature at Tw=1°C,
- North & South wall, Ceiling, Floor: Fixed heat flux at 0 W/m2.
Figure (a)
Figure (b) shows the velocity vectors and temperature contour in degree Celsius on the X-Z plane at Y = 0.5 m as simulated by the FFD.
Figure (b)
More details of the case description can be found in Zuo et al. (2012).
Step by Step Guide
This section describes step by step how to build and simulate the model.
-
Add the following component models to the
NaturalConvection
model:-
Buildings.ThermalZones.Detailed.CFD.
This model is used to implement the data exchange between Modelica and FFD. Name it as
roo
. -
Buildings.BoundaryConditions.WeatherData.ReaderTMY3.
Use weather data from OHare Intl. Airport, Chicago, Illinoi, U.S.A. Name it as
weaDat
. -
Modelica.Blocks.Sources.Constant.
Three models are needed to specify that internal radiation, internal convective heat gain and internal latent heat gain zero.
Name these models as
qRadGai_flow
,qConGai_flow
andqLatGai_flow
, respectively. -
Modelica.Blocks.Routing.Multiplex3.
This block is used to combine three scalar signals to a vector. Name it as
multiple_x3
. -
Buildings.HeatTransfer.Sources.FixedTemperature.
Two models are needed to specify the temperatures on the east and west walls.
Name them as
TeasWal
andTwesWal
, respectively.
-
Buildings.ThermalZones.Detailed.CFD.
This model is used to implement the data exchange between Modelica and FFD. Name it as
-
In the textual editor mode, add the medium and the number of surfaces as shown below:
Buildings.ThermalZones.Detailed.CFD roo( package MediumA = Buildings.Media.GasesConstantDensity.MoistAirUnsaturated( T_default=283.15); parameter Integer nConExtWin=0; parameter Integer nConBou=0; parameter Integer nSurBou=6; parameter Integer nConExt=0; parameter Integer nConPar=0;
-
Edit
roo
as below:edeclare package Medium = MediumA, surBou( name={"East Wall","West Wall","North Wall","South Wall","Ceiling","Floor"}, each A=1*1, til={Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Wall, Buildings.Types.Tilt.Ceiling, Buildings.Types.Tilt.Floor}, each absIR=1e-5, each absSol=1e-5, boundaryCondition={ Buildings.ThermalZones.Detailed.Types.CFDBoundaryConditions.Temperature, Buildings.ThermalZones.Detailed.Types.CFDBoundaryConditions.Temperature, Buildings.ThermalZones.Detailed.Types.CFDBoundaryConditions.HeatFlowRate, Buildings.ThermalZones.Detailed.Types.CFDBoundaryConditions.HeatFlowRate, Buildings.ThermalZones.Detailed.Types.CFDBoundaryConditions.HeatFlowRate, Buildings.ThermalZones.Detailed.Types.CFDBoundaryConditions.HeatFlowRate}), AFlo = 1*1, hRoo = 1, linearizeRadiation = false, useCFD = true, sensorName = {"Occupied zone air temperature", "Velocity"}, cfdFilNam = "modelica://Buildings/Resources/Data/ThermalZones/Detailed/Examples/FFD/Tutorial/NaturalConvection.ffd", nConExt = nConExt, nConExtWin = nConExtWin, nConPar = nConPar, nConBou = nConBou, nSurBou = nSurBou, T_start=273.15, samplePeriod = 60);
-
Connect the component as shown in the figure below.
-
Set the values for the following components:
-
Set
qRadGai_flow
,qConGai_flow
andqLatGai_flow
to 0. -
Set
TEasWal
to 273.15 Kelvin. -
Set
TWesWal
to 274.15 Kelvin.
-
Set
-
Use the Simplified CFD Interface (SCI) to generate the input file for FFD.
- Use a 20 x 20 x 20 uniform grid.
- Set the time step size of the FFD to 10 seconds.
-
Generate the input files which have the default names
input.cfd
(mesh file) andzeroone.dat
(obstacles file). -
Rename the files as
NaturalConvection.cfd
andNaturalConvection.dat
, respectively.
-
Revise the FFD parameter input file
NaturalConvection.ffd
(an example file is provided inBuildings/Resources/Data/ThermalZones/Detailed/Examples/FFD/Tutorial/
):inpu.parameter_file_format SCI inpu.parameter_file_name NaturalConvection.cfd inpu.block_file_name NaturalConvection.dat prob.nu 1.5e-5 // Kinematic viscosity prob.rho 1 // Density prob.gravx 0 // Gravity in x direction prob.gravy 0 // Gravity in y direction prob.gravz -0.01 // Gravity in z direction prob.cond 0.02 // Conductivity prob.Cp 1000.0 // Specific heat capacity prob.beta 3e-3 // Thermal expansion coefficient prob.diff 0.00001 // Diffusivity for contaminants prob.alpha 2e-5 // Thermal diffusivity prob.coeff_h 0.0004 // Convective heat transfer coefficient near the wall prob.Temp_Buoyancy 0.0 // Reference temperature for calculating buoyance force init.T 0.0 // Initial condition for Temperature init.u 0.0 // Initial condition for velocity u init.v 0.0 // Initial condition for velocity v init.w 0.0 // Initial condition for velocity w
Please note that some of the physical properties were manipulated to obtain the desired Rayleigh Number of 105.
-
Store
NaturalConvection.ffd
,NaturalConvection.dat
, andNaturalConvection.cfd
atBuildings/Resources/Data/ThermalZones/Detailed/Examples/FFD/Tutorial
. -
Set simulation the stop time of the Modelica model
3600
seconds and choose for example the CVode solver. - Translate the model and start the simulation.
-
Post-process: click the Tecplot macro script
Buildings/Resources/Image/Rooms/Examples/FFD/Tutorial/NaturalConvection.mcr
that will generate the temperature contour and velocity vectors shown in the Figure (b). Note: Tecplot is needed for this.
Extends from Modelica.Icons.Example (Icon for runnable examples).
Parameters
Type | Name | Default | Description |
---|---|---|---|
Integer | nConExtWin | 0 | Number of constructions with a window |
Integer | nConBou | 0 | Number of surface that are connected to constructions that are modeled inside the room |
Integer | nSurBou | 6 | Number of surface that are connected to the room air volume |
Integer | nConExt | 0 | Number of exterior constructions withour a window |
Integer | nConPar | 0 | Number of partition constructions |