LoadTracer#
- class loadtracer.load_tracer.LoadTracer(*, geometry_graph, occupancies, occupancy_distributed_load_direction_mapping={'gravity': ['Fy'], 'inplane': ['Fx'], 'out_of_plane': ['Fz']}, reaction_distributed_load_direction_mapping={'gravity': ['FY'], 'inplane': ['FX'], 'out_of_plane': ['FZ']}, reaction_point_load_direction_mapping={'gravity': ['FY'], 'inplane': ['FX'], 'out_of_plane': ['FZ']}, missing_reactions='raise', on_error='raise', joist_loads='distributed', joist_profile_rel_tol=0.1, joist_variability_ratio=2.0, show_progress=True, models=None, reactions=None, ignored_reactions=None, expanded_pm=None, load_cases_used=None, issues=None, errors=None)[source]#
Traces the loads through the elements of a papermodels GeometryGraph by analysing each element in turn (from the top of the graph down) and applying its reactions to the elements that support it.
- Parameters:
geometry_graph (GeometryGraph) – The papermodels GeometryGraph
occupancies (dict) – The load components (pressures) of each occupancy, keyed by occupancy, e.g. {‘residential’: {‘D’: 0.5, ‘L’: 1.9}}
missing_reactions (Literal['raise', 'ignore']) – “raise” or “ignore”. What to do when a member receives a load from a member whose reactions are not available.
on_error (Literal['raise', 'collect']) – “raise” or “collect”. With “collect”, a member that cannot be analysed is recorded in .errors and the rundown continues. Members that it supports then have missing reactions.
joist_loads (Literal['distributed', 'point']) – “distributed” or “point”. With “distributed”, the point loads from the joists of each joist array on a member are converted into one distributed load (see joist_load_conversion). With “point”, each joist reaction is applied as a point load.
joist_profile_rel_tol (Annotated[float, Ge(ge=0.0), Lt(lt=1.0)]) – The tolerance used to classify the joist loads as uniform, increasing, decreasing or variable. It is relative: 0.10 is 10% of the mean line load.
joist_variability_ratio (Annotated[float, Gt(gt=1.0)]) – Joist loads that are “variable” and whose largest line load is this many times the smallest raise a warning.
occupancy_distributed_load_direction_mapping (dict)
reaction_distributed_load_direction_mapping (dict)
reaction_point_load_direction_mapping (dict)
show_progress (bool)
models (dict | None)
reactions (dict | None)
ignored_reactions (dict | None)
expanded_pm (dict | None)
issues (dict | None)
errors (dict | None)
- property load_directions: frozenset[str]#
The load directions from papermodels that the direction mappings cover.
- execute_analyses(artifacts_dir=None, progress=False, linear_wall_spread_angle=0, linear_wall_minimum_point_spread=1, exclude_members=None)[source]#
Executes the analyses to calculate reactions so that the entire geometry graph can be expressed as completely resolved analysis models.
- Parameters:
exclude_members (list[str] | None) – A list of member tags to completely exclude from the load rundown process. If a member with this tag is encountered, it will not be analyzed. If this member applies loads to another member, these loads will be ignored. Excluding a joist array (e.g. “J1.0”) excludes all of its joists.
linear_wall_spread_angle (float) – The angle (degrees) at which loads spread down a wall. A non-zero angle requires a ‘height’ on each wall’s annotation.
progress (bool)
linear_wall_minimum_point_spread (float)
- Return type:
None
- converted_joist_loads(tag=None)[source]#
Returns a list of rows, one per converted joist load and load case, for comparing against hand calculations. Only the rows for member ‘tag’ are returned when it is given.
Each row has: member, array, joists (count), case, dir, profile, start_loc, end_loc, w_start, w_end (the line load), total, max_min_ratio, and the trib width view: occupancy, pressure, trib_width_start, trib_width_end, approximate (None when not available).