4.1.1.3. CSA o86-19, Annex B Fire Design
Limitstates currently contains code for working with glulam and CLT. Objects also exist for representing fire portection, and burning sections according to Annex B of csa o86.
Contains classes for working with fire design, and modifying sections according to CSA o86 Annex B
- class GypusmFlatCSA19(portection: list[str] | str)[source]
Represents fire portection that goes on a section that has only one side, such as the bottom of a CLT panel, or a circular column.
The can be one of: ‘exposed’, ‘12.7mm’, ‘15.9mm’, ‘15.9mmx2’, ‘unexposed’.
- Parameters
portection (list[str]) – The input list of fire portection.
- Return type
None.
- class GypusmRectangleCSA19(portection: list[str] | str)[source]
Represents fire portection that goes on a section with multiple sides. Each side is given it’s own potection. The gypsum on each side of the rectangle is speced, using one of: ‘exposed’ , ‘12.7mm’, ‘15.9mm’, ‘15.9mmx2’, ‘unexposed’.
Convention is to start at the top. For a rectangular section fire portection is input in, [top, right, bottom, left]
- Parameters
portection (list[str]) – The input list of fire portection.
- Return type
None.
Contains classes for working with fire design, and modifying sections according to CSA o86 Annex B.
- AssignFirePortection(element: BeamColumn, condition: FireConditions, portection: str)[source]
Assigns the fire portection to an element for some typical conditions. These include:
1 = beamColumn: exposed on 4 sides
2 = beamWithPanel: exposed on all sides except it’s top
3 = panel: exposed only on it’s bottom.
If the desired condition isn’t in the above conditions, a portection object will manually have to be created with GypusmRectangleCSA19 or GypusmFlatCSA19.
- Parameters
element (object) – The element to assign fire portection to.
condition (str) – The condition of the element from a list of typical conditions. The FireCondition Enumeration class can be used, or an integer.
portection (str) – The type of gypusm portection to use. One of “exposed”, “12.7mm”, “15.9mm”, “15.9mmx2”.
- Return type
None.
- class FireConditions(value)[source]
Bases:
IntEnumA class that shows all possible options for fire conditions. These include:
1 = beamColumn: exposed on 4 sides
2 = beamWithPanel: exposed on all sides except it’s top
3 = panel: exposed only on it’s bottom.
- beamColumn = 1
- beamWithPanel = 2
- panel = 3
- getBurnDimensions(netFireTime: ndarray[float], Bn: float = 0.7) ndarray[float][source]
Calcualtes the amount burned on each face of a section using B.4 and B.5. The zero-strength layer is culated according to B5, and uses 7mm or a linear interpolation if the burn time is less than 20min Time units are in minutes, length units are in mm.
For a rectangular section fire portection is input in: [top, right, bottom, left]
- Parameters
netFireTime (ndarray) – An array of the input fire time per face.
Bn (TYPE, optional) – The char rate to use, review c.l. B.4.1 to choose. The default is 0.7.
- Return type
None.
- getBurntCLTSection(section: SectionCLT, FRR: ndarray[float], portection: GypusmFlatCSA19, Bn: float = 0.8) SectionCLT[source]
Returns a burnt rectangular section, with burn dimensions for a rectangle from a input burn time.
Calculates the amount burned on each face of a section using clauses B.4 and B.5. The zero-strength layer is calculated according to B5, and uses 7mm or a linear interpolation if the exposed time is less than 20min Time units are in minutes.
- Parameters
section (SectionRectangle) – The input rectangular section to burn.
FRR (ndarray[float]) – The burn demands in FRR in minutes on each face. For a rectangular section fire portection is input in: [top, right, bottom, left]
portection (GypusmRectangleCSA19) – The fire portection object applied to the section.
Bn (float, optional) – The char rate for the section. The default is 0.7, which is the notional char rate.
- Returns
The burn section with dimensions equal to the output section.
- Return type
- getBurntRectangularDims(burnAmount, width: float, depth: float)[source]
Gets the burn dimensions for a rectangle from a input burn time. Burn time is input in: [top, right, bottom, left]
Calculates the amount burned on each face of a section using clauses B.4 and B.5.
The zero-strength layer is culated according to B5, and uses 7mm or a linear interpolation if the burn time is less than 20min Time units are in minutes, length units are in mm.
- Parameters
burnAmount (nd.Array) – The amount each face is burned.
width (float) – The input section width as a float.
depth (float) – The input section depth as a float.
- Returns
fireWidth (float) – The width of the fire section.
fireWidth (float) – The depth of the fire section.
- getBurntRectangularSection(section: SectionRectangle, FRR: ndarray[float], portection: GypusmRectangleCSA19, Bn: float = 0.7) SectionRectangle[source]
Returns a burnt rectangular section, with burn dimensions for a rectangle from a input burn time.
Calculates the amount burned on each face of a section using clauses B.4 and B.5. The zero-strength layer is calculated according to B5, and uses 7mm or a linear interpolation if the exposed time is less than 20min Time units are in minutes.
- Parameters
section (SectionRectangle) – The input rectangular section to burn.
FRR (ndarray[float]) – The burn demands in FRR in minutes on each face. For a rectangular section fire portection is input in: [top, right, bottom, left]
portection (GypusmRectangleCSA19) – The fire portection object applied to the section.
Bn (float, optional) – The char rate for the section. The default is 0.7, which is the notional char rate.
- Returns
SectionRectangle – The burn section with dimensions equal to the output section.
burnAmount (list[float]) – An array of what is burned on each face.
- getCLTBurnDims(netBurnTime: ndarray[float], sectionCLT: SectionCLT, Bn: float = 0.8) LayerGroupClt[source]
Gets the burn dimensions for a CLTSection. The CLT section MUST have units of mm.
Calculates the amount burned on each face of a section using clauses B.4 and B.5.
The zero-strength layer is culated according to B5, and uses 7mm or a linear interpolation if the burn time is less than 20min Time units are in minutes, length units are in mm.
- Parameters
netBurnTime (float) – The burn time on each face in minutes. This is a ndarray with one entry in it for compatibility purposes.
width (float) – The input section width as a float.
depth (float) – The input section depth as a float.
Bn (float, optional) – The char rate for the section. The default is 0.8.
- Returns
burnLayers (float) – The width of the fire section.
fireWidth (float) – The depth of the fire section.
- getFRRfromFireConditions(FRR: float, fireCon: FireConditions = 2)[source]
A helper function used to get the appropriate FRR list from a set of typical conditions.
- getFireDemands(FRR: float, condition: limitstates.design.csa.o86.c19.annexB.FireConditions | int)[source]
A helper function used to returns the fire demands for common fire conditions. These include:
1 = beamColumn: exposed on 4 sides
2 = beamWithPanel: exposed on all sides except it’s top
3 = panel: exposed only on it’s bottom.
A list can manually be created for the the FRR if the above options do not match the input conditions above.
- Parameters
condition (str) – The condition of the element from a list of typical conditions. The FireCondition Enumeration class can be used, or an integer.
portection (FireConditions, int) – The type of gypusm portection to use. One of “exposed”, “12.7mm”, “15.9mm”, “15.9mmx2”, “unexposed”.
- Returns
FRR – The output FRR. For a rectangular section fire portection is input in: [top, right, bottom, left]
- Return type
list
- getGypsumFirePortection(condition: FireConditions, portection: str) FirePortection[source]
Returns the fire portection class for some typical conditions. These include:
1 = beamColumn: exposed on 4 sides
2 = beamWithPanel: exposed on all sides except it’s top
3 = panel: exposed only on it’s bottom.
If the desired condition isn’t in the above conditions, a portection object will manually have to be created with GypusmRectangleCSA19 or GypusmFlatCSA19.
- Parameters
condition (str) – The condition of the element from a list of typical conditions. The FireCondition Enumeration class can be used, or an integer.
portection (FireConditions, int) – The type of gypusm portection to use. One of “exposed”, “12.7mm”, “15.9mm”, “15.9mmx2”, “unexposed”.
- Return type
None.
- getNetBurnTime(FRR: ndarray, portection: ndarray) ndarray[float][source]
Given a input FRR demand and portection time, determines the burn time on the section.
For a rectangular section fire portection is input in: [top, right, bottom, left]
- Parameters
FRR (ndarray) – An array of the fire resistant rating demands in minutes.
portection (ndarray) – An array of the fire portection times in minutes.
- Returns
burnTime – The output demand on the element for each face
- Return type
ndarray
- setFireSectionCltCSA(element: BeamColumnGlulamCsa19, FRR: float | list[float] | numpy.ndarray[float], Bn: float = 0.8)[source]
Sets the burnt section for a clt element. By default Bn = 0.8, which assumes that the first CLT layer has been burnt through. Set Bn = 0.65 if the bottom layer isn’t burnt through.
Calculates the amount burned on each face of a section using clauses B.4 and B.5. The zero-strength layer is calculated according to B5, and uses 7mm or a linear interpolation if the exposed time is less than 20min.
Time units is in minutes.
- Parameters
element (BeamColumnGlulamCsa19) – The Glulam element to burn.
FRR (list[float]|ndarray[float]) – For a rectangular section fire portection is input in: [top, right, bottom, left]
Bn (float, optional) – The burn rate for the section. The default is 0.7, which is the notional char rate.
- Return type
None.
- setFireSectionGlulamCSA(element: BeamColumnGlulamCsa19, FRR: list[float] | numpy.ndarray[float], Bn: float = 0.7)[source]
Sets the burnt section for a glulam element. If the element does not have fire portection assigned to it, it is assumed that the section has no fire portection on all sides.
Calculates the amount burned on each face of a section using clauses B.4 and B.5. The zero-strength layer is calculated according to B5, and uses 7mm or a linear interpolation if the exposed time is less than 20min.
Time units is in minutes.
- Parameters
element (BeamColumnGlulamCsa19) – The Glulam element to burn.
FRR (list[float]|ndarray[float]) – For a rectangular section fire portection is input in: [top, right, bottom, left]
Bn (float, optional) – The burn rate for the section. The default is 0.7, which is the notional char rate.
fireCondition (FireConditions) – The fire condition used. See the FireConditions enumeration for possible values