simdesign.rcmrf.bdim.baselib.slab
This module provides the base class for representing slabs in the BDIM layer.
- class simdesign.rcmrf.bdim.baselib.slab.SlabBase(rectangle, typology, thickness=None, orientation=None)[source]
Bases:
ABCAbstract base class for floor slab elements.
It provides geometry definition, thickness estimation, load transfer, and load assignment behaviour. It must be inherited by design-class- specific slab implementations.
- Variables:
rectangle (Rectangle) – Geometric mesh representation of the slab (tag, points, lines).
typology (Literal[1, 2, 3]) – Slab typology. 1: Solid two-way cast-in-situ slabs (SS2). 2: Solid one-way cast-in-situ slabs (SS1). 3: One-way composite slab with ceramic blocks and RC joists or pre-stressed beams (HS).
gamma_rc (float) – Unit weight of reinforced concrete [kN/m^3].
pg (float) – Total permanent load per unit area [kN/m^2]. Set via
set_loads.pq (float) – Variable load per unit area [kN/m^2]. Set via
set_loads.roof (bool) – Whether the slab is located at roof level.
MAX_THICKNESS (float) – Maximum allowable slab thickness, by default 0.85 m.
_thickness (float | None) – Default floor slab thickness. If None, thickness is estimated from span length when accessed via
t._orientation (Literal[1, 2, 3] | None) – Default floor slab load-transfer orientation. If None, orientation is inferred from typology and span ratio when accessed via
orientation.
- Parameters:
rectangle (Rectangle)
typology (Literal[1, 2, 3])
thickness (float | None)
orientation (Literal[1, 2, 3] | None)
Notes
Plan view of mesh objects (rectangle) representing slabs:
y |__x l2(p2,p3) p2(x2,y2,z2) o------>o p3(x3,y3,z3) ^ ^ l1(p1,p2) | | l3(p4,p3) | | p1(x1,y1,z1) o------>o p4(x4,y4,z4) l4(p1,p4)
pi is the i-th
Pointrepresenting a corner point.li is the i-th surrounding
Line.xi, yi, and zi are the coordinates of the i-th
Point.- gamma_rc: float
- pg: float
- pq: float
- roof: bool
- MAX_THICKNESS: float = 0.85
- typology: Literal[1, 2, 3]
- property lx: float
Slab length along the global X-axis.
This corresponds to the length of
rectangle.lines[1].- Returns:
Slab length along the global X-axis [m].
- Return type:
float
- property ly: float
Slab length along the global Y-axis.
This corresponds to the length of
rectangle.lines[0].- Returns:
Slab length along the global Y-axis [m].
- Return type:
float
- property area: float
Slab plan area.
This corresponds to
rectangle.area.- Returns:
Slab plan area [m^2].
- Return type:
float
- property pself: float
Slab self-weight per unit area.
- Returns:
Slab self-weight per unit area [kN/m^2].
- Return type:
float
Notes
For solid cast-in-situ slabs (typology 1 or 2), self-weight is computed as:
pself = gamma_rc * t
For composite slabs with pre-fabricated joists and ceramic blocks (typology 3), a logarithmic regression fit to manufacturer data is used:
pself = 2.20 * ln(t) + 6.50
where t is the slab thickness in metres.
References
https://presdouro.pt/wp-content/themes/presdouro/images/DT_PD2016_VALIDADO.pdf https://lajes.pavimir.pt/pdfs/DA%2060%20-%20Pavimentos%20Aligeirados.pdf
- property beam_alpha_coeffs: List[float]
Alpha coefficients for the four beams surrounding the slab.
Alpha coefficients convert triangular or trapezoidal slab loads into equivalent uniformly distributed loads on each beam; see
_get_alpha(). For one-way orientations, all coefficients are 1.0.- Returns:
Alpha coefficients of four beams surrounding the slab, ordered [l1, l2, l3, l4] following the plan-view convention.
- Return type:
list[float]
- property orientation: Literal[1, 2, 3]
Slab load-transfer orientation.
- Returns:
Slab load-transfer orientation. 1: Load is transferred to beams along the X direction. 2: Load is transferred to beams along the Y direction. 3: Load is transferred to beams along both directions.
- Return type:
Literal[1, 2, 3]
Notes
When orientation is not explicitly set, it is inferred as follows: For two-way slabs (typology 1)
orientation = 3. For one-way slabs, load transfer is oriented along the longer span axis:orientation = 1if lx > ly,orientation = 2otherwise.
- property t: float
Slab thickness (depth).
- Returns:
Slab thickness (depth) [m].
- Return type:
float
Notes
When thickness is not explicitly set, it is estimated from the shorter span length
min(lx, ly).For solid cast-in-situ slabs (typology 1 or 2), a span-to-depth ratio of 30 is assumed:
t = round(min_span / 30, 2)
For composite slabs with pre-fabricated joists and ceramic blocks (typology 3), a linear regression fit to manufacturer data is used:
t = round(0.032 * min_span + 0.065, 2)
In both cases the result is capped at
MAX_THICKNESS.References
https://presdouro.pt/wp-content/themes/presdouro/images/DT_PD2016_VALIDADO.pdf https://lajes.pavimir.pt/pdfs/DA%2060%20-%20Pavimentos%20Aligeirados.pdf
- property beam_tributary_areas: List[float]
Tributary areas assigned to the surrounding beams.
- Returns:
Tributary areas [m^2] for the four beams surrounding the slab, ordered [l1, l2, l3, l4] following the plan-view convention.
- Return type:
list[float]
Notes
For one-way orientations (1 or 2), one pair of parallel beams carries the full half-area each and the perpendicular pair carries nothing. For two-way orientation (3), loads are distributed as triangular areas to beams along the shorter span and trapezoidal areas to beams along the longer span.
- set_loads(permanent_loads, variable_loads)[source]
Assign permanent and variable loads to the slab.
Sets
gamma_rc,pg(self-weight + superimposed dead load), andpqfrom the provided load objects. Load values depend on whether the slab is at roof or floor level (roof).- Parameters:
permanent_loads (PermanentBase) – Permanent loads.
variable_loads (VariableBase) – Variable loads.
- Return type:
None