Unstiffened Cylinder#
- compmech.panel.assembly.cylinder.create_cylinder_assy(height, r, stack, plyt, laminaprop, npanels, m=8, n=8)[source]#
Cylinder Assembly
The panel assembly looks like:
B A _______ _______ _______ _______ | | | | | | | | | | | | | | | | p04 | p03 | p02 | p01 | | | | | | /\ x | | | | | | |_______|_______|_______|_______| | | y <-------
where edges
A
andB
are connected to produce the cyclic effect.- Parameters:
- heightfloat
Cylinder height (along \(x\)).
- rfloat
Cylinder radius.
- stacklist or tuple
Stacking sequence for the cylinder.
- plytfloat
Ply thickness.
- laminaproplist or tuple
Orthotropic lamina properties: \(E_1, E_2, \nu_{12}, G_{12}, G_{13}, G_{23}\).
- npanelsint
The number of panels the cylinder perimiter.
- m, nint, optional
Number of approximation terms for each panel.
- Returns:
- assy, connstuple
A tuple containing the assembly and the default connectivity list of dictionaries.
- compmech.panel.assembly.cylinder.cylinder_compression_lb_Nxx_cte(height, r, stack, plyt, laminaprop, npanels, Nxxs, m=8, n=8, num_eigvalues=20)[source]#
Linear buckling analysis with a constant Nxx for each panel
See
create_cylinder_assy()
for most parameters.- Parameters:
- Nxxslist
A Nxx for each panel.
- num_eigvaluesint
Number of eigenvalues to be extracted.
- Returns:
- assy, eigvals, eigvecstuple
Assembly, eigenvalues and eigenvectors.
Examples
The following example is one of the test cases:
def test_cylinder_compression_lb_Nxx_cte(): print('Testing assembly function: cylinder_compression_lb_Nxx_cte') height = 0.500 r = 0.250 npanels = 5 Nxxs = [-100.]*npanels assy, eigvals, eigvecs = cylinder_compression_lb_Nxx_cte( height=height, r=r, plyt=0.125e-3, stack=[0, 45, -45, 90, -45, 45], laminaprop=(142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9), npanels=npanels, Nxxs=Nxxs, m=8, n=12) assy.plot(eigvecs[:, 0], 'skin', filename='tmp_cylinder_compression_lb_Nxx_cte.png') assert np.isclose(Nxxs[0]*eigvals[0], -49906.793576, atol=0.01, rtol=0.001)
- compmech.panel.assembly.cylinder.cylinder_compression_lb_Nxx_from_static(height, r, stack, plyt, laminaprop, npanels, Nxxs, m=8, n=8, num_eigvalues=20)[source]#
Linear buckling analysis with a Nxx calculated using static analysis
See
create_cylinder_assy()
for most parameters.- Parameters:
- Nxxslist
A Nxx for each panel.
- num_eigvaluesint
Number of eigenvalues to be extracted.
- Returns:
- assy, c, eigvals, eigvecstuple
Assembly, static results, eigenvalues and eigenvectors.
Examples
The following example is one of the test cases:
def test_cylinder_compression_lb_Nxx_from_static(): print('Testing assembly function: cylinder_compression_lb_Nxx_from_static') height = 0.500 r = 0.250 npanels = 5 Nxxs = [-100.]*npanels assy, c, eigvals, eigvecs = cylinder_compression_lb_Nxx_from_static( height=height, r=r, plyt=0.125e-3, stack=[0, 45, -45, 90, -45, 45], laminaprop=(142.5e9, 8.7e9, 0.28, 5.1e9, 5.1e9, 5.1e9), npanels=npanels, Nxxs=Nxxs, m=8, n=12) assy.plot(c, 'skin', filename='tmp_cylinder_compression_lb_Nxx_from_static_c.png') assy.plot(eigvecs[:, 0], 'skin', filename='tmp_cylinder_compression_lb_Nxx_from_static_eigvec.png') assert np.isclose(Nxxs[0]*eigvals[0], -47735.882729, atol=0.01, rtol=0.001)