Beam Theory Properties¶
The naming conventions for these functions are as follows:
- Second moment of area:
I
- Section modulus:
W
(after EUROCODE 3, because North American and British/Australian notation for elastic and plastic section modulus both useS
andZ
, but are inverse of each other.- Maximum neutral plane distance:
e_back
for distance to the bow’s back, the tension side.e_belly
for distance to the bow’s belly, the compression side.e
for the larger of the two.
Rectangle¶
Formulas for a rectangular cross-section:
-
pybow.
rect_I
(w, t)¶ Return second moment of area for a rectangular cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(I\)
Return type: float
-
pybow.
rect_W
(w, t)¶ Return section modulus for a rectangular cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(W\)
Return type: float
-
pybow.
rect_e_back
(w, t)¶ Return distance neutral plane to back for a rectangular cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e_{back}\)
Return type: float
-
pybow.
rect_e_belly
(w, t)¶ Return distance neutral plane to belly for a rectangular cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e_{belly}\)
Return type: float
-
pybow.
rect_e
(w, t)¶ Return maximum distance from the neutral plane for a rectangular cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e\)
Return type: float
Ellipse¶
Formulas for a rounded cross-section of variable width and thickness, i.e. an ellipse:
-
pybow.
round_I
(w, t)¶ Return second moment of area for an elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(I\)
Return type: float
-
pybow.
round_W
(w, t)¶ Return section modulus for an elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(W\)
Return type: float
-
pybow.
round_e_back
(w, t)¶ Return distance neutral plane to back for an elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e_{back}\)
Return type: float
-
pybow.
round_e_belly
(w, t)¶ Return distance neutral plane to belly for an elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e_{belly}\)
Return type: float
-
pybow.
round_e
(w, t)¶ Return maximum distance from the neutral plane for an elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e\)
Return type: float
Half-Ellipse (Round Back)¶
Formulas for a semi-elliptic cross-section with the flat side being the belly and the rounded side being the back.
-
pybow.
halfround_I
(w, t)¶ Return second moment of area for a semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(I\)
Return type: float
-
pybow.
halfround_W
(w, t)¶ Return section modulus for a semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(W\)
Return type: float
-
pybow.
halfround_e_back
(w, t)¶ Return distance neutral plane to back for a semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e_{back}\)
Return type: float
-
pybow.
halfround_e_belly
(w, t)¶ Return distance neutral plane to belly for a semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e_{belly}\)
Return type: float
-
pybow.
halfround_e
(w, t)¶ Return maximum distance from the neutral plane for a semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e\)
Return type: float
Half-Ellipse (Flat Back)¶
Formulas for a semi-elliptic cross-section with the flat side being the back and the rounded side being the belly. The name ‘english’ is meant t be an easily recallable mnemonic, deriving from the stereotypical english longbow cross-section being rounded on the belly side.
-
pybow.
english_I
(w, t)¶ Return second moment of area for an inverted semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(I\)
Return type: float
-
pybow.
english_W
(w, t)¶ Return section modulus for an inverted semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(W\)
Return type: float
-
pybow.
english_e_back
(w, t)¶ Return distance neutral plane to back for an inverted semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e_{back}\)
Return type: float
-
pybow.
english_e_belly
(w, t)¶ Return distance neutral plane to belly for an inverted semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e_{belly}\)
Return type: float
-
pybow.
english_e
(w, t)¶ Return maximum distance from the neutral plane for an inverted semi-elliptic cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
Returns: \(e\)
Return type: float
Trapezium¶
Formulas for a trapezoid cross-section with parallel belly and back sides, but with them being of unequal lengths, resulting in a tapered profile. Trapeziums require an additional input argument describing the ratio of back to belly side lengths. A value of 1.0 describes a rectangle, values smaller than 1.0 describe narrowed back sides, values larger than 1.0 describe narrowed belly sides.
-
pybow.
trap_I
(w, t, ratio)¶ Return second moment of area for a traezoidal cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- ratio (float) – Ratio of back to belly side width.
Returns: \(I\)
Return type: float
-
pybow.
trap_W
(w, t, ratio)¶ Return section modulus for a traezoidal cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- ratio (float) – Ratio of back to belly side width.
Returns: \(W\)
Return type: float
-
pybow.
trap_e_back
(w, t, ratio)¶ Return distance neutral plane to back for a traezoidal cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- ratio (float) – Ratio of back to belly side width.
Returns: \(e_{back}\)
Return type: float
-
pybow.
trap_e_belly
(w, t, ratio)¶ Return distance neutral plane to belly for a traezoidal cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- ratio (float) – Ratio of back to belly side width.
Returns: \(e_{belly}\)
Return type: float
-
pybow.
trap_e
(w, t, ratio)¶ Return maximum distance from the neutral plane for a traezoidal cross-section.
Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- ratio (float) – Ratio of back to belly side width.
Returns: \(e\)
Return type: float
Bundle Functions¶
In addition to the functions for single properties, there exists a suite of bundle functions that can provide arbitrary sets of properties with a single convenience function call.
-
pybow.
rect
(w, t, props=['I', 'W', 'e'])¶ Returns the properties listed in
props
for a rectangular cross-section.Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- props (list[str]) – A list of strings denoting the properties to be calculated. Possible string values are the values outlined at the beginning of this chapter. The default values are \(I\), \(W\), and \(e\).
Returns: A list of the desired properties.
Return type: list[float]
-
pybow.
round
(w, t, props=['I', 'W', 'e'])¶ Returns the properties listed in
props
for an elliptic cross-section.Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- props (list[str]) – A list of strings denoting the properties to be calculated. Possible string values are the values outlined at the beginning of this chapter. The default values are \(I\), \(W\), and \(e\).
Returns: A list of the desired properties.
Return type: list[float]
-
pybow.
halfround
(w, t, props=['I', 'W', 'e'])¶ Returns the properties listed in
props
for a semi-elliptic cross-section.Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- props (list[str]) – A list of strings denoting the properties to be calculated. Possible string values are the values outlined at the beginning of this chapter. The default values are \(I\), \(W\), and \(e\).
Returns: A list of the desired properties.
Return type: list[float]
-
pybow.
english
(w, t, props=['I', 'W', 'e'])¶ Returns the properties listed in
props
for an inverted semi-elliptical cross-section.Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- props (list[str]) – A list of strings denoting the properties to be calculated. Possible string values are the values outlined at the beginning of this chapter. The default values are \(I\), \(W\), and \(e\).
Returns: A list of the desired properties.
Return type: list[float]
-
pybow.
trap50
(w, t, props=['I', 'W', 'e'])¶ Returns the properties listed in
props
for a trapezoidal cross-section with ratio \(frac{1}{2}\).Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- props (list[str]) – A list of strings denoting the properties to be calculated. Possible string values are the values outlined at the beginning of this chapter. The default values are \(I\), \(W\), and \(e\).
Returns: A list of the desired properties.
Return type: list[float]
-
pybow.
trap66
(w, t, props=['I', 'W', 'e'])¶ Returns the properties listed in
props
for a trapezoidal cross-section with ratio \(frac{2}{3}\)Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- props (list[str]) – A list of strings denoting the properties to be calculated. Possible string values are the values outlined at the beginning of this chapter. The default values are \(I\), \(W\), and \(e\).
Returns: A list of the desired properties.
Return type: list[float]
-
pybow.
trap75
(w, t, props=['I', 'W', 'e'])¶ Returns the properties listed in
props
for a trapezoidal cross-section with ratio \(frac{3}{4}\).Parameters: - w (float) – Cross-section width.
- t (float) – Cross-section thickness.
- props (list[str]) – A list of strings denoting the properties to be calculated. Possible string values are the values outlined at the beginning of this chapter. The default values are \(I\), \(W\), and \(e\).
Returns: A list of the desired properties.
Return type: list[float]