stanpy.transfer_relation¶
utils¶
gamma_K¶
Top-level package for stanpy.
- stanpy.gamma_K(**s)[source]¶
calculates gamma and K with the beam dictionary see Eq. (1)
- Parameters
**s -- see below
- Keyword Arguments
EI or E and I (
float
) -- Bending stiffnessGA or G and A (
float
) -- Shear stiffnessN (
float
) , defaults to 0 -- Normal Force (compression - negative)
- Returns
gamma, K
- Return type
(float, float)
import stanpy as stp
s = {"EI":32000, "GA":20000, "N":-1000}
gamma, K = stp.gamma_K(**s)
print(gamma, K)
1.0526315789473684 -0.03289473684210526
aj(x)¶
Top-level package for stanpy.
- stanpy.aj(x: numpy.ndarray, n: int = 5)[source]¶
calculates the aj coefficients published by Rubin [Rub93]
- Parameters
x (np.ndarray, int, float or list) -- positions where to calculate the bj values
n (int, optional) -- aj with j from 0 to n (b0, b1, ..., bn) - defaults to 5
- Returns
bj coefficients
- Return type
import stanpy as stp
aj = stp.aj(x=[-1,0,2,3],n=5)
print(aj)
[[0. 0. 0. 0. 0. 0. ]
[1. 0. 0. 0. 0. 0. ]
[1. 2. 2. 1.33333 0.66667 0.26667]
[1. 3. 4.5 4.5 3.375 2.025 ]]
bj(x)¶
Top-level package for stanpy.
- stanpy.bj(x: numpy.ndarray = array([], dtype=float64), n: int = 5, t=50, **s)[source]¶
calculates the bj coefficients for straight beams with constant or non-constant cross sections published by Rubin [Rub93]
- Parameters
x (np.ndarray, optional) -- positions where to calculate the bj values - when empty then bj at position l, defaults to np.array([])
n (int, optional) -- bj with j from 0 to n (b0, b1, ..., bn) - defaults to 5
t (int, optional) -- number of terms t in recursion formular, defaults to 50
- Returns
bj functions
- Return type
for beams with constant crossections [Rub93]:
import stanpy as stp
s = {"EI":32000, "GA":20000, "N":-1000}
bj = stp.bj(x=[-1,0,2,3],**s)
print(bj)
[[0. 0. 0. 0. 0. 0. ]
[1. 0. 0. 0. 0. 0. ]
[0.93493 1.95643 1.97817 1.32459 0.66375 0.26583]
[0.85559 2.85415 4.39007 4.43386 3.34187 2.01078]]
for beams with non-constant crossections [Rub93]:
Note
for the \(\eta_r\) coefficients in (4) see stanpy.cross_section.cs()
import sympy as sym
import stanpy as stp
x = sym.Symbol("x")
E = 32000 # kN/m2
b = 0.2 # m
ha = hb = 0.3 # m
hc = 0.4 # m
l = 4 # m
hx = ha + (hc - hb) / l * x
cs_props = stp.cs(b=b, h=hx)
s = {"E": E, "cs": cs_props, "l": l}
bj = stp.bj(x=[-1,0,2,3,4],**s)
print(bj)
[[[ 0. 0. 0.54545 -0.1898 0.04869]
[ 0. 0. -1.1405 0.59504 -0.20262]]
[[ 1. 0. 0. 0. 0. ]
[ 0. 1. 0. 0. 0. ]]
[[ 1. 2. 1.71429 1.0562 0.50369]
[ 0. 1. 1.59184 1.46939 0.94129]]
[[ 1. 3. 3.6 3.20794 2.24511]
[ 0. 1. 2.16 2.88 2.71603]]
[[ 1. 4. 6. 6.88538 6.29242]
[ 0. 1. 2.625 4.5 5.55731]]]
load_integral(x)¶
Top-level package for stanpy.
- stanpy.load_integral(**s)[source]¶
calculates the load integrals from Rubin [Rub93]
- Parameters
x (np.ndarray, optional) -- positions where to calculate the load integrals - when empty then x is set to length l, defaults to np.array([])
return_all (bool, optional) -- return aj, bj, masks for faster computation, defaults to False
**s -- see below
- Returns
load integrals
- Return type
- Keyword Arguments
EI or E and I (
float
) -- Bending stiffnessGA or G and A (
float
), defaults to np.inf -- Shear stiffnessN (
float
) , defaults to 0 -- normal Force (compression - negative)q (
float
) , defaults to 0 -- load distribution see (9), multiple inputs possiblew_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)psi_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)m_0 (
sympy.polynomial
) , defaults to 0 -- active moment dist \(m\)kappa_0 (
sympy.polynomial
) , defaults to 0 -- active curvature polynomial \(\kappa^e\), multiple inputs possibleq_d (
tuple
) , defaults to (0,0) -- \(q_\Delta\) load distribution (magnitude, position0, position1), multiple inputs possibleP (
tuple
) , defaults to (0,0) -- \(P\) pointload (magnitude, position), multiple inputs possibleM_e (
tuple
) , defaults to (0,0) -- \(M^e\) active Moment (magnitude, position), multiple inputs possiblephi_e (
tuple
) , defaults to (0,0) -- \(\varphi^e\) active angle of rotation (magnitude, position), multiple inputs possibleW_e (
tuple
) , defaults to (0,0) -- \(W^e\) active displacement (magnitude, position), multiple inputs possible
import sympy as sym
import stanpy as stp
x = sym.Symbol("x")
E = 32000 # kN/m2
b = 0.2 # m
ha = hb = 0.3 # m
hc = 0.4 # m
l = 4 # m
q = 5 # kN/m
hx = ha + (hc - hb) / l * x
cs_props = stp.cs(b=b, h=hx)
s = {"E": E, "cs": cs_props, "l": l, "q":q}
li = stp.load_integral(x=[-1,0,2,3,4],**s)
print(li)
[[ 1.69052e-02 -7.03552e-02 0.00000e+00 -0.00000e+00 1.00000e+00]
[ 0.00000e+00 0.00000e+00 0.00000e+00 -0.00000e+00 1.00000e+00]
[ 1.74893e-01 3.26837e-01 -1.00000e+01 -1.00000e+01 1.00000e+00]
[ 7.79550e-01 9.43065e-01 -2.25000e+01 -1.50000e+01 1.00000e+00]
[ 2.18487e+00 1.92962e+00 -4.00000e+01 -2.00000e+01 1.00000e+00]]
tr(x)¶
Top-level package for stanpy.
- stanpy.tr(*args, x: numpy.ndarray = array([], dtype=float64))[source]¶
calculates the transfer relation for one or more input dictionarys
- Parameters
x (np.ndarray, optional) -- _description_, defaults to np.array([])
- Returns
_description_
- Return type
_type_
import stanpy as stp
l = 5 #m
s = {"EI":32000, "GA":20000, "l":l, "q":2}
Fik = stp.tr(s, x=[0,l/2,l])
print(Fik)
[[[ 1.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]
[ 0.00000e+00 0.00000e+00 1.00000e+00 0.00000e+00 0.00000e+00]
[ 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 0.00000e+00]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]
[[ 1.00000e+00 2.50000e+00 -9.76563e-05 4.36198e-05 -2.10775e-04]
[ 0.00000e+00 1.00000e+00 -7.81250e-05 -9.76563e-05 1.62760e-04]
[ 0.00000e+00 0.00000e+00 1.00000e+00 2.50000e+00 -6.25000e+00]
[ 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 -5.00000e+00]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]
[[ 1.00000e+00 5.00000e+00 -3.90625e-04 -4.01042e-04 3.77604e-04]
[ 0.00000e+00 1.00000e+00 -1.56250e-04 -3.90625e-04 1.30208e-03]
[ 0.00000e+00 0.00000e+00 1.00000e+00 5.00000e+00 -2.50000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 -1.00000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]]
import stanpy as stp
l = 5 #m
s1 = {"EI":32000, "GA":20000, "l":l, "q":2}
s2 = {"EI":32000, "GA":20000, "l":l, "q":2}
s = [s1,s2]
Fik = stp.tr(*s, x=np.linspace(0, 2*l, 3))
print(Fik)
[[[ 1.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]
[ 0.00000e+00 1.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00]
[ 0.00000e+00 0.00000e+00 1.00000e+00 0.00000e+00 0.00000e+00]
[ 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 0.00000e+00]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]
[[ 1.00000e+00 5.00000e+00 -3.90625e-04 -4.01042e-04 3.77604e-04]
[ 0.00000e+00 1.00000e+00 -1.56250e-04 -3.90625e-04 1.30208e-03]
[ 0.00000e+00 0.00000e+00 1.00000e+00 5.00000e+00 -2.50000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 -1.00000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]
[[ 1.00000e+00 1.00000e+01 -1.56250e-03 -4.70833e-03 2.10417e-02]
[ 0.00000e+00 1.00000e+00 -3.12500e-04 -1.56250e-03 1.04167e-02]
[ 0.00000e+00 0.00000e+00 1.00000e+00 1.00000e+01 -1.00000e+02]
[ 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 -2.00000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]]
transfer relations constant cross-section¶
load integrals Q (shear-force-representation)¶
Top-level package for stanpy.
- stanpy.calc_load_integral_Q(x: numpy.ndarray = array([], dtype=float64), return_all=False, **s)[source]¶
calculates the load integrals in shear-force-representation from Rubin [Rub93]
- Parameters
x (np.ndarray, optional) -- positions where to calculate the load integrals - when empty then x is set to length l, defaults to np.array([])
return_all (bool, optional) -- return aj, bj, masks for faster computation, defaults to False
**s -- see below
- Returns
load integrals
- Return type
- Keyword Arguments
EI or E and I (
float
) -- Bending stiffnessGA or G and A (
float
), defaults to np.inf -- Shear stiffnessN (
float
) , defaults to 0 -- normal Force (compression - negative)q (
float
) , defaults to 0 -- load distribution see (9), multiple inputs possiblew_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)psi_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)m_0 (
sympy.polynomial
) , defaults to 0 -- active moment dist \(m\)kappa_0 (
sympy.polynomial
) , defaults to 0 -- active curvature polynomial \(\kappa^e\), multiple inputs possibleq_d (
tuple
) , defaults to (0,0) -- \(q_\Delta\) load distribution (magnitude, position0, position1), multiple inputs possibleP (
tuple
) , defaults to (0,0) -- \(P\) pointload (magnitude, position), multiple inputs possibleM_e (
tuple
) , defaults to (0,0) -- \(M^e\) active Moment (magnitude, position), multiple inputs possiblephi_e (
tuple
) , defaults to (0,0) -- \(\varphi^e\) active angle of rotation (magnitude, position), multiple inputs possibleW_e (
tuple
) , defaults to (0,0) -- \(W^e\) active displacement (magnitude, position), multiple inputs possible
import stanpy as stp
l = 5 #m
s = {"EI":32000, "GA":20000, "l":l, "q":2}
load_integral_Q = stp.calc_load_integral_Q(x=[0,l/2,l],**s)
print(load_integral_Q)
[[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]
[-2.10775e-04 1.62760e-04 -6.25000e+00 -5.00000e+00 1.00000e+00]
[ 3.77604e-04 1.30208e-03 -2.50000e+01 -1.00000e+01 1.00000e+00]]
field matrix Q (shear-force-representation)¶
Top-level package for stanpy.
- stanpy.tr_Q(x: numpy.ndarray = array([], dtype=float64), **s)[source]¶
calculates the field matrix in shear-force-representation from Rubin [Rub93] see (21)
- Parameters
x (np.ndarray, optional) -- positions where to calculate the field matrix - when empty then x is set to length l, defaults to np.array([])
**s -- see below
- Returns
field matrix in shear-force-representation
- Return type
- Keyword Arguments
EI or E and I (
float
) -- Bending stiffnessGA or G and A (
float
), defaults to np.inf -- Shear stiffnessN (
float
) , defaults to 0 -- normal Force (compression - negative)q (
float
) , defaults to 0 -- load distribution see (9), multiple inputs possiblew_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)psi_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)m_0 (
sympy.polynomial
) , defaults to 0 -- active moment dist \(m\)kappa_0 (
sympy.polynomial
) , defaults to 0 -- active curvature polynomial \(\kappa^e\), multiple inputs possibleq_d (
tuple
) , defaults to (0,0) -- \(q_\Delta\) load distribution (magnitude, position0, position1), multiple inputs possibleP (
tuple
) , defaults to (0,0) -- \(P\) pointload (magnitude, position), multiple inputs possibleM_e (
tuple
) , defaults to (0,0) -- \(M^e\) active Moment (magnitude, position), multiple inputs possiblephi_e (
tuple
) , defaults to (0,0) -- \(\varphi^e\) active angle of rotation (magnitude, position), multiple inputs possibleW_e (
tuple
) , defaults to (0,0) -- \(W^e\) active displacement (magnitude, position), multiple inputs possible
import stanpy as stp
l = 5 #m
s = {"EI":32000, "GA":20000, "l":l, "q":2}
Fik = stp.tr_Q(**s)
print(Fik)
[[ 1.00000e+00 5.00000e+00 -3.90625e-04 -9.01042e-04 3.77604e-04]
[ 0.00000e+00 1.00000e+00 -3.90625e-04 -9.01042e-04 1.30208e-03]
[ 0.00000e+00 0.00000e+00 1.00000e+00 5.00000e+00 -2.50000e+01]
[ 0.00000e+00 0.00000e+00 -0.00000e+00 1.00000e+00 -1.00000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]
load integrals R (transverse-force-representation)¶
Top-level package for stanpy.
- stanpy.calc_load_integral_R(x: numpy.ndarray = array([], dtype=float64), return_all=False, wv_j: Optional[object] = None, **s)[source]¶
calculates the load integrals in transversal-force-representation from Rubin [Rub93]
- Parameters
x (np.ndarray, optional) -- positions where to calculate the load integrals - when empty then x is set to length l, defaults to np.array([])
return_all (bool, optional) -- return aj, bj, masks for faster computation, defaults to False
**s -- see below
- Returns
load integrals in transversal-force-representation
- Return type
- Keyword Arguments
EI or E and I (
float
) -- Bending stiffnessGA or G and A (
float
), defaults to np.inf -- Shear stiffnessN (
float
) , defaults to 0 -- normal Force (compression - negative)q (
float
) , defaults to 0 -- load distribution see (9), multiple inputs possiblew_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)psi_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)m_0 (
sympy.polynomial
) , defaults to 0 -- active moment dist \(m\)kappa_0 (
sympy.polynomial
) , defaults to 0 -- active curvature polynomial \(\kappa^e\), multiple inputs possibleq_d (
tuple
) , defaults to (0,0) -- \(q_\Delta\) load distribution (magnitude, position0, position1), multiple inputs possibleP (
tuple
) , defaults to (0,0) -- \(P\) pointload (magnitude, position), multiple inputs possibleM_e (
tuple
) , defaults to (0,0) -- \(M^e\) active Moment (magnitude, position), multiple inputs possiblephi_e (
tuple
) , defaults to (0,0) -- \(\varphi^e\) active angle of rotation (magnitude, position), multiple inputs possibleW_e (
tuple
) , defaults to (0,0) -- \(W^e\) active displacement (magnitude, position), multiple inputs possible
import stanpy as stp
l = 5 #m
s = {"EI":32000, "GA":20000, "l":l, "q":2, "N":-1000}
load_integral_R = stp.calc_load_integral_R(x=[0,l/2,l],**s)
print(load_integral_R)
[[ 0.00000e+00 0.00000e+00 0.00000e+00 -0.00000e+00 1.00000e+00]
[-2.17002e-04 1.69574e-04 -6.46700e+00 -5.00000e+00 1.00000e+00]
[ 4.38933e-04 1.31535e-03 -2.45611e+01 -1.00000e+01 1.00000e+00]]
field matrix R (transverse-force-representation)¶
Top-level package for stanpy.
- stanpy.tr_R(x: numpy.ndarray = array([], dtype=float64), **s)[source]¶
calculates the field matrix in transverse-force-representation from Rubin [Rub93] see (26)
- Parameters
x (np.ndarray, optional) -- positions where to calculate the field matrix - when empty then x is set to length l, defaults to np.array([])
**s -- see below
- Returns
field matrix in transverse-force-representation
- Return type
- Keyword Arguments
EI or E and I (
float
) -- Bending stiffnessGA or G and A (
float
), defaults to np.inf -- Shear stiffnessN (
float
) , defaults to 0 -- normal Force (compression - negative)q (
float
) , defaults to 0 -- load distribution see (9), multiple inputs possiblew_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)psi_0 (
float
) , defaults to 0 -- initial deformation see (10), (9)m_0 (
sympy.polynomial
) , defaults to 0 -- active moment dist \(m\)kappa_0 (
sympy.polynomial
) , defaults to 0 -- active curvature polynomial \(\kappa^e\), multiple inputs possibleq_d (
tuple
) , defaults to (0,0) -- \(q_\Delta\) load distribution (magnitude, position0, position1), multiple inputs possibleP (
tuple
) , defaults to (0,0) -- \(P\) pointload (magnitude, position), multiple inputs possibleM_e (
tuple
) , defaults to (0,0) -- \(M^e\) active Moment (magnitude, position), multiple inputs possiblephi_e (
tuple
) , defaults to (0,0) -- \(\varphi^e\) active angle of rotation (magnitude, position), multiple inputs possibleW_e (
tuple
) , defaults to (0,0) -- \(W^e\) active displacement (magnitude, position), multiple inputs possible
import stanpy as stp
l = 5 #m
s = {"EI":32000, "GA":20000, "l":l, "q":2, "N":-1000}
Fik = stp.tr_R(**s)
print(Fik)
[[ 1.00000e+00 4.57087e+00 -3.83767e-04 -4.29130e-04 4.38933e-04]
[ 0.00000e+00 6.16233e-01 -1.35698e-04 -3.83767e-04 1.31535e-03]
[ 0.00000e+00 4.57087e+03 6.16233e-01 4.57087e+00 -2.45611e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 -1.00000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]
transfer relations non constant cross-section¶
load integrals Q (shear-force-representation)¶
Top-level package for stanpy.
- stanpy.calc_load_integral_Q_poly(x: numpy.ndarray = array([], dtype=float64), bj=array([], dtype=float64), aj=array([], dtype=float64), eta=array([], dtype=float64), gamma=array([], dtype=float64), return_bj: bool = False, return_aj: bool = False, return_all: bool = False, wv_j=None, load_j_arrays=None, **s)[source]¶
_summary_
- Parameters
x (np.ndarray, optional) -- _description_, defaults to np.array([])
bj (_type_, optional) -- _description_, defaults to np.array([])
aj (_type_, optional) -- _description_, defaults to np.array([])
eta (_type_, optional) -- _description_, defaults to np.array([])
gamma (_type_, optional) -- _description_, defaults to np.array([])
return_bj (bool, optional) -- _description_, defaults to False
return_aj (bool, optional) -- _description_, defaults to False
return_all (bool, optional) -- _description_, defaults to False
wv_j (_type_, optional) -- _description_, defaults to None
load_j_arrays (_type_, optional) -- _description_, defaults to None
- Returns
_description_
- Return type
_type_
import stanpy as stp
x = sym.Symbol("x")
E = 3*10**7 # kN/m2
b = 0.2 # m
hi = 0.3 # m
hk = 0.4 # m
l = 3 # m
hx = hi + (hk - hi) / l * x
cs_props = stp.cs(b=b, h=hx)
s = {"E": E, "cs": cs_props, "l": l, "q":10}
load_integral_Q = stp.calc_load_integral_Q_poly(x=[0,l/2,l],**s)
print(load_integral_Q)
[[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]
[ 1.18053e-04 2.94153e-04 -1.12500e+01 -1.50000e+01 1.00000e+00]
[ 1.47479e-03 1.73666e-03 -4.50000e+01 -3.00000e+01 1.00000e+00]]
field matrix Q (shear-force-representation)¶
Top-level package for stanpy.
- stanpy.tr_Q_poly(x: numpy.ndarray = array([], dtype=float64), eta: numpy.ndarray = array([], dtype=float64), gamma: numpy.ndarray = array([], dtype=float64), rotation_axis='y', **s)[source]¶
_summary_
- Parameters
x (np.ndarray, optional) -- _description_, defaults to np.array([])
eta (np.ndarray, optional) -- _description_, defaults to np.array([])
gamma (np.ndarray, optional) -- _description_, defaults to np.array([])
rotation_axis (str, optional) -- _description_, defaults to "y"
- Returns
_description_
- Return type
_type_
import stanpy as stp
x = sym.Symbol("x")
E = 3*10**7 # kN/m2
b = 0.2 # m
hi = 0.3 # m
hk = 0.4 # m
l = 3 # m
hx = hi + (hk - hi) / l * x
cs_props = stp.cs(b=b, h=hx)
s = {"E": E, "cs": cs_props, "l": l, "q":10}
Fik = stp.tr_Q_poly(**s)
print(Fik)
[[ 1.00000e+00 3.00000e+00 -2.50000e-04 -2.15168e-04 1.47479e-03]
[ 0.00000e+00 1.00000e+00 -1.45833e-04 -1.87500e-04 1.73666e-03]
[ 0.00000e+00 0.00000e+00 1.00000e+00 3.00000e+00 -4.50000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 -3.00000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]
load integrals R (transverse-force-representation)¶
Top-level package for stanpy.
- stanpy.calc_load_integral_R_poly(x: numpy.ndarray = array([], dtype=float64), eta: numpy.ndarray = array([], dtype=float64), gamma: numpy.ndarray = array([], dtype=float64), load_j_arrays=None, return_aj: bool = False, return_bj: bool = False, return_all: bool = False, wv_j: Optional[object] = None, **s)[source]¶
_summary_
- Parameters
x (np.ndarray, optional) -- _description_, defaults to np.array([])
eta (np.ndarray, optional) -- _description_, defaults to np.array([])
gamma (np.ndarray, optional) -- _description_, defaults to np.array([])
load_j_arrays (_type_, optional) -- _description_, defaults to None
return_aj (bool, optional) -- _description_, defaults to False
return_bj (bool, optional) -- _description_, defaults to False
return_all (bool, optional) -- _description_, defaults to False
wv_j (object, optional) -- _description_, defaults to None
- Returns
_description_
- Return type
_type_
import stanpy as stp
x = sym.Symbol("x")
E = 3*10**7 # kN/m2
b = 0.2 # m
hi = 0.3 # m
hk = 0.4 # m
l = 3 # m
hx = hi + (hk - hi) / l * x
cs_props = stp.cs(b=b, h=hx)
s = {"E": E, "cs": cs_props, "l": l, "q":10, "N":-1000}
load_integral_R = stp.calc_load_integral_R_poly(x=[0,l/2,l],**s)
print(load_integral_R)
[[ 0.00000e+00 0.00000e+00 0.00000e+00 -0.00000e+00 1.00000e+00]
[ 1.17545e-04 2.92291e-04 -1.11325e+01 -1.50000e+01 1.00000e+00]
[ 1.45456e-03 1.70226e-03 -4.35454e+01 -3.00000e+01 1.00000e+00]]
field matrix R (transverse-force-representation)¶
Top-level package for stanpy.
- stanpy.tr_R_poly(x: numpy.ndarray = array([], dtype=float64), eta: numpy.ndarray = array([], dtype=float64), gamma: numpy.ndarray = array([], dtype=float64), **s)[source]¶
_summary_
- Parameters
x (np.ndarray, optional) -- _description_, defaults to np.array([])
eta (np.ndarray, optional) -- _description_, defaults to np.array([])
gamma (np.ndarray, optional) -- _description_, defaults to np.array([])
- Returns
_description_
- Return type
_type_
import stanpy as stp
x = sym.Symbol("x")
E = 3*10**7 # kN/m2
b = 0.2 # m
hi = 0.3 # m
hk = 0.4 # m
l = 3 # m
hx = hi + (hk - hi) / l * x
cs_props = stp.cs(b=b, h=hx)
s = {"E": E, "cs": cs_props, "l": l, "q":10, "N":-1000}
Fik = stp.tr_R_poly(**s)
print(Fik)
[[ 1.00000e+00 2.78942e+00 -2.40910e-04 -2.10583e-04 1.45456e-03]
[ 0.00000e+00 8.18939e-01 -1.35638e-04 -1.81061e-04 1.70226e-03]
[ 0.00000e+00 2.78942e+03 7.59090e-01 2.78942e+00 -4.35454e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00 -3.00000e+01]
[ 0.00000e+00 0.00000e+00 0.00000e+00 0.00000e+00 1.00000e+00]]