Beam¶
- class pondpy.analysis.fem_analysis.Beam(length, size, supports, ploads=[], dloads=[])¶
A class that represents an idealized beam.
…
Attributes¶
- dloadslist
list of dist load objects
- lengthfloat
length of the beam
- sizesteel beam size object
steel beam size object for the beam
- supportslist
list of tuples indicating location and type of beam supports
- ploadslist
list of point load objects
BeamModel¶
- class pondpy.analysis.fem_analysis.BeamModel(beam, max_node_spacing=6, ini_analysis=True)¶
A class representing the analytical model of an idealized beam
…
Attributes¶
- analysis_completebool
bool indicating whether the analysis has been performed and is complete
- analysis_readybool
bool indicating whether the analysis has been initialized and is ready to be performed
- beambeam object
beam object to be analyzed
- dof_numlist
list of lists representing the degrees of freedom for each node in the model
- elem_dloadlist
list of lists representing the distributed load acting on each element in the model
- elem_loadslist
list of lists representing the fixed end forces in each direction at each end of each element
- elem_nodeslist
list of lists representing the node number at each end of each element in the model
- element_forcesnumpy array
numpy array representing the forces at each end of each element* analysis must be performed to access this attribute
- fef_load_vectornumpy array
numpy array represengting the fixed end forces calculated from the dist loads at each node in the model
- global_displacementnumpy array
numpy array representing the global displacement at each global degree of freedom
- global_stiffness_matrixnumpy array
numpy array representing the global stiffness matrix for the model
- ini_analysisbool
indicates whether or not to initialize analysis upon instantiation
- local_stiffness_matriceslist
list of numpy arrays representing the local stiffness matrix for each element in the model
- max_node_spacingfloat
maximum node spacing along the length of the beam model
- model_nodeslist
list of locations of the nodes along the length of the beam model
- n_dofint
number of degrees of freedom in the model
- nodal_load_vectornumpy array
numpy array containing the applied nodal loads at each node in the model
- node_elem_feflist
list of lists representing the fixed end forces at each node in the model
- node_ploadlist
list of lists representing the point loads at each node in the model
- node_supportlist
list of lists representing the support type at each node in the model
- points_of_interestlist
list representing points of interest along the length of the beam for use in creating nodes
- support_nodeslist
list containing the node number of all support nodes in the model
- support_reactionsnumpy array
numpy array representing the support reaction at each node in the model* analysis must be performed to access this attribute
Methods¶
- add_beam_dload(dload, add_type=’add’)
Adds a distributed load to the Beam object referenced by the BeamModel object.
- add_beam_pload(pload, add_type=’add’)
Adds a point load to the Beam object referenced by the BeamModel object.
- initialize_analysis():
Prepares the model for analysis. To be called at instantiation and when the user specifies.
- perform_analysis():
Computes the displacement vector, element force matrix, and support reaction vector.
- plot_bmd():
Plots the bending moment diagram of the analyzed beam.
- plot_deflected_shape():
Plots the deflected shape of the analyzed beam.
- plot_sfd():
Plots the shear force diagram of the analyzed beam.
- add_beam_dload(dload, add_type='add')¶
Adds a distributed load to the Beam object referenced by the BeamModel object.
Parameters¶
- add_typestr, optional
indicates whether to add the dload to the existing loads or replace the existing loads
- dloadlist
list of dist load objects representing the distributed load(s) to be added to the beam referenced by the beam model
Returns¶
None
- add_beam_pload(pload, add_type='add')¶
Adds a point load to the Beam object referenced by the BeamModel object.
Parameters¶
- add_typestr, optional
indicates whether to add the pload to the existing loads or replace the existing loads
- ploadlist
list of point load objects representing the point load(s) to be added to the beam referenced by the beam model
Returns¶
None
- initialize_analysis()¶
Prepares the model for analysis. To be called at instantiation and when the user specifies.
Parameters¶
None
Returns¶
None
- perform_analysis()¶
Computes the displacement vector, element force matrix, and support reaction vector.
Parameters¶
None
Returns¶
None
- plot_bmd(with_design=False)¶
Plots the bending moment diagram of the analyzed beam.
Parameters¶
- with_designbool, optional
bool indicating whether the design capacity should be plottedalong with the bmd
Returns¶
- figmatplotlib.figure.Figure object
figure object representing the bending moment diagram for the analyzed model
- plot_deflected_shape(scale=1)¶
Plots the deflected shape of the analyzed beam.
Parameters¶
- scaleint, optional
scale to be applied to the deflected shape
Returns¶
- figmatplotlib.figure.Figure object
figure object representing the deflected shape of the analyzed beam
- plot_sfd(with_design=False)¶
Plots the shear force diagram of the analyzed beam.
Parameters¶
- with_designbool, optional
bool indicating whether the design capacity should be plottedalong with the sfd
Returns¶
- figmatplotlib.figure.Figure object
figure object representing the shear force diagram for the analyzed model
DistLoad¶
- class pondpy.analysis.fem_analysis.DistLoad(location, magnitude)¶
A class representing a distributed load.
Attributes¶
- locationtuple
tuple representing the start and end locations of the distributed load along the beam
- magntiduetuple
tuple of tuples representing the magnitude of the distributed load at its start and end locations
PointLoad¶
- class pondpy.analysis.fem_analysis.PointLoad(location, magnitude)¶
A class representing a concentrated load.
Attributes¶
- locationint or float
int or float representing the location of the concentrated load along the beam
- magntiduetuple
tuple representing the magnitude of the concentrated load
SteelBeamSize¶
- class pondpy.analysis.fem_analysis.SteelBeamSize(name, properties, e_mod=29000, section_type='AISC')¶
A class representing a steel beam size.
…
Attributes¶
- e_modint or float
elastic modulus of steel in ksi
- namestr
name of the steel beam size
- propertiessteelpy object
steelpy object containing properties for the specified steel beam size
- section_typestr
string indicating the section type of the steel shape
SteelJoistSize¶
- class pondpy.analysis.fem_analysis.SteelJoistSize(name, properties, e_mod=29000, section_type='SJI')¶
A class that represents a steel joist size.
…
Attributes¶
- e_modint or float
elastic modulus of steel in ksi
- namestr
name of the steel joist size
- propertiesjoistpy object
joistpy object containing properties for the specified steel joist size
- section_typestr
string indicating the section type of the steel shape
Loading¶
- class pondpy.analysis.pond_analysis.Loading(dead_load, rain_load, include_sw=True)¶
A class to represent the loading criteria for a roof bay.
…
Attributes¶
- dead_loadfloat
magnitude of the dead load on the roof in k/in^2
- rain_loadfloat
magnitude of the rain load on the roof in k/in^2
- include_swbool
indicates whether to conside member self-weight in the analysis
PrimaryFraming¶
- class pondpy.analysis.pond_analysis.PrimaryFraming(primary_members)¶
A class representing the primary members in the framing system in the roof bay.
…
Attributes¶
- primary_memberslist
list of all primary members in the framing system
PrimaryMember¶
- class pondpy.analysis.pond_analysis.PrimaryMember(length, size, supports, ploads=[], dloads=[])¶
A class representing a primary member in the roof bay.
Attributes¶
- dloadslist
list of dist load objects
- lengthfloat
length of the beam
- sizesteel beam size object
steel beam size object for the beam
- supportslist
list of tuples indicating location and type of beam supports
- ploadslist
list of point load objects
RoofBay¶
- class pondpy.analysis.pond_analysis.RoofBay(primary_framing, secondary_framing, loading, mirrored_left=False, mirrored_right=False)¶
A model representing the roof bay to be analyzed.
…
Attributes¶
- loadingloading
loading object representing the loading criteria for the roof bay
- mirrored_leftbool
indicates whether the roof bay is mirrored on the left
- mirrored_rightbool
indicates whether the roof bay is mirrored on the right
- primary_framingprimary framing
primary framing object for the roof bay
- primary_swdict
dictionary containing distload objects for each primary member self-weight
- secondary_dldict
dictionary containing distload objects for each secondary member dead load, including self-weight
- secondary_framingsecondary framing
secondary framing object for the roof bay
- secondary_spacingfloat
spacing between secondary members along the length of the primary members
- secondary_tribwlist
list containing tributary width for each secondary framing member
RoofBayModel¶
- class pondpy.analysis.pond_analysis.RoofBayModel(roof_bay, max_node_spacing=6)¶
A class representing the roof bay model object.
…
Attributes¶
- analysis_completebool
bool indicating whether the analysis has been successfully performed
- analysis_readybool
bool indicating whether the analysis has been initialized and is ready to be performed
- initial_impounded_depthdict
dictionary containing initial impounded water depth in inches for each primary and secondary member
- max_node_spacingint or float
maximum node spacing along length of beam model objects in inches
- primary_modelslist
list of beam model objects for the primary framing members
- roof_bayroof bay
roof bay object
- secondary_modelslist
list of beam model objects for the secondary framing members
Methods¶
- analyze_roof_bay(rain_load):
Analyzes the roof bay for the dead load and the input rain loads.
- generate_plots():
Generates the deflected shape, shear force diagram, and bending moment diagram plots for each primary and secondary member.
- initialize_analysis():
Prepares the model for analysis. To be called at instantiation and when the user specifies.
- analyze_roof_bay(rain_load)¶
Analyzes the roof bay for the dead load and the input rain loads.
Parameters¶
- rain_loadlist
list of dist load objects representing the rain load on the roof bay
Returns¶
None
- generate_plots()¶
Generates the deflected shape, shear force diagram, and bending momentdiagram plots for each primary and secondary member.
Parameters¶
None
Returns¶
- plotsdict
dictionary of dictionaries of lists containing the deflected shape,shear force diagram, and bending moment diagram plots for eachprimary and secondary member
- initialize_analysis()¶
Prepares the model for analysis. To be called at instantiation and when the user specifies.
Parameters¶
None
Returns¶
None
SecondaryFraming¶
- class pondpy.analysis.pond_analysis.SecondaryFraming(secondary_members, slope=0.25)¶
A class representing the secondary members in the framing system in the roof bay.
…
Attributes¶
- secondary_memberslist
list of all primary members in the framing system
- slopefloat
slope of the roof bay in in/ft
SecondaryMember¶
- class pondpy.analysis.pond_analysis.SecondaryMember(length, size, supports, ploads=[], dloads=[])¶
A class representing a secondary member in the roof bay.
Attributes¶
- dloadslist
list of dist load objects
- lengthfloat
length of the beam
- sizesteel beam size object
steel beam size object for the beam
- supportslist
list of tuples indicating location and type of beam supports
- ploadslist
list of point load objects
SteelBeamDesign¶
- class pondpy.design.steel_beam_design.SteelBeamDesign(section, unbraced_length, yield_stress=50)¶
A class that represents design criteria for a steel beam according toAISC 360-16.
…
Attributes¶
- sectionsteelpy.steelpy.Section
steelpy section object for the steel beam under consideration
- unbraced_lengthint or float
bending unbraced length for the major axis in inches
- yield_stressint or float
yield stress for the beam in ksi
Methods¶
- get_moment_capacity()
Calculates the ASD moment capacity for the steel beam under consideration.
- get_shear_capacity()
Calculates the ASD shear capcity for the steel beam under consideration.
- get_moment_capacity()¶
Calculates the ASD moment capacity for the steel beam under consideration.
Parameters¶
None
Returns¶
- moment_capacityfloat
ASD moment capacity for the steel beam under consideration
- get_shear_capacity()¶
Calculates the ASD shear capcity for the steel beam under consideration.
Parameters¶
None
Returns¶
- shear_capacityfloat
ASD shear capcity for the steel beam under consideration
SteelJoistDesign¶
- class pondpy.design.steel_joist_design.SteelJoistDesign(designation, span)¶
A class that represents design criteria for a steel joist.
…
Attributes¶
- designationjoistpy.joistpy.Designation
joistpy designation object for the steel joist under consideration
- spanint or float
span of the steel joist
Methods¶
- get_moment_capacity()
Calculates the ASD moment capacity for the steel joist under considerationusing the total safe load from SJI load tables for the given span.
- get_shear_capacity()
Calculates the ASD minimum and maximum shear capacity for the steel joistunder consideration using the total safe load from SJI load tables for the given span.
- get_moment_capacity()¶
Calculates the ASD moment capacity for the steel joist under considerationusing the total safe load from SJI load tables for the given span.
Parameters¶
None
Returns¶
- moment_capacityfloat
the moment capacity for the steel joist under consideration usingthe total safe load from SJI load tables for the given span
- get_shear_capacity()¶
Calculates the ASD minimum and maximum shear capacity for the steel joistunder consideration using the total safe load from SJI load tables for the given span.
Parameters¶
None
Returns¶
- shear_capacitytuple
the (minimum, maximum) shear capacity for the steel joistunder consideration using the total safe load from SJI load tablesfor the given span
- get_shear_plot_points()¶
Calculates the shear capacity at critical points along the span ofthe joist under consideration for use in plotting the shear capacityenvelope.
Parameters¶
None
Returns¶
- shear_plot_pointsnumpy.ndarray
numpy array containing points along the span and shear capacityat those points
ReportBuilder¶
- class pondpy.report.report_builder.ReportBuilder(output_folder, filename='pondpy_results', filetype='html')¶
A class to organize data from a PondPyModel object and put it into aPDF report for viewing by the user.
…
Attributes¶
- favicon_pathstr
string representing the path to the pondpy favicon
- filenamestr
string represengting the output filename
- filetypestr
string representing the desired output file type
- generated_atdatetime.datetime
datetime.datetime object representing the time the report was generated
- logo_pathstr
string representing the path to the pondpy logo
- output_folderstr
string representing the location to which the report should be saved
- version_nostr
string representing the version number of the package
Methods¶
- save_report(context)
Generates the report and saves it to the location specified by theoutput_folder, filename, and filetype attributes.
- save_report(context)¶
Generates the report and saves it to the location specified by theoutput_folder, filename, and filetype attributes.
Parameters¶
None
Returns¶
None
PondPyModel¶
- class pondpy.pondpy.PondPyModel(primary_framing, secondary_framing, loading, mirrored_left=False, mirrored_right=False, stop_criterion=0.001, max_iter=50, show_results=True)¶
A class to represent a pondpy analysis object.
…
Attributes¶
- analysis_completebool
bool indicating whether the analysis has been performed
- impounded_depthdict
dictionary containing impounded water depth at model nodes for both primary and secondary members
- iter_resultsdict
dictionary holding iterative analysis results
- loadingloading object
Loading object representing the loading criteria for the roof bay
- max_iterint
maximum number of iterations for the iterative analysis
- mirrored_leftbool
indicates whether the roof bay is mirrored on the left
- mirrored_rightbool
indicates whether the roof bay is mirrored on the right
- out_strstr
string holding detailed output results for printing to the console
- roof_bayroof bay object
roof bay model to used to create the roof bay model
- roof_bay_modelroof bay model object
roof bay model object to be used for the iterative analysis
- primary_framingprimary framing object
primary framing object representing the primary framing for the roof bay
- secondary_framingsecondary framing object
secondsry framing object representing the secondary framing for the roof bay
- show_resultsbool
indicates whether or not to print the results to the console
- stop_criterionfloat
criterion to stop the iterative analysis
Methods¶
- generate_report():
Generates a report for the analyzed PondPyModel object.
- perform_analysis():
Performs the iterative analysis of the PondPyModel object.
- generate_report(output_folder, filename='pondpy_results', filetype='html', company='', proj_num='', proj_name='', desc='')¶
Generates a report for the analyzed PondPyModel object.
Parameters¶
- companystr, optional
string representing the company name
- descstr, optional
string representing the calculation description
- filenamestr, optional
string represengting the output filename
- filetypestr, optional
string representing the desired output file type
- output_folderstr
string representing the location to which the report should be saved
- proj_namestr, optional
string representing the project name
- proj_numstr, optional
string representing the project number
Returns¶
None
- perform_analysis()¶
Performs the iterative analysis of the PondPy object.
Parameters¶
None
Returns¶
- outputdict
dictionary of output variables