Pabq.common_tools package

Submodules

Pabq.common_tools.abq_tools module

Module containing tools for Abaqus cae.

class Pabq.common_tools.abq_tools.GeneralModel(add=None, solver=None, direct_submit=None, ncpus=None, write_input=None, save_cae=None, mdl_id=None)[source]

Bases: object

Class containing basic functionality for modeller scrtipts.

Contains tools like ‘save’, ‘submit’, ‘open_odb’ etc.

__init__(add=None, solver=None, direct_submit=None, ncpus=None, write_input=None, save_cae=None, mdl_id=None)[source]

Initialise a general model.

Some basic properties are given for the model, like the basename and the solver type.

Parameters:
  • add (bool, optional) – Is the current model going to be added to the Abaqus model database (mdb), leaving any preexisting models intact or is is a single model? In the second case, a new mdb is created and the default initial model “Model-1” is renamed accordingly. The second case is the default.
  • solver (str, "implicit" or "explicit", optional) – Set the type of the solver that is going to be used.
  • direct_submit (bool, optional) – Is the model going to me submitted directly after creation (True) or not (False). In the second case, make sure that the .cae and/or the .inp files are written, otherwise the modeller is rendered useless (no output). Default is True
  • write_input (bool, optional) – Should the input file be written to file? Default is True
  • ncups (int or "availabl", optional) – The number of parallel cpus to be used by the solver. It cold either take an integer value or the string “available”, in which case it will look for an environment variable “NCPUS” on the system. The default value is 1.
  • save_cae (bool, optional) – Should the model database be saved in a .cae file? Default is True
  • mdl_id (str, optional) – Set the basename of the model. It is used as model name, as base name for other entities (e.g. the job). Default is “general_model”
open_odb()[source]
static plastic_table(material_id)[source]
save()[source]
static set_material(material_id)[source]

Create a dictionary with a material description.

Parameters:material_id (str) – ID of the material to be constructed.
submit(job=None)[source]
w_input()[source]
Pabq.common_tools.abq_tools.exporter(data, filename)[source]

Eaport data to pickle

Parameters:
  • data – Variable containing the data to be exported
  • filename (str) – Filename of the export file
Pabq.common_tools.abq_tools.fetch_eigenv(odb_name, step_name, n_eigen)[source]

Get eigenvalues.

Return the eigenvalues of a perturbation buckling analysis from an abaqus database.

Parameters:
  • odb_name (class) – Abaqus model containing the eigenvalues
  • step_name (string) – Name of the step
  • n_eigen (int) – Number of eigenvalues to return

Notes

References

Pabq.common_tools.abq_tools.fetch_hist(odb, step_name, node_name, hist_out_name)[source]

Return a history output from an odb

Parameters:
  • odb (str) – odb filename (without the extension)
  • step_name (str) – Name of the step containing the history output
  • node_name (str) – Name of the regarded node
  • hist_out_name (str) – Name of the history output
Returns:

Return type:

tuple

Pabq.common_tools.abq_tools.field_max(odb, result)[source]

Look for the max value in a field output.

Scan a field output on an abaqus result database and return the maximum value

Parameters:
  • odb (class) – Abaqus model containing the field results
  • result (class) – Field output result to search for max

Notes

References

Pabq.common_tools.abq_tools.find(name, path)[source]

Search for a file in a directory tree

Parameters:
  • name (str) – filename
  • path (str) – Root of the directory tree
Pabq.common_tools.abq_tools.find_odb_in_cwd(all=False)[source]
Pabq.common_tools.abq_tools.get_block_position(model, block_prefix)[source]

Find a string and return the block number.

Method to find a given string on the keywords file of a model and return an integer for the position of the first occurrence.

Parameters:
  • model (class) – Abaqus model to search for keyword
  • block_prefix (string) – String to look for

Notes

References

Pabq.common_tools.abq_tools.history_max(odb_obj, step_name)[source]

Look for the max value in a history output.

Scan a history output on a step on an abaqus result database and return the maximum value. Currently, it returns LPF, load and disp history outputs. To be generalised.

Parameters:
  • odb_obj (Abaqus database object) – Abaqus model filename.
  • step_name (str) – Name of the step
Pabq.common_tools.abq_tools.isnumber(x)[source]

Checks if the given object is numeric.

Either float or int will return True. In any other case the return is False.

Parameters:x (any) – Object to be checked.
Returns:
Return type:boolean.
Pabq.common_tools.abq_tools.open_odb(odb_path)[source]

A more sophisticated open odb function.

Parameters:odb_path (string) – Path and filename of the database (without the ‘.odb’ extension)

Notes

References

Pabq.common_tools.abq_tools.write_all_history(odb, fh)[source]

Pabq.common_tools.design_of_joints module

class Pabq.common_tools.design_of_joints.TjointRHS(geometry=None, cs_props=None, material=None, struct_props=None, bc_loads=None)[source]

Bases: Pabq.common_tools.steel_design.Part

Properties and calculations of a theoretical (ideal geometry) polygonal column.

__init__(geometry=None, cs_props=None, material=None, struct_props=None, bc_loads=None)[source]
static calc_c_f(material)[source]

Calculate the material factor Q_f acc. to the proposals of prEN1993-1-8 tb.9.1.

static calc_f_b(h_c, t_c, e_modulus, f_yield, b_curve)[source]
static calc_m_ip_bf_rd_draft(material, t_c, b_b, b_c, t_b, w_pl_b, h_b, gamma_m5)[source]
static calc_m_ip_cf_rd_draft(beta, n_prc, t_c, h_b, b_c, material, gamma_m5)[source]
static calc_m_ip_cw_rd_draft(beta, n_prc, material, t_c, h_c, h_b, b_curve, gamma_m5)[source]
static calc_q_f(beta, n_prc)[source]
classmethod from_geometry(column, beam, weld=None, material_col=None, material_beam=None, n_prc_col=None, n_prc_beam=None, length_c=None, length_b=None, production_type=None)[source]
classmethod from_slend_beta(nd_width_col, c_width, nd_width_beam, beta, n_prc_col=None, n_prc_beam=None, material_col=None, material_beam=None, length_c=None, length_b=None)[source]
classmethod from_slend_beta_m_prc_j(nd_width_col, c_width, nd_width_beam, beta, m_prc_col, n_prc_beam=None, material_col=None, material_beam=None, length_c=None, length_b=None)[source]

NOTE: This method is obsolete and should not be used. I keep it only for legacy reasons. The method calculated a joints based on the utilisation ratio normalised for the column resistance. Instead, It was decided that it makes more sense to calculate the utilisation ratio normalised for the moment resistance of the joint with zero axial load.

classmethod from_slend_beta_m_prc_jj(nd_width_col, c_width, nd_width_beam, beta, m_prc_col, n_prc_beam=None, material_col=None, material_beam=None, length_c=None, length_b=None)[source]

Alternative constructor for a T-joint for a given utilisation ratio of the joint moment resistance, normalised against the moment resistance of the same joint configuration for zero axial compression of the column.

Pabq.common_tools.design_of_joints.test()[source]

Pabq.common_tools.factorial_exec module

Pabq.common_tools.factorial_exec.divisors(n)[source]

Divisors of an integer.

Return all the possible divisors for a given integer.

Parameters:n (int) –
Returns:
Return type:int

Notes

Pabq.common_tools.factorial_exec.dummyfunc(*args, **kargs)[source]

Null function used for testing run_factorial()

Pabq.common_tools.factorial_exec.get_queued(filename)[source]

Read a batch info file and return the indexes of the queued jobs.

Parameters:filename (str) – Filename of the batch status file.
Pabq.common_tools.factorial_exec.goto_next_queued(filename)[source]

Read a batch info file and return the indexes of the queued jobs.

Parameters:filename (str) – Filename of the batch status file.
Pabq.common_tools.factorial_exec.run_factorial(prj_name, exec_func, func_args=None, func_kargs=None, p_args=None, p_kargs=None, mk_subdirs=None, del_subdirs=None)[source]

Run a function for a full factorial table of input parameters.

Creates a full factorial matrix for a given list of parameters and executes a function for each combination. A list of values is needed for each parameter.

Parameters:
  • prj_name (str) – Name of the parametric project. Used for directory name and filenames.
  • exec_func (function) – Function to be executed parametrically.
  • func_args (list, optional) – A list containing the arguments to be passed to the function, both parametric and static.
  • func_kargs (dict, optional) – A dictionaty of all the keyword arguments to be passed to the function, both parametric and static.
  • p_args (list of integers, optional) – A list of integers, indicating the positions on the func_args list of the arguments for which the parametric matrix is composed. On the positions indicated by p_args, the func_args must contain list items.
  • p_kargs (list of strings, optional) – A list of the keys of all the keyword arguments that need to be executed parametrically, similarly to p_args.
  • mk_subdirs (bool, optional) – If True, each combination is executed in a different, automatically created, subdirectory. Useful when the executed job generates files on the working directory. If subdirectory with the same name exists, the job will enter and execute in the directory ignoring pre-existing files. Default is False (run all jobs in the current directory)
  • del_subdirs (bool, optional) – Remove the subdirectories for the individual jobs and keep only the results summary. This argument is used in combination with the mk_subdirs. Default is False (do not remove).
Returns:

List item containing the results of all the executed runs

Return type:

list

Pabq.common_tools.factorial_exec.subdir_crawler(exec_func, func_args=None, func_kargs=None, prj_name=None)[source]

Execute function in all subdirs.

Parameters:
  • exec_func (function) – Function to be executed parametrically.
  • func_args (list, optional) – List of arguments for the function. No arguments by default.
  • func_kargs (dict, optional) – Dictionary of keyword arguments for the function. No keyword arguments by default.
  • prj_name (str, optional) – Project name.
Pabq.common_tools.factorial_exec.update_job_status(filename, job_nr, new_status)[source]

Change status of a job number on a batch status file.

Parameters:
  • filename (str) – Filename of the batch status file.
  • job_nr (int) – Index of the job to be updated.
  • new_status (str) – String to be written as new status.

Pabq.common_tools.steel_design module

Module for the structural design of steel members.

class Pabq.common_tools.steel_design.BCs(bcs)[source]
__init__(bcs)[source]
classmethod from_hinged()[source]
class Pabq.common_tools.steel_design.CsLoads(axial, shear, moment)[source]
__init__(axial, shear, moment)[source]
class Pabq.common_tools.steel_design.CsProps(area=None, a_eff=None, xc=None, yc=None, moi_xx=None, moi_yy=None, moi_xy=None, theta_principal=None, moi_1=None, moi_2=None)[source]

Cross-section properties.

Class for the mass properties of cross-sections. The properties can be calculated using the from_cs_sketch() method.

Parameters:
  • area (float) – Cross-sectional area.
  • xc (float) – x coordinate of the gravity center.
  • yc (float) – y coordinate of the gravity center.
  • moi_xx (float) – Moment of inertia around x axis.
  • moi_yy (float) – Moment of inertia around y axis.
  • moi_xy (float) – Polar moment of inertia.
  • theta_principal (float) – Rotation of the principal axes.
  • moi_1 (float) – Moment of inertia around the major axis.
  • moi_2 (float) – Moment of inertia around the minor axis.
__init__(area=None, a_eff=None, xc=None, yc=None, moi_xx=None, moi_yy=None, moi_xy=None, theta_principal=None, moi_1=None, moi_2=None)[source]
classmethod from_cs_sketch(cs_sketch)[source]

Cross-section calculator.

Alternative constructor, calculates mass properties of a given sc sketch and returns a CsProps object.

Parameters:cs_sketch (CsSketch object) –

Notes

class Pabq.common_tools.steel_design.CsRHS(width=None, height=None, thick=None, b_flat=None, h_flat=None, hcflat=None, area=None, a_eff=None, xc=None, yc=None, moi_xx=None, moi_yy=None, moi_xy=None, theta_principal=None, moi_1=None, moi_2=None, w_pl=None, w_el=None, alfa_flange=None, psi_flange=None, alfa_web=None, psi_web=None, material=None, m_n_rd=None, m_pl_rd=None, m_el_rd=None, m_prc=None, cs_class=None, nd_width_web=None, nd_width_flange=None)[source]

Bases: Pabq.common_tools.steel_design.CsProps

__init__(width=None, height=None, thick=None, b_flat=None, h_flat=None, hcflat=None, area=None, a_eff=None, xc=None, yc=None, moi_xx=None, moi_yy=None, moi_xy=None, theta_principal=None, moi_1=None, moi_2=None, w_pl=None, w_el=None, alfa_flange=None, psi_flange=None, alfa_web=None, psi_web=None, material=None, m_n_rd=None, m_pl_rd=None, m_el_rd=None, m_prc=None, cs_class=None, nd_width_web=None, nd_width_flange=None)[source]
static calc_area(hhhh, bbbb, thick)[source]
static calc_eff_width(bbbb, thick, psi, epsilon, internal=True)[source]
static calc_flat_width_radius(hhhh, bbbb, thick)[source]
static calc_w_pl(hflat, bflat, thick, h2m, r_in, r_out, f_yield)[source]
static class1(nd_width, alfa)[source]
static class4(nd_width, psi)[source]
static classification(nd_width, alfa, psi)[source]
cs_classification(alfa_web=None, psi_web=None)[source]
classmethod from_n_prc(width, height, thick, material=None, n_prc=None)[source]
static plastic_allowed(nd_width, alfa)[source]
static radius_from_thickness(thickness)[source]
static rhs_moi(bflat, b_eff, hflat, cog_y, he1, he2, h_tension, thick)[source]
class Pabq.common_tools.steel_design.CsSketch(nodes, elem)[source]

Cross-section geometry.

Parameters:
  • nodes (list) – List of points.
  • elem (list) – Element connectivity.
__init__(nodes, elem)[source]
class Pabq.common_tools.steel_design.Geometry(cs_sketch, length, thickness)[source]

Structural element geometry.

Class for the geometric properties of a structural element.

Parameters:
  • cs_sketch (CsSketch object) – Cross-section sketch.
  • length (float) – Member’s length.
__init__(cs_sketch, length, thickness)[source]
class Pabq.common_tools.steel_design.Material(e_modulus, poisson, f_y_nominal, f_y_real=None, f_u_nominal=None, plasticity=None)[source]

Material properties.

Parameters:
  • e_modulus (float) – Modulus of elasticity.
  • poisson (float) – Poisson’s ratio.
  • f_yield (float) – Yield stress
  • plasticity (tuple) – Plasticity table (tuple of stress-plastic strain pairs). By default, no plasticity is considered.
__init__(e_modulus, poisson, f_y_nominal, f_y_real=None, f_u_nominal=None, plasticity=None)[source]
classmethod from_nominal(nominal_strength=None)[source]

Alternative constructor creating a steel material from a given nominal strength.

Parameters:nominal_strength (str) – Steel quality, given in the form of e.g. “S355”
static plastic_table(nominal=None)[source]

Plasticity tables.

Returns a tuple with plastic stress-strain curve values for different steels given a steel name, e.g ‘S355’

Parameters:nominal (string [optional]) – Steel name. Default value, ‘S355’

Notes

References

class Pabq.common_tools.steel_design.Part(geometry=None, cs_props=None, material=None, struct_props=None, bc_loads=None)[source]

Structural part.

Class describing a structural part, including geometry, boundary conditions loads and resistance.

Parameters:
  • geometry (Geometry object, optional) –
  • cs_props (CsProps object, optional) –
  • material (Material object, optional) –
  • struct_props (StructProps object, optional) –
  • bc_loads (BCs object, optional) –
__init__(geometry=None, cs_props=None, material=None, struct_props=None, bc_loads=None)[source]
class Pabq.common_tools.steel_design.SimplySupportedPlate(width, thickness, length, f_y, psi=None)[source]
__init__(width, thickness, length, f_y, psi=None)[source]
class Pabq.common_tools.steel_design.StructProps(t_classification=None, p_classification=None, pc_classification=None, lmbda_y=None, lmbda_z=None, n_cr_plate=None, sigma_cr_plate=None, n_pl_rd=None, n_b_rd_plate=None, sigma_b_rd_plate=None, sigma_cr_shell=None, sigma_cr_shell_new=None, lenca=None, lenca_new=None, n_cr_shell=None, n_cr_shell_new=None, sigma_b_rk_shell=None, sigma_b_rk_shell_new=None, n_b_rk_shell=None, n_b_rk_shell_new=None, sigma_b_rd_shell=None, sigma_b_rd_shell_new=None, n_b_rd_shell=None, n_b_rd_shell_new=None, n_cr_platec=None, sigma_cr_platec=None, n_pl_rdc=None, sigma_b_rd_platec=None, n_b_rd_platec=None)[source]

Structural properties of a member.

Parameters:
  • t_classification (float, optional) – Classification of a tube, d/(t^2*e)
  • p_classification (float, optional) – Classification of a plate, c/(t*e)
  • lmbda_y (float, optional) – Flexural slenderness on the strong axis.
  • lmbda_z (float, optional) – Flexural slenderness on the weak axis.
  • n_pl_rd (float, optional) – Plastic axial compression resistance.
  • n_b_rd_shell (float, optional) – Shell buckling resistance
__init__(t_classification=None, p_classification=None, pc_classification=None, lmbda_y=None, lmbda_z=None, n_cr_plate=None, sigma_cr_plate=None, n_pl_rd=None, n_b_rd_plate=None, sigma_b_rd_plate=None, sigma_cr_shell=None, sigma_cr_shell_new=None, lenca=None, lenca_new=None, n_cr_shell=None, n_cr_shell_new=None, sigma_b_rk_shell=None, sigma_b_rk_shell_new=None, n_b_rk_shell=None, n_b_rk_shell_new=None, sigma_b_rd_shell=None, sigma_b_rd_shell_new=None, n_b_rd_shell=None, n_b_rd_shell_new=None, n_cr_platec=None, sigma_cr_platec=None, n_pl_rdc=None, sigma_b_rd_platec=None, n_b_rd_platec=None)[source]
Pabq.common_tools.steel_design.bolt2washer(m_bolt)[source]

Washer diameter.

Return the diameter of the washer for a given bolt diameter. The calculation is based on a function derived from linear regression on ENXXXXXXX[REF].

Parameters:m_bolt (float) – Bolt diameter
Pabq.common_tools.steel_design.bolt_grade2stress(bolt_grade)[source]

Convert bolt grade to yield and ultimate stress.

Standard designation for bolt grade as a decimal is converted to yield and ultimate stress values in MPa. In the standard bolt grade designation, the integer part of the number represents the ultimate stress in MPa/100 and the decimal part is the yield stress as a percentage of the ultimate (e.g 4.6 is f_u = 400, f_y = 400 * 0.6 = 240).

Parameters:bolt_grade (float) –
Returns:tuple
Return type:(f_ultimate, f_yield)
Pabq.common_tools.steel_design.bolt_min_dist(d_0)[source]

Minimum bolt spacing.

Parameters:d_0
Returns:
Pabq.common_tools.steel_design.calc_a_eff(thickness, width, f_yield, psi=None)[source]

Plastic design resistance of a plate.

Calculates the resistance of a plate according to EN1993-1-1 and EN1993-1-5. The plate is assumed simply supported.

Parameters:
  • thickness (float) – [mm] Plate thickness
  • width (float) – [mm] Plate width
  • f_yield (float) – [MPa] Yield stress
  • psi (float, optional) – [_] Ratio of the min over max stress for a linear distribution, (sigma_min / sigma_max) Default = 1, which implies a uniform distribution
Returns:

[N] Plastic design resistance

Return type:

float

Notes

To be extended to include cantilever plate (outstand members)

References

[1]Eurocode 3: Design of steel structures - Part 1-1: General rules and rules for buildings. Brussels: CEN, 2005.
[2]Eurocode 3: Design of steel structures - Part 1-5: Plated structural elements. Brussels: CEN, 2005.
Pabq.common_tools.steel_design.calc_a_eff_new(thickness, width, f_yield, psi=None)[source]

Plastic design resistance of a plate.

Calculates the resistance of a plate according to EN1993-1-1 and EN1993-1-5. The plate is assumed simply supported.

Parameters:
  • thickness (float) – [mm] Plate thickness
  • width (float) – [mm] Plate width
  • f_yield (float) – [MPa] Yield stress
  • psi (float, optional) – [_] Ratio of the min over max stress for a linear distribution, (sigma_min / sigma_max) Default = 1, which implies a uniform distribution
Returns:

[N] Plastic design resistance

Return type:

float

Notes

To be extended to include cantilever plate (outstand members)

References

[1]Eurocode 3: Design of steel structures - Part 1-1: General rules and rules for buildings. Brussels: CEN, 2005.
[2]Eurocode 3: Design of steel structures - Part 1-5: Plated structural elements. Brussels: CEN, 2005.
Pabq.common_tools.steel_design.chi_flex(lmda, b_curve)[source]

Flexural buckling reduction factor.

Claculates the reduction factor, chi, according to EN1993-1-1 6.3.1.2

Parameters:
  • length (float) – [mm] Column length
  • area (float) – [mm^2] Cross section area
  • moi_y (float) – [mm^4] Moment of inertia
  • f_yield (float) – [MPa] Yield stress.
  • b_curve (str) – [_] Name of the buckling curve as obtained from Table 6.2 of [1]. Valid options are {‘a0’, ‘a’, ‘b’, ‘c’, ‘d’}
  • kapa_bc (float, optional) – [_] length correction for the effect of the boundary conditions. Default = 1, which implies simply supported column
Returns:

[_] Reduction factor.

Return type:

float

References

[1]Eurocode 3: Design of steel structures - Part 1-1: General rules and rules for buildings. Brussels: CEN, 2005.
Pabq.common_tools.steel_design.f_b_rd(bolt_size, bolt_grade, thickness, steel_grade, f_yield, distances, d_0)[source]

Connection bearing capacity.

Calculates the bearing capacity of a single bolt on a plate. The distances to the plate edges/other bolts are described :param bolt_size: :param bolt_grade: :param thickness: :param steel_grade: :param f_yield: :param distances: :param d_0: :return:

Pabq.common_tools.steel_design.f_v_rd(bolt_size, bolt_grade, shear_threaded=None, gamma_m2=None)[source]

Bolt’s shear resistance.

Calculates the shear resistance of single bolt for one shear plane as given in table 3.4 of EC3-1-8.

Parameters:
  • bolt_size (float) – Diameter of the non-threaded part (nominal bolt size e.g. M16 = 16)
  • bolt_grade (float) – Bolt grade in standard designation format (see documentation of bolt_grade2stress())
  • shear_threaded (bool, optional) – Designates if the shear plane is on the threaded portion or not. Default in False, which implies shearing of the non-threaded portion
  • gamma_m2 (float, optional) – Safety factor. Default value is 1.25
Returns:

Return type:

float

Pabq.common_tools.steel_design.f_weld_paral()[source]
Pabq.common_tools.steel_design.f_weld_perp(l_w, alpha, f_y, f_u, gamma_m2=None)[source]
Pabq.common_tools.steel_design.fabclass_2_umax(fab_class)[source]

Maximum displacement for a given fabrication class acc. to EC3-1-6.

Parameters:fab_class ({"fcA", "fcB", "fcC"}) –
Pabq.common_tools.steel_design.imp_factor(b_curve)[source]

Imperfection factor.

Returns the imperfection factor for a given buckling curve. The values are taken from Table 6.1 of EN1993-1-1 [1]

Parameters:b_curve ({'a0', 'a', 'b', 'c', 'd'}) – [_] Name of the buckling curve as obtained from Table 6.2 of [1].
Returns:[_] Imperfection factor.
Return type:float

References

[1]Eurocode 3: Design of steel structures - Part 1-1: General rules and rules for buildings. Brussels: CEN, 2005.
Pabq.common_tools.steel_design.lmbda_flex(length, area, moi_y, f_yield, kapa_bc=None, e_modulus=None)[source]

Flexural slenderness.

Calculates the slenderness of a columne under pure compression. Euler’s critical load is used.

Parameters:
  • length (float) – [mm] Column length
  • area (float) – [mm^2] Cross section area
  • moi_y (float) – [mm^4] Moment of inertia
  • kapa_bc (float, optional) – [_] length correction for the effect of the boundary conditions. Default = 1, which implies simply supported column
  • e_modulus (float, optional) – [MPa] Modulus of elasticity Default = 210000., typical value for steel
  • f_yield (float, optional) – [MPa] yield stress. Default = 380., brcause this value was used extencively while the function was being written. To be changed to 235.
Returns:

[_] Member slenderness

Return type:

float

Pabq.common_tools.steel_design.mean_list(numbers)[source]

Mean value.

Calculate the average for a list of numbers.

Parameters:numbers (list) –

Notes

References

Pabq.common_tools.steel_design.n_b_rd(length, area, moi_y, f_yield, b_curve, kapa_bc=None, gamma_m1=None)[source]

Flexural buckling resistance.

Verifies the resistance of a column against flexural buckling according to EN1993-1-1 6.3.1.1.

Parameters:
  • length (float) – [mm] Column length
  • area (float) – [mm^2] Cross section area
  • moi_y (float) – [mm^4] Moment of inertia
  • f_yield (float) – [MPa] Yield stress.
  • b_curve (str) – [_] Name of the buckling curve as obtained from Table 6.2 of [1]. Valid options are: {‘a0’, ‘a’, ‘b’, ‘c’, ‘d’}
  • kapa_bc (float, optional) – [_] Length correction for the effect of the boundary conditions. Default = 1, which implies simply supported column
  • gamma_m1 (float, optional) – [_] Partial safety factor. Default = 1.
Returns:

[N] Buckling resistance.

Return type:

float

References

[1]Eurocode 3: Design of steel structures - Part 1-1: General rules and rules for buildings. Brussels: CEN, 2005.
Pabq.common_tools.steel_design.n_cr_flex(length, moi_y, kapa_bc=None, e_modulus=None)[source]

Euler’s critical load.

Calculates the critical load for flexural buckling of a given column. A single direction is considered. If more directions are required (e.g the two principal axes), the function has to be called multiple times. For torsional mode critical load use n_cr_tor(), and for flexural-torsional critical load use n_cr_flex_tor()

Parameters:
  • length (float) – [mm] Column length.
  • moi_y (float) – [mm^4] Moment of inertia.
  • kapa_bc (float, optional) – [_] length correction for the effect of the boundary conditions. Default = 1, which implies simply supported column.
  • e_modulus (float, optional) – [MPa] Modulus of elasticity. Default = 210000., typical value for steel.
Returns:

[N] Critical load.

Return type:

float

Pabq.common_tools.steel_design.n_cr_flex_tor(length, area, moi_y, moi_z, moi_yz, moi_torsion, moi_warp, y_sc=None, z_sc=None, e_modulus=None, poisson=None)[source]

Flexural-Torsional elastic critical load

Calculates the critical load for flexural-torsional buckling of a column with hinged ends. The returned value is the minimum of the the three flexural-torsional and the indepedent torsional mode, as dictated in EN1993-1-1 6.3.1.4 [1]. (for further details, see Notes).

Parameters:
  • length (float) – [mm] Column length.
  • area (float) – [mm^2] Cross-sectional area.
  • moi_y (float) – [mm^4] Moment of inertia around y-axis. y-axis on the centre of gravity but not necessarily principal.
  • moi_z (float) – [mm^4] Moment of inertia around z-axis. z-axis on the centre of gravity but not necessarily principal.
  • moi_yz (float) – [mm^4] Product of inertia.
  • moi_torsion (float) – [mm^4] Saint Venant constant.
  • moi_warp (float) – [mm^6] Torsion constant.
  • y_sc (float, optional) – [mm] Distance on y-axis of the shear center to the origin. Default = 0, which implies symmetric profile
  • z_sc (float, optional) – [mm] Distance on z-axis of the shear center to the origin. Default = 0, which implies symmetric profile
  • e_modulus (float, optional) – [MPa] Modulus of elasticity. Default = 210000., general steel.
  • poisson (float, optional) – [_] Young’s modulus of elasticity. Default = 0.3, general steel.
Returns:

[N] Flexural-torsional critical load.

Return type:

float

Notes

The flexural-torsional critical loads are calculated as a combination of the three independent overall buckling modes: i) flexural around the major axis, ii) flexural around the minor axis, iii) Torsional buckling (around x-axis).

First, the cs-properties are described on the principal axes. Then the three independent modes are calculated. The combined flexural-torsional modes are calculated as the roots of a 3rd order equation, as given in [1], [2]. The minimum of the torsional and the three combined modes is returned (the two independent flexural modes are not considered; for critical load of pure flexural mode use ‘n_cr_flex’).

References

..[1]N. S. Trahair, Flexural-torsional buckling of structures, vol. 6. CRC Press, 1993. ..[2]NS. Trahair, MA. Bradford, DA. Nethercot, and L. Gardner, The behaviour and design of steel structures to EC3, 4th edition. London; New York: Taylor & Francis, 2008.

Pabq.common_tools.steel_design.n_cr_shell(thickness, radius, length)[source]

Critical compressive load for cylindrical shell.

Calculates the critical load for a cylindrical shell under pure compression and assumes uniform stress distribution. Calculation according to EN1993-1-6 [1], Annex D.

Parameters:
  • thickness (float) – [mm] Shell thickness
  • radius (float) – [mm] Cylinder radius
  • length (float) – [mm] Cylnder length
Returns:

[N] Critical load

Return type:

float

References

[1]Eurocode 3: Design of steel structures - Part 1-6: Strength and stability of shell structures. Brussels: CEN, 2006.
Pabq.common_tools.steel_design.n_cr_shell_new(thickness, radius, length)[source]

Critical compressive load for cylindrical shell.

Calculates the critical load for a cylindrical shell under pure compression and assumes uniform stress distribution. Calculation according to EN1993-1-6 [1], Annex D.

Parameters:
  • thickness (float) – [mm] Shell thickness
  • radius (float) – [mm] Cylinder radius
  • length (float) – [mm] Cylnder length
Returns:

[N] Critical load

Return type:

float

References

[1]Eurocode 3: Design of steel structures - Part 1-6: Strength and stability of shell structures. Brussels: CEN, 2006.
Pabq.common_tools.steel_design.n_cr_tor(length, area, moi_y0, moi_z0, moi_torsion, moi_warp, y_0=None, z_0=None, e_modulus=None, poisson=None)[source]

Torsional elastic critical load

Calculates the torsional elastic critical load for a hinged column. The input values are refering to the principal axes. For flexural buckling (Euler cases) use n_cr_flex. For the combined flexural-torsional modes use n_cr_flex_tor.

Parameters:
  • length (float) – [mm] Column length.
  • area (float) – [mm^2] Cross-sectional area.
  • moi_y0 (float) – [mm^4] Moment of inertia around y-axis. y-axis on the centre of gravity but not necessarily principal.
  • moi_z0 (float) – [mm^4] Moment of inertia around z-axis. z-axis on the centre of gravity but not necessarily principal.
  • moi_torsion (float) – [mm^4] Saint Venant constant.
  • moi_warp (float) – [mm^6] Torsion constant.
  • y_0 (float, optional) – [mm] Distance on y-axis of the shear center to the origin. Default = 0, which implies symmetric profile
  • z_0 (float, optional) – [mm] Distance on z-axis of the shear center to the origin. Default = 0, which implies symmetric profile
  • e_modulus (float, optional) – [MPa] Modulus of elasticity. Default = 210000., general steel.
  • poisson (float, optional) – [_] Young’s modulus of elasticity. Default = 0.3, general steel.
Returns:

[N] Flexural-torsional critical load.

Return type:

float

Notes

The torsional critical load is calculated as:

\[N_{cr, tor} = {GJ + {\pi^2EI_w\over{L^2}}\over{r^2}}\]
Where:

\(E\) : Elasticity modulus

\(G\) : Shear modulus

\(J\) : Torsional constant (Saint Venant)

\(I_w\) : Warping constant

\(r^2=(moi_y + moi_z)/A + x_0^2 + y_0^2\)

\(x_0, y_0\) : Shear centre coordinates on the principal coordinate system

References

..[1]N. S. Trahair, Flexural-torsional buckling of structures, vol. 6. CRC Press, 1993. ..[2]NS. Trahair, MA. Bradford, DA. Nethercot, and L. Gardner, The behaviour and design of steel structures to EC3, 4th edition. London; New York: Taylor & Francis, 2008.

Pabq.common_tools.steel_design.plate_class(thickness, width, f_yield)[source]

Plate classification.

Returns the class for a given plate, according to EN1993-1-1. Currently works for simply supported plates under pure compression.

Parameters:
  • thickness (float) – [mm] Plate thickness
  • width (float) – [mm] Plate width
  • f_yield (float) – [MPa] Yield stress
Returns:

[_] Class number

Return type:

int

Notes

To be extended to include the rest of the cases of Table 5.3 [1]. Members under combined axial and bending and outstand members.

References

[1]Eurocode 3: Design of steel structures - Part 1-1: General rules and rules for buildings. Brussels: CEN, 2005
Pabq.common_tools.steel_design.plate_class_new(thickness, width, f_yield)[source]

Plate classification acc.to final draft of EC3-1-1.

Returns the class for a given plate, according to EN1993-1-1. Currently works for simply supported plates under pure compression.

Parameters:
  • thickness (float) – [mm] Plate thickness
  • width (float) – [mm] Plate width
  • f_yield (float) – [MPa] Yield stress
Returns:

[_] Class number

Return type:

int

Notes

To be extended to include the rest of the cases of Table 5.3 [1]. Members under combined axial and bending and outstand members.

References

[1]Eurocode 3: Design of steel structures - Part 1-1: General rules and rules for buildings. Brussels: CEN, 2005
Pabq.common_tools.steel_design.shell_length_category(radius, thickness, length)[source]

Return the length gategory of a cylinder acc. to EC3-1-6 D.1.2.1

Pabq.common_tools.steel_design.shell_length_category_new(radius, thickness, length)[source]

Return the length gategory of a cylinder acc. to EC3-1-6 D.1.2.1

Pabq.common_tools.steel_design.sigma_cr_plate(thickness, width, psi=None, young=210000, poisson=0.3)[source]

Critical stress of a plate.

Calculates the critical stress for a simply supported plate.

Parameters:
  • thickness (float) – [mm] Plate thickness
  • width (float) – [mm] Plate width
  • psi (float, optional) – [_] Ratio of the min over max stress for a linear distribution, (sigma_min / sigma_max) Default = 1, which implies a uniform distribution
  • young (float, optional) – [MPa] Young’s modulus of elasticity. Default value is 210000
  • poisson (float, optional) – [_] Poisson ratio, default value is 0.3
Returns:

[MPa] Plate critical stress

Return type:

float

Notes

To be extended to include cantilever plate (outstand members)

References

[1]Eurocode 3: Design of steel structures - Part 1-5: Plated structural elements. Brussels: CEN, 2005.
Pabq.common_tools.steel_design.sigma_x_rcr(thickness, radius, length, kapa_bc=None, e_modulus=None)[source]

Critical meridional stress for cylindrical shell.

Calculates the critical load for a cylindrical shell under pure compression and assumes uniform stress distribution. Calculation according to EN1993-1-6 [1], Annex D.

Parameters:
  • thickness (float) – [mm] Shell thickness
  • radius (float) – [mm] Cylinder radius
  • length (float) – [mm] Cylnder length
Returns:

List of 2 elements: a) float, Critical load [N] b) string, length category

Return type:

list

References

[1]Eurocode 3: Design of steel structures - Part 1-6: Strength and stability of shell structures. Brussels: CEN, 2006.
Pabq.common_tools.steel_design.sigma_x_rcr_new(thickness, radius, length, kapa_bc=None, e_modulus=None)[source]

Critical meridional stress for cylindrical shell.

Calculates the critical load for a cylindrical shell under pure compression and assumes uniform stress distribution. Calculation according to EN1993-1-6 [1], Annex D.

Parameters:
  • thickness (float) – [mm] Shell thickness
  • radius (float) – [mm] Cylinder radius
  • length (float) – [mm] Cylnder length
Returns:

List of 2 elements: a) float, Critical load [N] b) string, length category

Return type:

list

References

[1]Eurocode 3: Design of steel structures - Part 1-6: Strength and stability of shell structures. Brussels: CEN, 2006.
Pabq.common_tools.steel_design.sigma_x_rd(thickness, radius, length, f_y_k, fab_quality=None, gamma_m1=None, flex_kapa=None)[source]

Meridional design buckling stress.

Calculates the meridional buckling stress for a cylindrical shell according to EN 1993-1-6 [1]. Flexural buckling is also checked acc to EN 1993-1-1 [2]

Parameters:
  • thickness (float) – [mm] Shell thickness
  • radius (float) – [mm] Cylinder radius
  • length (float) – [mm] Cylnder length
  • f_y_k (float) – [MPa] Characteristic yield strength
  • fab_quality (str, optional) – [_] Fabrication quality class. Accepts: ‘fcA’, ‘fcB’, ‘fcC’ The three classes correspond to .006, .010 and .016 times the width of a dimple on the shell. Default = ‘fcA’, which implies excelent fabrication
  • gamma_m1 (int, optional) – [_] Partial safety factor Default = 1.1
Returns:

[MPa] Meridional buckling stress

Return type:

float

References

[1]Eurocode 3: Design of steel structures - Part 1-6: Strength and stability of shell structures. Brussels: CEN, 2006._
[2]Eurocode 3: Design of steel structures - Part 1-1: General rules and rules for buildings. Brussels: CEN, 2005._
Pabq.common_tools.steel_design.sigma_x_rd_new(thickness, radius, length, f_y_k, fab_quality=None, gamma_m1=None, flex_kapa=None)[source]

Meridional design buckling stress.

Calculates the meridional buckling stress for a cylindrical shell according to the new draft of EN1993-1-6 [1].

Parameters:
  • thickness (float) – [mm] Shell thickness
  • radius (float) – [mm] Cylinder radius
  • length (float) – [mm] Cylnder length
  • f_y_k (float) – [MPa] Characteristic yield strength
  • fab_quality (str, optional) – [_] Fabrication quality class. Accepts: ‘fcA’, ‘fcB’, ‘fcC’ The three classes correspond to .006, .010 and .016 times the width of a dimple on the shell. Default = ‘fcA’, which implies excelent fabrication
  • gamma_m1 (int, optional) – [_] Partial safety factor Default = 1.1
Returns:

[MPa] Meridional buckling stress

Return type:

float

References

[1]Eurocode 3: Design of steel structures - Part 1-6 draft: Strength and stability of shell structures. Brussels: CEN, 2006._
Pabq.common_tools.steel_design.sigma_x_rk(thickness, radius, length, f_y_k, fab_quality=None, flex_kapa=None)[source]

Meridional design buckling stress.

Calculates the meridional buckling stress for a cylindrical shell according to EN1993-1-6 [1].

Parameters:
  • thickness (float) – [mm] Shell thickness
  • radius (float) – [mm] Cylinder radius
  • length (float) – [mm] Cylnder length
  • f_y_k (float) – [MPa] Characteristic yield strength
  • fab_quality (str, optional) – [_] Fabrication quality class. Accepts: ‘fcA’, ‘fcB’, ‘fcC’ The three classes correspond to .006, .010 and .016 times the width of a dimple on the shell. Default = ‘fcA’, which implies excelent fabrication
  • gamma_m1 (int, optional) – [_] Partial safety factor Default = 1.1
Returns:

[MPa] Meridional buckling stress

Return type:

float

References

[1]Eurocode 3: Design of steel structures - Part 1-6: Strength and stability of shell structures. Brussels: CEN, 2006._
Pabq.common_tools.steel_design.sigma_x_rk_new(thickness, radius, length, f_y_k, fab_quality=None, flex_kapa=None)[source]

Meridional characteristic buckling stress.

Calculates the characteristic meridional buckling stress for a cylindrical shell according to EN1993-1-6 [1].

Parameters:
  • thickness (float) – [mm] Shell thickness
  • radius (float) – [mm] Cylinder radius
  • length (float) – [mm] Cylnder length
  • f_y_k (float) – [MPa] Characteristic yield strength
  • fab_quality (str, optional) – [_] Fabrication quality class. Accepts: ‘fcA’, ‘fcB’, ‘fcC’ The three classes correspond to .006, .010 and .016 times the width of a dimple on the shell. Default = ‘fcA’, which implies excelent fabrication
  • gamma_m1 (int, optional) – [_] Partial safety factor Default = 1.2 (new suggestion from prEN draft)
Returns:

[MPa] Meridional buckling stress

Return type:

float

References

[1]Eurocode 3: Design of steel structures - Part 1-6: Strength and stability of shell structures. Brussels: CEN, 2006._
Pabq.common_tools.steel_design.stress_area(bolt_size, shear_threaded=None)[source]

Shear area of a bolt.

Returns the srea to be used for the calculation of shear resistance of a bolt, either the gross cross-section of the bolt (circle area) or the reduced area of the threaded part of the bolt.

Parameters:
  • bolt_size (float) – Bolt’s diameter.
  • shear_threaded (bool, optional) – Designates if the shear plane is on the threaded portion or not. Default in False, which implies shearing of the non-threaded portion
Returns:

Return type:

float

Notes

Currently, the threaded area is based on an average reduction of the shank area. To be changed to analytic formula.

Pabq.common_tools.steel_design.tube_class(thickness, radius, f_yield)[source]

CHS classification.

Returns the class for a given plate, according to EN1993-1-1. Currently works for simply supported plates under pure compression.

Parameters:
  • thickness (float) – [mm] Plate thickness
  • radius (float) – [mm] Tube radius
  • f_yield (float) – [MPa] Yield stress
Returns:

[_] Class number

Return type:

int

Notes

To be extended to include the rest of the cases of Table 5.3 [1]. Members under combined axial and bending and outstand members.

References

[1]Eurocode 3: Design of steel structures - Part 1-1: General rules and rules for buildings. Brussels: CEN, 2005

Pabq.common_tools.submit_existing module

Module contents