-
Notifications
You must be signed in to change notification settings - Fork 11
Boundaries
#summary Boundary conditions
=Definition of boundary conditions=
==Constant conditions==
The clim argument sent to the simulation is a list of two objects of the Boundary class. The instantiation of a boundary requires two arguments: a string to specify the boundary type, and a dictionary to specify numerical data. The [Inputs input definition] page shows a simple example of how boundary conditions can be defined:
{{{ from hamopy.classes import Boundary
clim_01 = Boundary('Dirichlet',**{"T" : 293.15, "HR" : 0.7 })
clim_02 = Boundary('Fourier',**{"T" : 278.15, "HR" : 0.9, "h_t" : 5 })
clim = [clim_01, clim_02] }}}
Two boundaries are created separately and stored in the clim list. The first one is a constant type one (Dirichlet) condition of 293.15 K and 0.7 relative humidity. The second one is a type three (Fourier) conditions with a surface transfer coefficient of 5 [W/(m^2^K)].
==Variable conditions==
The example above is very simple, but things can get a little more complicated: boundary conditions can be variable in time and more parameters can be specified (air pressure, surface transfer coefficients...)
Let's say one of your boundaries has a variable temperature and air pressure, which are stored in a .txt file that looks like this:
|| Time (s) || Temp. (K) || Air pressure || Temp. 2 (K) || || 0 || 296.43 || 4.7 || 279.3 || || 3600 || 298.8 || 1.1 || 278.2 || || 7200 || 293.04 || 2.6 || 277.7 || || ... || ... || ... || ... ||
In this case, this is how you instantiate a new boundary with the second column as the temperature and the third column as the air pressure:
{{{ clim_file = 'C:\path_to_your_file\file_name.txt'
clim_01 = Boundary('Fourier',**{"file" : clim_file, "time" : "Time (s)", "T" : "Temp. (K)", "P_air" : "Air pressure", "HR" : 0.7, "h_t" : 10, "h_m" : 2e-7 }) }}}
A boundary can be assigned both constant and variable values at the same time:
- If a key of the dictionary points to a string (like
'T'and'P_air'above), thenBoundarywill attempt to read it under the corresponding header in the .txt file. - If a key points to a numerical value (like
'HR','h_t'and'h_m'above),Boundarywill keep it constant during the entire simulation time.
If any boundary value varies, the dictionary must contain a 'file' key pointing to the file location on your drive, and a 'time' key pointing to the column containing time coordinates. Note that you can use a single file to store data for both of your domain boundaries, like so:
{{{ clim_file = 'C:\path_to_your_file\file_name.txt'
clim_01 = Boundary('Fourier',**{"file" : clim_file, "time" : "Time (s)", "T" : "Temp. (K)", "P_air" : "Air pressure", "HR" : 0.7, "h_t" : 10, "h_m" : 2e-7 })
clim_02 = Boundary('Dirichlet',**{"file" : clim_file, "time" : "Time (s)", "T" : "Temp. 2 (K)", "HR" : 0.85 })
clim = [clim_01, clim_02] }}}
This formulation aims at giving maximum flexibility for the definition of the boundary conditions.
==Keys==
The dictionary which you give as argument for the instantiation of a new 'Boundary' object may specify more content than in the examples above. The following is a list of the keys that may (or should) be included in it.
-
'T': temperature in °C or K -
'HR': relative humidity (dimensionless) -
'p_v': water vapor pressure (Pa), only needed if HR is not given -
'h_t': surface heat transfer coefficient (W/m^2^K). Optional, default value is 5 W/m^2^K -
'h_m': surface moisture transfer coefficient (s/m). Optional, default is7.45e-9 * h_t -
'T_eq': equivalent temperature, accounting for effects of solar radiation. Optional, it is set equal to'T'if not given. -
'g_l': liquid water income caused by rain (kg/m^2^s). Optional, default value is zero -
'P_air': air pressure (Pa), impacting eventual air transfer in the wall. Optional, default value is zero
Any of these values can either be constant, or read from a .txt file. In this case, these additional keys should be given in the dictionary:
-
'file': file location on the hard drive -
'delimiter': delimiter used in the text file. Default is tab. -
'time': location of the time data in the text file
[Overview Documentation main page]