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 |
|---|---|
| Tutorial for Mixed Convection case | |
| 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
MixedConvectionmodel:-
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_flowandqLatGai_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
TFloandTOthWalrespectively. Please note that it is necessary to declareTOthWalas 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
roois 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
rooas 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), lat = 0.012787839282646, 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_flowandqLatGai_flowto 0. -
Set
TFloto 303.15 Kelvin. -
Set
TOthWalto 283.15 Kelvin.
-
Set
-
Set the values for the parameters of
bouInandbouOutas 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.portsare 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.cfdandMixedConvection.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.cfdin the directoryBuildings/Resources/Data/ThermalZones/Detailed/Examples/FFD/Tutorial/. -
Set the simulation stop time of the Modelica model to
180seconds 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.mcrthat 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
NaturalConvectionmodel:-
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_flowandqLatGai_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
TeasWalandTwesWal, 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
rooas 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}), lat = 0.012787839282646, 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_flowandqLatGai_flowto 0. -
Set
TEasWalto 273.15 Kelvin. -
Set
TWesWalto 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.cfdandNaturalConvection.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.cfdatBuildings/Resources/Data/ThermalZones/Detailed/Examples/FFD/Tutorial. -
Set simulation the stop time of the Modelica model
7200seconds 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.mcrthat 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 |