
    Qie                        d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlmZ d dlmZmZmZmZmZ d d	lmZ d d
lmZmZmZmZmZ d dlmZ d dlm Z m!Z!m"Z"m#Z# d dl$m%Z%  ed          Z& ed          Z' e	d          \  Z(Z)d Z*d Z+d Z,d Z-d Z.d Z/d Z0d Z1d Z2d Z3d Z4d Z5d Z6d Z7d Z8d  Z9d! Z:d" Z;d# Z<d$ Z=d% Z>d& Z?d' Z@d( ZAd) ZBd* ZCd+ ZDd,S )-    )expand)Rationalpi)S)Symbolsymbols)Interval)simplify)Beam)SingularityFunction	PiecewisemeijergAbslog)raises)meternewtonkilogigamilli)Beam3D)CirclePolygonPoint2DTriangle)sympifyxyR1, R2c                     t          d          } t          d          }t          d          }t          d          }t          d          }t          d| |          }|j        dk    sJ |j        | k    sJ |j        |k    sJ |j        t          k    sJ d|_        |j        dk    sJ ||_        |j        |k    sJ ||_        |j        |u sJ t          |_        |j        t          u sJ dg|_        d	g|_	        d
g|_
        dg|_        |j        dgd	gd
gdgdk    sJ |j                            ddg           |j        }|g dk    sJ |j
                            ddg           |j
        }|g dk    sJ |j	                            ddg           |j	        }|g dk    sJ |j                            ddg           |j        }	|	g dk    sJ |j        }
|
g dg dg dg ddk    sJ t          d| |          }|                    ddd           |                    t          dd           |                    t           dd           |                    ddd           ddg|_        |                    t          t                      |j        }t          d t           d!i}||k    sJ |j        }dt)          t          dd          z  d t)          t          dd          z  z   dt)          t          dd          z  z   d!t)          t          dd          z  z   }||k    sJ |                                }d"t)          t          dd          z  d t)          t          dd          z  z
  dt)          t          dd          z  z
  d!t)          t          dd          z  z
  }||k    sJ |                                }d"t)          t          dd          z  d t)          t          dd          z  z
  dt)          t          dd          z  z
  d!t)          t          dd          z  z
  |z  }||k    sJ |                                }d"t)          t          dd          z  d t)          t          dd          z  z
  dt)          t          dd          z  z
  d!t)          t          dd          z  z
  }||k    sJ |                                }d#t)          t          dd!          z  d$t)          t          dd!          z  z   dt)          t          dd          z  z   t)          t          dd!          z   t3          d%d$          z   }||| |z  z  k    sJ |                                }t          t3          d%d$          z  dt)          t          dd$          z  d$z  z
  t)          t          dd$          z   d&t)          t          dd!          z  z   t)          t          dd$          d$z  z   d'z
  }||| |z  z  k    sJ t          d(          }t          d)          }t          d*          }t          d+          }t          d,          }t          d-          }t          d.          }t          d/          }t          d0          }t          || |          }|                    ||d           |                    ||d           ||fg|_        ||fg|_	        |j        }|t)          t          |d          z  |t)          t          |d          z  z   }||k    sJ |                                }| t)          t          |d!          z  d!z  |t)          t          |d          z  z
  }||k    sJ |                                }| t)          t          |d!          z  d!z  |t)          t          |d          z  z
  |z  }||k    sJ |                                }| t)          t          |d$          z  d z  |t)          t          |d          z  z
  }||k    sJ |                                }|t)          t          |d          z  d1z  |t)          t          |d!          z  d!z  z   | |z  z  | |z  |z  |t)          ||d          z  d1z  z
  |t)          ||d!          z  d!z  z
  | |z  z  z   }t7          |          t7          |          k    sJ |                                }t          | |z  |z  |t)          ||d          z  d1z  z
  |t)          ||d!          z  d!z  z
  z  | |z  z  |t)          t          |d2          z  dz  |t)          t          |d$          z  d z  z   | |z  z  z   | |z  | |z  |z   z  ||z  t)          ||d          z  d1z  z   ||z  t)          ||d!          z  d!z  z   |t)          ||d2          z  dz  z
  |t)          ||d$          z  d z  z
  | |z  z  z   }t9          ||z
            dk    sJ t          d3| |d!          }|                    dd!d!d$4           |j	                            d           t=          d5          }t=          d6          }|j        }dt)          t          d!d!          z  d!t)          t          d$d          z  z   dt)          t          d$d          z  z   d!t)          t          d$d!          z  z   }||k    sJ |                                }d!t)          t          d!d$          z  d$z  d!t)          t          d$d          z  z
  d!t)          t          d$d!          z  z
  d!t)          t          d$d$          z  d$z  z
  }||k    sJ |                                }t)          t          d!d$          d$z  dt)          t          d$d          z  z
  dt)          t          d$d!          z  z
  dt)          t          d$d$          z  d$z  z
  }||k    sJ |                                }d!t)          t          d!d2          dz  t)          t          d$d$          d$z  z
  t)          t          d$d          d z  z
  t)          t          d$d2          dz  z
  | |z  z  z
  }||k    sJ |                                }d!t          z  t)          t          d!d           d7z  t)          t          d$d          d8z  z
  t)          t          d$d2          dz  z
  t)          t          d$d           d7z  z
  | |z  z  z
  }|||z   k    sJ t          d| |d$                              d9ddd$:           j        }d9t)          t          dd          z  d$t)          t          d$d          z  z   }||k    sJ                                 }d$t)          t          dd          z  d$t)          t          d$d          z  z
  }||k    sJ                                 }t)          t          dd          t)          t          d$d          z
  }||k    sJ                                 }d9t)          t          dd$          z  d z  d$t)          t          d$d$          z  d z  z   }||| |z  z  |z   k    sJ                                 }d9t)          t          dd          z  d1z  d$t)          t          d$d          z  d1z  z   }||| |z  z  |t          z  z   |z   k    sJ t?          t@          fd;           t?          tB                    5  d_        d d d            d S # 1 swxY w Y   d S )<NEE_1II_1A      r      r   r&   r      r)   r&   )
deflectionslopebending_momentshear_forcer&   r&   r)      )r-   r2   r3   r&   r4   r,   r4   )r+   r5   r6   r'   r4   r,   r   )r*   r7   r8   )r(   r7   r8      r   
   x   )r<   r   )r9   r      r)      r4     <   .  lw0w2a1cc1def   r,   	   )valuestartorderendC3C4      rS   c                  6                          dddd          S )NrX   r   r;   r4   rY   )
apply_load)b4s   /var/www/development/aibuddy-work/election-extract/venv/lib/python3.11/site-packages/sympy/physics/continuum_mechanics/tests/test_beam.py<lambda>ztest_Beam.<locals>.<lambda>   s    r}}RBA}>>     )"r   r   lengthelastic_modulussecond_momentvariabler   r   bc_deflectionbc_slopebc_bending_momentbc_shear_forceboundary_conditionsextendr[   R1R2solve_for_reaction_loadsreaction_loadsloadr   r1   shear_stressr0   r/   r   r.   r   r
   appendr   r   
ValueError	TypeError)r!   r"   r#   r$   r%   bsf_bcsbm_bcss_bcsd_bcsbcs_newb1pqrE   rF   rG   rH   rI   rJ   rK   rL   rM   b2b3rT   rU   r\   s                              @r]   	test_Beamr~      s   sA
--CsA
--CsAQ1A8q====!!!!?a:???? AH8q==== A#### AO?c!!!! AJ:???? hAOAJ!(AxA F8vh8>xQWPX%Z %Z Z Z Z Z VV,---F------- /000 F------- Jvv&'''JE,,,,,,, OFF+,,,OE,,,,,,, #G...)))222///	1 1 1 1 1 1 
b!QBMM"aMM"b"MM"b"MM#r2)BB''' 	A	QAA6666 	A
q!R(((1-@B-K-K+KK	
aR
(
((	)+,-@B-K-K+K	LA6666 	A	
aA
&
&&+>q"a+H+H)HH	
aR
(
((	)+,-@B-J-J+J	KA6666 	A	
q!Q''	'!,?2q,I,I*I	I	
aR
(
((
)Ar1%%%
&'(	)A a4444 	A	
aA
&
&&+>q"a+H+H)HH	
aQ
'
''	(*+,?2q,I,I*I	JA6666 	

A
q!Q'''!,?2q,I,I*II	
aQ
'
''	(*=aQ*G*G	HtQ	A 1Q3<<<< 	A	(4

a 3Aq! < <<Q>>!R##	$&()<QA)F)F&F	G!R##A%	&(-	.A 1Q3<<<< 	sA	B	B	BsA	BsAsAsA	aABMM"b!MM"b"AxBq6(BK 	A
q"a(((2.A!R.L.L+LLA6666 	A	2q)))!+	QA	&	&&	'A6666 	A
 B**	*1	,	QA	&	&&
'()	*A6666 	A	2q)))!+b1DQA1N1N.NNA6666 	

A	2q))	)"	,r2EaQ2O2O/OPQ/Q	QTUVWTWX\]^_\_`a\adfgz{|  A  CD  hE  hE  eE  FH  eH  ]H  KM  Na  bc  eg  ij  Nk  Nk  Kk  lm  Km  ]m  pq  rs  ps  \t  	tA!99q		!!!! 	A	1Q3q52)!R333B66	QA	&	&&q() 	*+,Q3	0	
aQ
'
''+	QA	&	&&q()+,Q30	0 	sQBqD1H~"0B:::2==dq"a(((*+	QA	&	&&s*+ 		QA	&	&&q() ,-Q30		0A AE??a	aAq		BMM!1!M444Kv	B	B
A
q!Q'''!,?1a,H,H*HHAq!$$$	%'()<Q1)E)E'E	FA6666
A	
aA
&
&&q(1-@Aq-I-I+IIAq!$$$	%'()<Q1)E)E'Ea'G	HA6666
AAq!$$Q&+>q!Q+G+G)GGAq!$$$	%'()<Q1)E)E'Ea'G	HA6666


A	 Aq))",/B1a/K/KA/MM!Q""1$%':1a'C'CB'FGIJ1N 	NA6666
A	!"1a++C/!Q""2%&(;Aq!(D(DR(GH!Q""3&')*1. 	.A B;;;;	aAq		BMM"aM"""
A
q!Q'''!,?1a,H,H*HHA6666
A	
aA
&
&&Aq!$$$	%A6666
AAq!$$':1a'C'CCA6666


A
q!Q''')A.A!Q.J.J,J1,LLA1Q3"
A
q!Q'''*Q/B1a/K/K-KB-NNA1Q3"Q$##### :>>>>???				                   s   -||	|c                     t          dd          } t          d          \  }}}}}t          | ||d          }|                    t          | d           |                    t          dd           |                    | | d	z  d           |                    t          t                     |                                }|t          t          dd	          z  d
z  |t          t          | d	z  d	          z  d	z  z
  |t          t          | d	          z  d
z  z   }||||z  z  |z   k    sJ |	                                }|t          t          dd          z  dz  |t          t          | d	z  d          z  dz  z
  |t          t          | d          z  dz  z   }||||z  z  |t          z  z   |z   k    sJ dg|_
        |	                                }|t          z  |t          t          dd          z  dz  z   |t          t          | d	z  d          z  dz  z
  |t          t          | d          z  dz  z   }||||z  z  k    sJ d| dfg|_
        |	                                }| d	z   |z  t          z  dz  |t          t          dd          z  dz  z   |t          t          | d	z  d          z  dz  z
  |t          t          | d          z  dz  z   }||||z  z  k    sJ d S )NLTpositivezE I P a3 a4a)	base_charr;   r   r)   r'   r4   rW   r?   r   r      )r   r   r[   rk   rj   rl   r/   r   r   r.   rd   )	r   r!   r#   Pa3a4rs   rz   r{   s	            r]   test_insufficient_bconditionsr     s    	d###Am,,OAq!RQ1$$$ALLQLLQLL!QqS"r2&&&			A	
aA
&
&&q(1-@AaC-K-K+KA+MMPQRefgijlmRnRnPnopPppA1Q3"	A	
aA
&
&&r)A.A!QqS!.L.L,LQ,NNQRSfghjkmnSoSoQoprQrrA1Q3"Q$#####hAO	A
1q$Q1---b0015HAaCQR5S5S3STU3UUXYZmnoqrtuZvZvXvwyXyyA1Q3<<<<1v&AO	A	
Aa	"q,Q1555b881=PQRTUVWTWYZ=[=[;[\];]]`abuvwyz|}b~b~`~  @B  aB  	BA1Q3<<<<<<r_   c            	         t          d          } t          d          }t          d          \  }}t          d          }t          dd          }t          || |          }d|d	fg|_        d|d	fg|_        |                    t          d	d
           |                    |d	d           |                    t          |d
           |                    ||d           |                    | |dz  d
           |                    t          t          ||           |j	        }t          |dz  t          |dz  || |z  dz  |||z  dz  i}||k    sJ d S )Nr!   r#   zM1, M2FrE   Tr   r   r   r;   r>   r)   r@   )
r   r   r   rd   re   r[   rj   rk   rl   rm   )	r!   r#   M1M2r   rE   b5rz   r{   s	            r]   test_statically_indeterminater      sK   sAsAXFBsAsT"""A	aAB1vB1a&/BKMM"aMM"aMM"aMM"aMM1"ac2BB///
A	QqS"ac2r!tAvr1Q3q51A666666r_   c            	          t          d          } t          d          }t          d          \  }}t          t          z  }t          t          z  }t          dt          z  d|z  t          dz  z  dt          t          z  dz  z            }|                    d	|z  dt          z  d
           |                    |dt          z  d
           |                    |dt          z  d
           |                    d|z  t          z  dt          z  ddt          z             dt          z  dt          z  fdt          z  dt          z  fg|_	        |
                    ||           |j        |dt          z  |dt          z  ik    sJ t          dt          z  | t          z  t          dz  z  |t          dz  z            }|                    d|z  dt          z  d
           |                    |dt          z  d
           |                    |dt          z  d
           |                    d|z  t          z  dt          z  d           dt          z  dt          z  fdt          z  dt          z  fg|_	        |
                    ||           |j        |t          t          dd          z  |t          t          dd          z  ik    sJ |                                                    t          dt          z            dt          z  d| z  |z  z  k    sJ d S )Nr!   r#   r   r@      r)   i r'   r,   r;   r   r<   rY   iJir4   r&   rW   r>   irB   i0  rO   )r   r   r   r   r   r   r   r   r[   rd   rl   rm   r   r.   subsr   )r!   r#   rj   rk   kNgNrs   s          r]   test_beam_unitsr   7  s   sAsAXFB	fB	fBQuWc"fUAXo{E%K!3C'CDDALL2qw###LLQuWb!!!LLQuWb!!!LLBuagqagL666%5)AeGQuW+=>AOr2&&&F6M2vf}EEEEEQuWahuax'5!844ALL2qw###LLQuWb!!!LLQuWb!!!LLBuagr***%5)AeGQuW+=>AOr2&&&F8FA+>+>$>F8TXZ[K\K\D\]]]]]<<>>q!E'**eEk1Q3q5.AAAAAAAr_   c                  8   t          d          } t          d          }t          d| ddt          z
  z            }|                    ddd           t	          d          \  }}|                    |dd           |                    |dd	           d
g|_        d
g|_        |                    ||           |                                	                                dt          z  t          t          dd          z  dt          dz
  z  t          t          dd          z  z
  | z  	                                k    sJ |                                	                                dt          dz  z  t          t          dd          z  dt          dt          t                    dz  dk     ft          dz  t          ddt          dz            z  df          z  z
  dt          t          dd          z  z   | z  	                                k    sJ t          d| t          z
  |          }|                    ddd           t	          d          \  }}|                    |dd           |                    |dd	           d
g|_        d
g|_        |                    ||           |                                	                                dt          |             t          |  t          z             z   z  t          t          dd          z  dt          |  dz              t          |  t          z             z   z  t          t          dd          z  z   d|  t          |            z  | t          |  t          z             z  z   t          z   z  t          t          dd          z  z   d|  t          |  dz             z  | t          |  t          z             z  z   t          z   dz
  z  t          t          dd          z  z
  |z  	                                k    sJ d S )Nr!   r#   r'   r)      r;   R, Mr   r>   r   r<   r,   r&   ))r;   r&    )r   )r>   r   T(   iP   )r   r   r   r[   r   rd   re   rl   r/   r   r   r.   r   r   r   r   )r!   r#   rs   RMs        r]   test_variable_momentr   S  s   sAsAQ1a!e9ALLQ6??DAqLLArLLArhAOAJq!$$$77992a4(;Aq!(D(D#D
a!e*(Aq11
1$234#56<fhh? ? ? ?<<>>  ""!Q$/B1a/K/K(K
Y3q66!8a<(1a4}VWXYVY0Z0Z+Z\`*abb
b)c
 Aq))
))*+,(-.4fhh7 7 7 7 	QAqALLQ6??DAqLLArLLArhAOAJq!$$$77993aR3rAv;;(>#?@STUWXZ[@\@\#\
sA26{{lS!a[[(
)*=aA*F*F
F$GIKaRPSUVTVPWPWZ
CQKK-NN J0Aq99J:$:<>3rAv;;QRSVXYWY\]W]S^S^Q^@^
AA =$Q1--=.$. 01#1 39&((; ; ; ; ; ;r_   c                     t          d          } t          d          }t          d| d|z            }t          d| |          }|                    |d          }|                    ddd           |                    d	dd
           |                    ddd           dg|_        dg|_        |j        dk    sJ |j        t          d|z  t          dk    f|t          dk    f          k    sJ |
                                                    t          d          d| |z  z  k    sJ |
                                                    t          d          d| |z  z  k    sJ t          |                                                    t          d          j        d                   dk    sJ t          dd          }t          d          \  }}}}	}
t          d|z  | |          }t          d|z  | |          }|                    |d          }|                    |dd
           |                    |dd           |                    ||d           |                    |	d|z  d           |                    |
d|z  d           dg|_        d|dfd|z  dfg|_        |                    ||||	           |j        |	|
 dz  ||
t%          dd          z  ||
 |z  dz  ||
t%          dd          z  ik    sJ |
                                                    t          d|z            d|
z  |dz  z  d| z  |z  z  k    sJ |                                                    t          d|z            d|
z  |dz  z  d| z  |z  z  k    sJ |                                                    t          d|z            d|
z  |dz  z  d| z  |z  z  k    sJ t          ddd          }t          ddd          }|                    |d          }|                    |dd
           |                    |dd           |                    |d d           |                    |	dd           |                    ddd           dg|_        g d!|_        |                    ||||	           |
                                d
t'          t          dd           z  d"z  t'          t          dd          d#z  z   d$t'          t          d d          z  d%z  z
  t'          t          dd          d&z  z   d't'          t          dd          z  d(z  z
  k    sJ |                                t'          t          dd           d"z  t'          t          dd          d"z  z   d$t'          t          d d          z  d)z  z
  t'          t          dd          d*z  z   d't'          t          dd          z  d+z  z
  k    sJ d S ),Nr!   r#   r)   g      ?fixedir   r;   r   r>   r   r'   r   g      ^@g      T@irE   Tr   zR1 M1 R2 R3 Phinger4   0      rN   r,   r   i  r<   r&   )r   )r&   r   )r'   r   i  S     iX i  %   i i.   i )r   r   joinr[   re   rd   r`   rb   r   r   r/   r   intr.   argsr   rl   rm   r   r   )r!   r#   ry   r|   rs   rE   rj   r   rk   R3r   s              r]   test_composite_beamr   s  s   sAsA	aCE		B	aAB
GALLaLLQLLQAJhAO8q====?iQQ!Q!VEEEEEE7799>>!Q5!A#;....7799>>!Q41:----q||~~""1a((-a011T9999d###A00BBA	ac1aB	ac1aB
7ALLQLLQLLQLLQqS"LLAaCAJ1v!Qx0AOr2r2...QBqD"aQ.?aRT!VRQRS[\]_`SaSaQabbbbb7799>>!QqS!!RT!Q$Y1Q%77777<<>>q!A#&&!A#ad(BqDF*;;;;;<<>>q!A#&&!A#ad(BqDF*;;;;; 
ab		B	ab		B
GALLQLLQLLQLLQLLQAJ...AOr2r2...7799.q!Q777<?RSTVWYZ?[?[\`?``)!Q22269:<OPQSTVW<X<XY]<]^(Aq111%78 8 8 8 8 <<>>1!Q:::4?BUVWYZ\]B^B^_cBcc-aA666v=>@STUWXZ[@\@\]a@ab,Q1555f<= = = = = = =r_   c                     t          d          } t          d          }t          d| |          }|                    ddd           |                    ddd           |                    dd	d           |                    d
dd           |                    ddd           |                                t	          dd          gk    sJ t          d          } t          d          }t          d| |          }|                    dd          }|                    dd          }|                    dd          \  }}|                    d           |                    ddd           |                    dddd           |                    ||||           |                                t	          dd          dt	          dd          gk    sJ t          d          } t          d          }t          d| |          }|                    dd          }|                    dd          }|                    dd          \  }}|                    d           |                    d           |                    ddd           |                    dddd           |                    ||||           t          t                    5  |                                 d d d            d S # 1 swxY w Y   d S )Nr!   r#   r<   rA   r   r;   ir?   r)   r   r'   r4      pintyper   rW   r,   r        )
r   r   r[   point_cflexurer   apply_supportapply_rotation_hingerl   r   NotImplementedError)r!   r#   rs   r0r10r15m15s          r]   test_point_cflexurer     s   sAsARAALLQLLaLLQLLQLLAq(2q//!22222sAsARAA	
	'	'B
//"5/
)
)Cr00HC2LLaLLRBr3S111(4"5"5r8C;L;L!MMMMMsAsARAA	
	'	'B
//"5/
)
)Cr00HC12LLaLLRBr3S111	#	$	$  	                 s   K66K:=K:c                     t          d          } t          d          }t          d| |          }	 |                    ddd           J # t          $ r Y nw xY w|                    d	d
d           |                    ddd           |                    dddd           |                    dddd           |j        d	t          t          d
d          z  dt          t          dd          z  z   k    sJ |j        ddgk    sJ 	 |                    ddd           J # t          $ r Y nw xY w|                    d	d
d           |                    ddd           |j        d
k    sJ |j        g k    sJ d S )Nr!   r#   r'   r)   r&   r;   FTrX   r   r>   r4   rY   )rX   r   r>   N)r'   r)   r;   N)	r   r   remove_loadrq   r[   rn   r   r   applied_loads)r!   r#   rs   s      r]   test_remove_loadr     s   sAsAQ1A	aB
 	    
 LLQLLArLLQL###MM"a!M$$$6R+Aq"555:MaQRTV:W:W8WWWWWW?02BCCCCC	aB 	    
 MM"aMM!Q6Q;;;;?b      s#   A
 

AAD! !
D.-D.c            
      
   t          d          } t          d          }t          d| |          }|                    dd           |                    ddd           t	          d          \  }}|                    ||           t          |                                          t          d	t          t          dd
          z  dt          t          dd          z  z
  dt          t          dd          z  z   | |z  z            k    sJ t          |
                                          t          dt          t          dd          z  dt          t          dd          z  dz  z
  dt          t          dd          z  dz  z   | |z  z            k    sJ t          d| |          }|                    dd          }|                    dd          }|                    ddd           |                    ddd           |                    ||           |                                dt          t          dd          z  dt          t          dd          z  z   dt          t          dd
          z  z   t          t          dd          z   t          dd          z   | |z  z  k    sJ |
                                t          t          dd          z  dt          t          dd          z  dz  z
  t          t          dd          z   dt          t          dd          z  z   t          t          dd          dz  z   dz
  | |z  z  k    sJ t          d          }t          d          }||k    sJ |j        |d|dik    sJ |j        |         dk    sJ t          d| |          }|                    dd          \  }}	|                    dd          }|                    dddd           |                    ||	|           t          d          }t          d           }t          d!          }
||k    sJ |	|k    sJ ||
k    sJ |j        |d"|d#|
d$ik    sJ |j        |	         d#k    sJ t          d%d&'          }t          d(d&'          }t          || |          }|                    dd)           |                    |d)           |                    | |dz  d           t	          d*          \  }}}}|                    ||||           |j        ||dz  ||dz  || |z  dz  |||z  dz  ik    sJ d S )+Nr!   r#   r'   r   
cantileverr   r;   zM_0, R_0r   r&   r<   r)   r   r4   r9   r   rollerr:   r=   r>   rA   rB   rC   rD   R_10R_30r?   r@   r   r   R_0M_0R_8   ir   r   Tr   r   r   zR_0, R_L, M_0, M_L)r   r   r   r[   r   rl   r
   r/   r   r   r.   r   rm   )r!   r#   rs   r   r   p0p1r   r   m0r   r   r   R_LM_Ls                  r]   test_apply_supportr     s   sAsAQ1AOOA|$$$LLQz""HCsC(((AGGII(B/B1a/K/K,KbQdefhiklQmQmNm,m(Aq111-245aC,9 #: #: : : : :ALLNN##x4G1a4P4P1PSUVijkmnpqVrVrSrstSt1t(Aq111!32467c1; (< (< < < < < 	RAA	
U	#	#B	
X	&	&BLLQLLb"r2&&&7799/1a8881=PQRTVXY=Z=Z;ZZ%aQ///02EaQ2O2OPRZ[_abRcRcdfghifik k k k k<<>>aq 1 11A6I!QPQ6R6R4RST4TTWjklnprsWtWtt$QA.../1DQA1N1Nq1PQSXY[\]^[^` ` ` ` `&>>D&>>D::::aq11111B1$$$$Q1A__Q((FB	
H	%	%BLLQ1r2r***
--C
--C
--C999999999999Rc3;;;;;B3&&&&sT"""AsT"""AQ1AOOAGO$$$OOAGO$$$LL!QqS" !566Cc3sCc222QqS#qsC!Aaac!eLLLLLLLr_   c                     t          ddd                              dd          \  } }                    dd          }                    dd          }                    d          }                    d	          }                    d
dd                               dddd                               | |||           t          d          \  }}}}	}
}|d|d|d|	di|
d|di| |||g}||g}dt          fd|D                       sJ t          fd|D                       sJ dt          t          dd          z  dz  dt          t          dd          z  dz  z
  dt          t          dd          z  dz  z
  dt          t          dd          z  z   dt          t          dd          z  dz  z
  t          t          dd          z   dt          t          d	d          z  dz  z   dt          t          dd          z  z
  t          t          dd          z
  }	                                
                                |
                                k    sJ dt          t          dd          z  d z  t          t          dd          d!z  z   d"t          t          dd          z  d#z  z   t          t          dd          d$z  z
  dt          t          dd          z  d%z  z   t          t          dd          d&z  z
  d't          t          d	d          z  d(z  z
  dt          t          dd          z  d)z  z   t          t          dd          d&z  z   }                                
                                |
                                k    sJ dt          t          dd          z  d!z  t          t          dd          d*z  z   d"t          t          dd          z  d#z  z   t          t          dd          d+z  z
  dt          t          dd          z  d,z  z   t          t          dd-          d.z  z
  d't          t          d	d          z  d(z  z
  t          t          dd          d)z  z   t          t          dd-          d.z  z   }                                
                                |
                                k    sJ t          d/          }t          d0          }t          d1          }t          d||                              dd          \  } }                    dd          }                    d2                               |d3d                               | ||           j        || dz  |d|z  || dz  ik    sJ 	                                d4|z  t          t          dd          z  |t          t          dd          z  dz  z   d5|z  t          t          d2d          z  z   |t          t          d3d          z  z
  |t          t          dd          z  dz  z   k    sJ d4|z  t          t          dd          z  dz  |t          t          dd          z  d	z  z   d5|z  t          t          d2d          z  z   |t          t          d3d          z  d2z  z
  |t          t          dd          z  d	z  z    ||z  z  }                                
                                |
                                k    sJ t          d/          }t          d0          }t          d1          }t          d6d78          }t          d9d78          }t          d:d78          }||z   |z   }t          |||                              dd          \  } }                    |d          }                    |                               |||z   d                               | ||           j        |          | |z  ||z   z  k    sJ j        |         ||z  |z  ||z   z  k    sJ j        |         | |z  ||z   z  k    sJ | |z  |z  t          t          dd          z  ||z   z  ||z  t          t          ||z   |z   d          z  ||z   z  z   ||z  t          t          dd          z  ||z   z  z   |t          t          ||z   d          z  z
  d|z  |dz  z  |z  d|z  |dz  z  |z  |z  z
  d|z  |dz  z  |dz  z  z
  ||dz  z  |z  z   d|z  |dz  z  |dz  z  z   d|z  |z  |dz  z  z   t          t          |d          z  d2|dz  z  d	|z  |z  z   d2|dz  z  z   z  z
  }t          	                                
                                          t          |
                                          k    sJ d S );Nr   r   r   r   r   r<   r   r   rW   r   r;   r>   zR_0, M_0, R_10, R_15, P_7, P_12g@gUUUUUUGg$@r4   gWs?gHxư>c              3   f   K   | ]+}t          j        |         |         z
            k     V  ,d S N)absrm   ).0rrs   expected_reactions	tolerances     r]   	<genexpr>z,test_apply_rotation_hinge.<locals>.<genexpr>8  D      ffPQs1#A&);A)>>??)Kffffffr_   c              3   f   K   | ]+}t          j        |         |         z
            k     V  ,d S r   )r   rotation_jumps)r   r   rs   expected_rotationsr   s     r]   r   z,test_apply_rotation_hinge.<locals>.<genexpr>9  r   r_      r&   i,        r)   i iD  r   rC   r=   i  ip  r   `	  r   i  i@  i   ih     i   r'   i  r!   r#   r   r?   r@   rX      l1Tr   l2l3)r   r   r   r[   rl   r   allr   r   r0   r   r/   r.   r   rm   r
   )r   r   r   r   p7p12r   r   r   R_15P_7P_12reaction_symbolsrotation_symbolsexpected_bending_momentexpected_slopeexpected_deflectionr!   r#   r   r   r   r   r   r1rs   r   r   r   s                            @@@@r]   test_apply_rotation_hinger   (  s
   RRA__QW_--FB
//"5/
)
)C
//"5/
)
)C	
			"	"B

 
 
$
$CLLaLLRBr2sC000&-.O&P&P#CdD#ttS&$dAFy$
;BS)CyIffffffUeffffffffffffffUeffffffff"%8Aq%A%AAAEM`abdeghMiMiHilmHmm
%aB//
/"
4 579<OPQSTVW<X<X7X Y
"1b!,,
,q
0 13Fq"a3P3P Q &q"b11
1C
7 8 ;<>QRSUWYZ>[>[:[ \ aQ
'
'	 (
 $$&&*A*H*H*J*JJJJJ,Q1555b8;NqRSUV;W;WX[;[[
"1a++
+D
013Fq!Q3O3OPR3RS
 B**
*4
/02EaQ2O2OPT2TU "1b!,,
,T
12 566I!RQR6S6S4STW4WX aQ
'
'
,	-N
 7799!6!6!8!88888 3Aq! < <<sBEXYZ\]_`EaEadgEgg
$Q1--
-
457J1aQR7S7SVY7YZ
"1b!,,
,t
346I!RQR6S6SVZ6Z[ $QA..
.
56 9LArST8U8UX[8[\ aQ
'
'$
.	/
 <<>>  ""&9&@&@&B&BBBBBsAsAsARAA__QW_--FB
//"5/
)
)C1LLArr2s+++aRT3!TA2a4@@@@@"Q$':1a'C'C"CaH[\]_`bcHdHdFdefFf"fd&q!R000#1345HAq5Q5Q3Q#R#Ar1---a/#0 0 0 0 0 qD!4Q1!=!==a?!DWXY[\^_D`D`B`acBccd&q!Q///0234G1a4P4P2PQR2RS#Ar1---b01 234Q38 <<>>  ""&9&@&@&B&BBBBBsAsAsA	t	$	$	$B	t	$	$	$B	t	$	$	$B
R"AQ1A__QW_--FB	
	'	'B2LLBrE2r2r***BA2b5"r'?2222B1R47BG#44444BA2b5"r'?2222 !r"uRx(;Aq!(D(DDb2gNd&q"r'B,:::BGD Ed&q!Q///b9 :<=>QRSUWZ\U\^_>`>`<` a !tBEz"}qs2q5y|B.1RU2q5@1RU72:MPQRSPSTVXYTYPYZ\^_Z_P__bcdebefhbhikmninbnn B++,-.r1uWr"uRx-?!BE'-IK K
 A$$&&--//00H=T=[=[=]=]4^4^^^^^^^r_   c                     t          ddd          } |                     dd          \  }}|                     d          }|                     dd          }|                     dd	d
           |                     |||           t          d          \  }}}}| j        |d|d|dik    sJ d}	t          | j        |         dz
            |	k     sJ | 	                                dt          t          dd          z  dt          t          dd          z  z
  dt          t          d	d          z  z   dt          t          dd          z  dz  z
  k    sJ |                                 t          t          dd           dz  t          t          dd          dz  z   t          t          d	d          dz  z
  dt          t          dd          z  dz  z   k    sJ t          d          }
t          d          }t          d          }t          d	|
|          }t          d|
|          }|                    |          } |                     dd          \  }}|                     d           |                     dd          }|                     dd	d
           |                     |||           t          d          }| j        |dd|
z  |z  z  ik    sJ t          d          }
t          d          }t          d          }t          dd !          }t          d"d !          }t          d#d !          }||z   |z   }t          ||
|          } |                     dd          }|                     |d          }|                     ||z              |                     |d          }|                     |dd|           |                     |||           | 	                                ||z  t          t          dd          z  dz  ||z  t          t          |d          z  dz  z   |t          t          dd          z  dz  z
  |t          t          |d          z  dz  z   |dz   |z  |z  dz  |dz  |z  |z  dz  z
  t          t          ||z   d          z  z   k    sJ |                                 |dz  |z  t          z  dz  ||z  t          t          dd          z  d$z  z
  ||z  t          t          |d          z  d$z  z
  |t          t          dd%          z  dz  z   |t          t          |d%          z  dz  z
  |dz  |z  |z  dz  |dz  |z  |z  dz  z   t          t          ||z   d          z  z   |
|z  z  k    sJ d S )&N   r   r   r   r   r@   r   r   r,   r;   zR_0, M_0, R_13 W_8r<   ir   gUUUUUU@2   r&   i  r>   r4   r)   r   r   U   rN   r!   r#   I2W_8r{   r   Tr   r   r   rW   r'   )r   r   apply_sliding_hinger[   rl   r   rm   r   deflection_jumpsr0   r   r   r.   r   r   )rs   r   r   w8r13r   r   R_13r   r   r!   r#   r   ry   r|   r{   r   r   r   r   r3r   s                         r]   test_apply_sliding_hinger  v  s   RRA__QW_--FB	
		q	!	!B
//"5/
)
)CLLar2s+++!"677CdCRc4;;;;;Iq!"%-..::::"%8Aq%A%A"ABGZ[\^_abGcGcDc"c$Q1---#.045HAr5R5R0RST0T#U U U U ULLNN21a;;;B>ATUVXY[\A]A]^aAaa!!Q**3./134G1a4P4P1PQS1ST T T T T 	sAsA	B	aAB	aBB
A__QW_--FB!
//"5/
)
)CLLar2s+++
--C#tQqSV}!55555sAsAsA	t	$	$	$B	t	$	$	$B	t	$	$	$B
R"AQ1A	
	'	'B	
%	(	(B"r'"""
//!%/
(
(CLLAq"r2s+++"Q$':1a'C'C"CA"E1M`abdfhiMjMjHjklHl"l#Aq!,,,Q.#/123Fq"a3P3P1PQR1R#SAvby{2~Ab
2-/B1b2gr/R/RR#S S S S S <<>>RU1WQYr\BqD1DQ11M1M,Mb,PP!!t$72q$A$AA"DEGHI\]^`acdIeIeGefhGhi !4QA!>!>>rAB !#Ab
2Ab
2 =?RSTVX[]V]_`?a?aab effgdgi i i i i i ir_   c                     t          d          } t          d          }t          d| |          }t          d          \  }}|                    |dd           |                    |dd           |                    ddd           |                    d	dd           |                    dddd
           |                    ||           |                                t          dd          dfk    sJ t          dd          }t          d          }t          || |          }t          d          \  }}|                    |dd           |                    ||d           |                    |dd|
           |                    ||           |                                }	|	d         dk    sJ t          |	d         |t          |          z  dz  z
            dk    sJ d S )Nr!   r#   r4   r   r   r;   r>   r)   r'   rY   r@   rE   Tr   r   r   r&   )	r   r   r   r[   rl   max_shear_forcer	   r
   r   )
r!   r#   rs   r   r   rE   r   rj   rk   	max_shears
             r]   test_max_shear_forcer    s   sAsAQ1A6??DAqLLArLLArLLArLLArLLAqaL   q!$$$8Aq>>1"55555d###AsAQ1AXFBLLQLLQLLAqaL   r2&&&!!##IQ<1IaLAc!ffHQJ/00A555555r_   c                     t          d          } t          d          }t          dd          \  }}t          || |          }t          d          \  }}|                    |dd           |                    ||d           |                    ||d	z  d           |                    ||           |j         |                                |d	z  ||z  d
z  fk    sJ t          || |          }t          d          \  }}|                    |dd           |                    ||d           |                    |dd|           |                    ||           |                                |d	z  ||d	z  z  dz  fk    sJ d S )Nr!   r#   zl, PTr   r   r   r;   r)   r'   rY   r@   )r   r   r   r[   rl   rm   max_bmoment)r!   r#   rE   r   rs   rj   rk   s          r]   test_max_bmomentr    s   sAsA6D)))DAqQ1AXFBLLQLLQLLAaCr2&&&==??qsAaCEl****Q1AXFBLLQLLQLLAqaL   r2&&&==??qsAadF1Ho------r_   c                     t          dd          \  } }}}t          || |          }d|dfg|_        d|dfg|_        |                    |dz  dd           |                    | |z  dz  dd	           |                    |dz  |d           |                    ||z  dz  |d	           |                    | |dz  d           |                                |dz  ||d
z  z  d| z  |z  z  fk    sJ d S )Nz
E, I, l, FTr   r   r   r)   r;   r@   r>   r4      )r   r   rd   re   r[   max_deflection)r!   r#   rE   r   rs   s        r]   test_max_deflectionr    s   555JAq!QQ1Aq!foAO!QAJLL1aLL!AaBLL1aLL1Q2LL!QqS"!A#qAvs1uQw'7!8888888r_   c                      t          d          } t          d          }t          d| |          }|                    dd           |                    dd           t          d          \  }}|                    d||           |j        }|j        |t          |dd           t          |dd          dz  z   t          |dd          dz  z
  |t          |dd           dz  t          |dd          z   t          |dd          dz  z   ik    sJ t          d          } t          d          }t          d	          }t          d
d          }t          || |          }|                    |d           |                    |dd           t          d          \  }}	|                    |||	           |j        }|j        || t          |dd          z  |t          ||d          z  z   |z
  |	| |z  t          |dd          z  ||z  z
  |t          |dd          z  z   |t          ||d          z  z
  ik    sJ t          d          } t          d          }t          d| |          }|                    dd          }
|                    dd          }|                    dd          }|                    dd          \  }}|                    d|
||||           |j        }|j        |
         	                    |d          t          dd           k    sJ |j        |         	                    |d          t          dd           k    sJ |j        |         	                    |d          t          dd          k    sJ |j        |         	                    |d          t          dd           k    sJ |j        |         	                    |d          t          dd           k    sJ d S )Nr!   r#   r<   r   r   r   z	R_0, R_10r&   r   r   Tr   r   r;   zR_L, M_Lr   r,   r'   ;     i  G	     rW   S   i  )r   r   r   r   solve_for_ild_reactionsild_variableild_reactionsr   r[   r   r   )r!   r#   rs   r   r   r   r   r   r   r   r   r5r   r20m20s                  r]   test_solve_for_ild_reactionsr    s>   sAsARAAOOAEO"""OOBUO###$$ICad+++	A?s%8Aq%A%A$ADWXY[\^_D`D`acDc$c&9!R&C&CB&F%G#&9!Q&B&B%B2%EH[\]_acdHeHe%e':1b!'D'DR'G&HI I I I I
 	sAsAsAsT"""AQ1AOOAGO$$$LLArz""HCac***	A?sQB':1a'C'C$CaH[\]_`bcHdHdFd$dgh$h"QBqD)<Q1)E)E$E!$KaPcdeghjkPlPlNl$l&'(;Aq!(D(D&D%EF F F F F 	sAsARAA	
	'	'B	
	'	'B
//"5/
)
)Cr00HCaRc3777	A?2##Aq))hr3.?.?-??????2##Aq))htT.B.B-BBBBB?3$$Q**hsD.A.AAAAA?3$$Q++S0A0A/AAAAA?3$$Q++c0B0B/BBBBBBBr_   c            	         t          d          } t          d          }t          d          }t          dd          }t          dd          }t          ||z   | |          }|                    dd	
          }|                    ||z   d	
          }|                    |||           |                    ||||           |j        }| |z  t          |dd          z  ||z   z  ||z  t          |dd          z  ||z   z  z
  |t          | dd          z  z
  |t          |||z   d          z  z   |z   |t          |dd          z  ||z   z  z   |t          |||z   d          z  ||z   z  z
  | |z  t          |dd          z  ||z   z  ||z  t          |||z   d          z  ||z   z  z   ||z  t          |dd          z  ||z   z  z
  ||z  t          |||z   d          z  ||z   z  z   d|z  z   t          ||d          z  z
  }	|j                                        |	                                k    sJ t          d          } t          d          }t          d| |          }|                    dd	
          }|                    dd	
          }
|                    dd	
          }|                    dd
          \  }}|                    d||
|||           |                    dd||
|||           |j        }|j        	                    |d          t          dd          k    sJ |j        	                    |d          t          dd           k    sJ d S )Nr!   r#   r   L1Tr   L2r   r   r   r&   r)   r   r,   r<   r   r?   rW   `   r  r'      r  )r   r   r   r  solve_for_ild_shearr  r   	ild_shearr   r   r   )r!   r#   r   r  r  rs   r   rLr   expected_shearr  r   r  r  s                 r]   test_solve_for_ild_shearr&    s   sAsAsA	t	$	$	$B	t	$	$	$BR"WaA	
	'	'B	
bu	-	-BaR((("aR(((	Abe/1a888"r'BQrTJ]^_abdeJfJfEfhjmohoEpp-qb!Q7778:;<OPQSUXZSZ\]<^<^:^_abc-aA666R@ACDEXYZ\^ac\cefEgEgCgiknpipCqr B21a;;;R"WE"M`abdfikdkmnMoMoHoqsvxqxHyyR4 3Aq! < <<b2gFGIJ2NabcegjlelnoNpNpIprtwyryIz{Q3 3Ar1 = =>>N ;>#8#8#:#:::::sAsARAA	
	'	'B	
	'	'B
//"5/
)
)Cr00HCaRc3777!QBS#666	A;Ar""hr3&7&77777;Aq!!hsD&9&9%9999999r_   c            	      |   t          d          } t          d          }t          d          }t          dd          }t          dd          }t          ||z   | |          }|                    dd	
          }|                    ||z   d	
          }|j        }|                    |||           |                    ||||           |j                            |d                              |d                              |d          d|z  dz  k    sJ t          d          } t          d          }t          d| |          }|                    dd	
          }|                    dd	
          }	|                    dd	
          }
|                    dd
          \  }}|                    d||	|
||           |                    dd||	|
||           |j                            |d          t          dd           k    sJ |j                            |d          t          dd          k    sJ d S )Nr!   r#   r   r  Tr   r  r   r   r   r4   r,   rX   r)   r   r<   r   r&   rW   r   r  r'   $   _   )	r   r   r   r  r  solve_for_ild_moment
ild_momentr   r   )r!   r#   r   r  r  rs   r   r$  r   r  r   r  r  s                r]   test_solve_for_ild_momentr,  4  s,   sAsAsA	t	$	$	$B	t	$	$	$BR"WaA	
	'	'B	
bu	-	-B	AaR(((2q"b)))<Q""''A..33B::bd1fDDDDsAsARAA	
	'	'B	
	'	'B
//"5/
)
)Cr00HCaRc37771aRc3777<Q##S(9(9'99999<Q""hr2&6&6666666r_   c                  b	   t          d          } t          d          }t          d          }t          dd          }t          dd          }t          dd          }t          ||z   |z   | |          }|                    d	d
          }|                    ||z   d
          }|                    ||z   |z   d
          }	|                    ||z              |                    ||||	           |j        }
|j        |                             |
d                              |d                              |d                              |d          d|z  dz  k    sJ |j        |                             |
d                              |d                              |d                              |d          d	k    sJ |j        |                             |
d                              |d                              |d                              |d          d	k    sJ |j        |                             |
d                              |d                              |d                              |d          d|z  dz  k    sJ |j        |	                             |
d                              |d                              |d                              |d          d|z  dz  k    sJ |                    |||||	           |j	                            |
d                              |d                              |d                              |d          d|z  dz  k    sJ |j	                            |
d                              |d                              |d                              |d          d	k    sJ |
                    |||||	           |j                            |
d                              |d                              |d                              |d          | dz  k    sJ |j                            |
d                              |d                              |d                              |d          | k    sJ d S )Nr!   r#   r   r  Tr   r  L3r   r   r   r'   r,   r<   rX   r   r   r>      rA   r   F   r&   r)   r@   )r   r   r   r   r  r  r  r   r"  r#  r*  r+  )r!   r#   r   r  r  r.  rs   r   r   r2r   s              r]   test_ild_with_rotation_hinger2  N  sq   sAsAsA	t	$	$	$B	t	$	$	$B	t	$	$	$BR"Wr\1a  A	
	'	'B	
bu	-	-B	
b2E	2	2B27###aR,,,	A?2##Aq))..r155::2qAAFFr2NNRTUVRVWXRXXXXX?2##As++00Q77<<RCCHHRPPTUUUUU?2##Ar**//A66;;BBBGGBOOSTTTTT?2##Aq))..r155::2qAAFFr2NNRTUVRVWXRXXXXX?2##Ar**//A66;;BBBGGBOOSUVWSWXYSYYYYY"aR,,,;Aq!!&&r1--222q99>>r2FF"Q$r'QQQQ;Ar""''A..33B::??BGG1LLLL2q"b"---<Q""''A..33B::??BGGA2a4OOOO<Q""''A..33B::??BGGA2MMMMMMr_   c                     t          ddd          } |                     dd          }|                     dd          }|                     dd          \  }}|                     d          }|                     d	||||           | j        }| j        |                             |d          d
k    sJ | j        |                             |d          t          dd          k    sJ | j        |                             |d          t          dd           k    sJ | j        |                             |d          t          dd           k    sJ | j        |                             |d          dk    sJ | j        |                             |d          dk    sJ | j        |                             |d          t          dd           k    sJ | 	                    dd	||||           | j
                            |d          t          dd           k    sJ |                     dd	||||           | j                            |d          t          dd           k    sJ d S )Nr   r   r   r   r   r?   r   r4   r&   r;   rO         iW  rC   1   r   rX   i  r   r@   rW   )r   r   r   r  r  r  r   r   ild_deflection_jumpsr"  r#  r*  r+  )rs   r   r6r  m13w3r   s          r]   test_ild_with_sliding_hinger;  h  st   RcA	
	'	'B	
	'	'Br00HC	
		q	!	!BaRc222	A?2##Aq))R////?2##Aq))Xa__<<<<?3$$Q**xS/A/A.AAAAA?3$$Q**xB/?/?.??????3$$Q++q0000?3$$Q++q0000!"%**1a00Xa5G5G4GGGGG!QBS111;Aq!!hsC&8&8%888881aRc222<Q""xA&6666666r_   c            	         t          d          \  } }}}}t          d          \  }}}}t          | ||||          }	t          d          \  }
}|	                    |ddd           |	                    |
ddd           dg df| g dfg|	_        dg df| g dfg|	_        |	                                 |	                                d	|z  k    sJ |	                                d| t          z  dgk    sJ |	
                                d| t          z  |z  dgk    sJ |	                                dk    sJ |	                                dd|
 t          z  |t          d	z  z  d	z  z   gk    sJ t          ||z  |z  t          d
z  z  dz  ||z  t          d	z  z  |  ||z  | z  | |z  d	|
z  z
  z  d|z  |z  |z  z   z  ||z  | d	z  z  d|z  |z  z   z  d	z  |
z
  z  z   d
|z  |z  | z  ||z  | z  | |z  d	|
z  z
  z  d|z  |z  |z  z   z  ||z  | d	z  z  d|z  |z  z   z  z   t          | |z  | d	z  z  |z  d	z  d
|z  |z  | d	z  z  ||z  | z  | |z  d	|
z  z
  z  d|z  |z  |z  z   z  ||z  | d	z  z  d|z  |z  z   z  dz  z   ||z  | z  |
z  t          d
d	          z  z   d
|z  |z  |z  z
  z  z   z  d|z  |z  |z  |z  z  }|	                                \  }}}||cxk    rdk    sn J t          ||z
            dk    sJ t          d||||t                    }|                    dddd           dg dfdg dfg|_        |                    |ddd           |                    |ddd           |                    ||           |j        |d|dik    sJ |                                 |                                dddt          d
z  z  d
|z  |z  z  dt          d	z  z  ||z  z  z
  dt          z  ||z  z  z   gk    sJ dt          dz  z  d|z  |z  z  dt          d
z  z  ||z  z  z
  dt          d	z  z  ||z  z  z   dt          d	z  z  ||z  z  z
  dt          z  ||z  z  z   }|                                \  }}}||cxk    rdk    sn J ||k    sJ t          d||||t                    }|                    dddd           |                    dt          z  ddd           |                    |ddd           |                    |ddd           |                    |ddd           |                    |ddd           |                    ||||           |j        |d|d|d|dik    sJ d S )Nzl, E, G, I, AzR1, R2, R3, R4zm, qr   r   dirzr   r   r   r)   r4   r'   rW   r?   r9   r   rQ   rR   r>  r;   ir   iw  i  }   r   i  r@   rO   iiit)r   r   r[   apply_moment_loadre   rd   solve_slope_deflectionpolar_momentr1   r   ro   axial_stressr0   r   r.   r
   rl   rm   r/   )rE   r!   Gr#   r%   rj   rk   r   R4rs   mr{   r   dxdydzr|   r}   s                     r]   test_Beam3DrM  |  s   O,,MAq!Q-..NBBq!Q1A6??DAqLLAqcL"""1aS)))iii.1iii.1AJ999~999~6AO>>qs""""==??q1"Q$l****>>A2a461~---->>q    !Q1qAvax!88888ac!eAqDjlQqSAXr1Q3q5!A#!);L
1Qq< 8Q3q!t8bd1f$8&&'8(*+8, .- -/0s1uQw!AqsQqSy8I
1Qq9 0Q3q!t8bd1f$0&&()A2a419Q;q=	!Aad
AaCE1Q319%1Qq011Q3q!t8bd1f3DEaG,H	!AaA,!"1Qq,) )** + -.aCE!GAI	7
 JBB====q======B,,--2222	Aq!Q	"	"BMM"AQCM000IIIYYY8BMM"ARSM111MM"BbcM222B'''T2t 4444488::!Q1a41Q#ad(AaC. @461Q3< OPPPPPQT'2a46*SAXqs^;d1a4i1oM
1a41Aqs$JBB====q======$$$$$ 
Aq!Q	"	"BMM!1A3M///MM!A#QaSM111MM"ARSM111MM"BbcM222MM"ARSM111MM"BbcM222BB///T2tRE JJJJJJJr_   c                      t          d          \  } }}}}}||g}t          | ||||          }|                                ||z   k    sJ d S )Nzl, E, G, A, I1, I2)r   r   rE  )rE   r!   rG  r%   I1r   r#   rs   s           r]   test_polar_moment_Beam3DrP    s`     !566Aq!QB	RAq!Q1A>>rBw&&&&&&r_   c            
         t          ddd          \  } }}t          dd          \  }}}t          || |          }|j                            d           |j                            d           |                    |dd           |                    |dd	           |                    d
dd           |                    ||           |j        |         |dz   dz  k    sJ t          d|z  | |          }|j                            d           |j                            d           |                    |dd           |                    |dd	           |                    d
dd|           |                    ||           |j        |         |dz   dz  k    sJ t          d|z  | |          }|                    |dd|           |j        	                    |d| d|d|di          }|	                    t          di          dk    sJ |	                    t          di          dk    sJ t          d|z  | |          }|                    |dd
|           |j        |t          t          dd
          z  |t          t          |d
          z  z
  ||z  t          t          |d          z  z
  k    sJ t          d|z  | |          }|                    |dd|           |j        	                    |d| d|d|di          }|	                    t          di          dk    sJ |	                    t          di          dk    sJ d S )NzE, I, LT)r   realzR, M, P)rR  r   r   r;   r>   r&   r)   r4   rY   r<   r   r9   r   r,   r   r@   i(k )r   r   rd   rp   re   r[   rl   rm   rn   xreplacer   r   )r!   r#   r   r   r   r   beamloadings           r]   test_parabolic_loadsrV    s   i$T:::GAq!id+++GAq! 1a==Df%%%M   OOAq"OOAq" 	OOAq!!!!Q'''q!adU1W,,,, !Q??Df%%%M   OOAq"OOAq" 	OOAq!O###!!!Q''' q!adU1W,,,, !Q??DOOAq!O###i  !RB2q"!=>>GQF##r))))QG$$)))) !Q??DOOAq!O###9.q!Q777.q!Q777810Aq999: ; ; ; ;
 !Q??DOOAq!O###i  !RB2q"!=>>GQF##w....QG$$))))))r_   c                     t          d          } t          d          }t          d          }t          d          \  }}t          d          \  }}}}}	}
t          |||           }|j        | k    sJ |j        d k    sJ t          dd          |_        |j        t          t          dd	          z  k    sJ |j        t          dd          k    sJ d
|
z  dz
  |_        |j        d
|
z  dz
  k    sJ |j        d k    sJ t          t                    5  t          dd          |_        d d d            n# 1 swxY w Y   t          d|t          d|	                    }|j        t          d|	          k    sJ |j        t          |	z  t          |	          dz  z  d	z  k    sJ |                    ddd           |                    t          dd           |                    t          dd           |                    ddd           |                    t          t                     |j        dt!          t"          dd          z  dt!          t"          dd          z  t%          d          z  z   dt!          t"          dd          z  z   dt!          t"          dd          z  dz  z   k    sJ |                                dt!          t"          dd          z  dt!          t"          dd          z  dz  z
  dt!          t"          dd          z  z
  dt!          t"          dd          z  dz  z
  k    sJ dt!          t"          dd
          z  dt!          t"          dd
          z  t%          d          z  z   dt!          t"          dd          z  z   d	t!          t"          dd
          z  t%          d          z  z   t          |z  |	z  t          |	          dz  z  z  }|                                |d	|z  z   k    sJ dt!          t"          dd          z  dz  dt!          t"          dd          z  dz  z   dt!          t"          dd
          z  z   d	t!          t"          dd          z  dz  z   t          |z  |	z  t          |	          dz  z  z  }|                                |t"          z  |z   d	|z  z   k    sJ t          d|t-          d|df||fd|f                    }|j        t-          d|df||fd|f          k    sJ |j        ||dz  z  dz  k    sJ t          d|t/          d|df|d
z  |f                    }|j        t/          t1          dd          t1          |d          t1          |d
z  |                    k    sJ |j        ||dz  z  dz  k    sJ |                    |d           }|                    d!dd           |                    d"dd           |                    d#dd           dg|_        dg|_        |j        t9          ||dz  z  dz  t"          dk    f||dz  z  dz  t"          d$k    f          k    sJ |j        d k    sJ |j        d$k    sJ |                                                    t"          d%          d&||z  |dz  z  z  k    sJ |                                                    t"          d'          d(||z  |dz  z  z  d)||z  |dz  z  z  z   k    sJ |                                                    t"          d*          d+||z  |dz  z  z  d,||z  |dz  z  z  z
  k    sJ d S )-Nr#   rE   r!   zC3, C4za, c, g, h, r, nr   r,   iq  r'   r)   r?   r   r4   r   r   r;   Z   -   r>   R   rO   r@   r<   r&   r   )   r   r   rW   r   r(  r   iA   r   #   r   i   r   i  i  r9   iXi@
 )r   r   r   rb   cross_sectionr   r   r   r   rq   r   r[   rj   rk   rl   rn   r   r   r   r0   r/   r.   r   r   r   r   re   rd   r   r`   r   )r#   rE   r!   rT   rU   r   rI   ghr   nb0ry   r{   r|   r}   rs   s                    r]   test_cross_sectionrc    s   sAsAsAXFB122Aq!Q1 
aABq    t####fa((Br(3"2"222222vfa000000sQwBqs1u$$$$t####	
		 - -!&!,,- - - - - - - - - - - - - - - 
b!VFA&&	'	'Bvfa000000r!tCFFAI~a/////MM#q"MM"aMM"b"MM"b"B'''7s.q!R8882>QRSUVXZ>[>[;[\]^_\`\`;``1!R<<<=?@ATUVXZ\^A_A_?_`a?ab c c c c2&9!Q&B&B#BRH[\]_`bcHdHdEdefEf#f')*=aQ*G*G'G$HJKL_`aceghLiLiJijkJk$l m m m m	1a((	(2.A!Q.J.J+J1Q44+O	O#Ar1---
.012EaQ2O2O0OPQRSPTPT0T
UWYZ[W[\]W]^abc^d^dfg^gWg	iA88::ac!!!!	1a((	(	*R0CAq!0L0L-LR-O	ORTUhijlnpqUrUrRr	r"1b!,,,R/
024Q$q&Q2B	DA==??bdRi!A#o---- 
b!WVaVaVaV<<	=	=Bwv1v1v1vFFFFFFqAvby((((	b!Xfq!fqsAh77	8	8Bx1wq!}}gaPQcSTooVVVVVVqAvby(((( 	GALLaLLQLLQAJhAO?i1a4AG(<qAvby!r'>RSSSSSS?d""""8r>>>>7799>>!Q41QT?22227799>>!R  E1Q3q!t8$4uac!Q$h7G$GGGGG<<>>q"%%!A#ad();fac!Q$h>O)OOOOOOOs   D77D;>D;c                     t          d          } t          ddddd          }|                    dddd	
           |                    d| z  ddd
           dg dfdg dfg|_        |                                g dk    sJ d S )Nr   r   r      d   r   r   r   r?  rA  rW   r   r@  )r   )r   r   )r   i,  )r   r   r[   rd   r  r   rs   s     r]   test_max_shear_force_Beam3Drh  7  s    Ar2r3##ALL1A3L///LLAQaSL111999~III7AO"A"A"AAAAAAAr_   c                     t          d          } t          ddddd          }|                    dddd	
           |                    d| z  ddd
           dg dfdg dfg|_        |                                g dk    sJ d S )Nr   r   r   re  rf  r   r   r   r?  rA  rW   r   r@  )r   )r   r   )r   i>  )r   r   r[   rd   r
  rg  s     r]   test_max_bending_moment_Beam3Drj  ?  s    Ar2r3##ALL1A3L///LLAQaSL111999~III7AO==???????????r_   c                     t          d          } t          ddddd          }|                    dddd	
           |                    d| z  ddd
           dg dfdg dfg|_        |                                 t          d          }t          d          }t          d          }|                                dd|f||fgk    sJ d S )Nr   r   r   re  rf  r   r   r   r?  rA  rW   r   r@  z495/14z-10 + 10*sqrt(10793)/43z(10 - 10*sqrt(10793)/43)**3/160 - 20/7 + (10 - 10*sqrt(10793)/43)**4/6400 + 20*sqrt(10793)/301 + 27*(10 - 10*sqrt(10793)/43)**2/560r   r<   )r   r   r[   rd   rD  r   r  )r   rs   rI   rz   r{   s        r]   test_max_deflection_Beam3Drl  G  s    Ar2r3##ALL1A3L///LLAQaSL111999~III7AOA)**A  V  	W  	WA&2q'Aq6!:::::::r_   c                  V   t          d          } t          ddddd          }|                    ddd	d
           |                    ddd	d
           |                    ddd	d
           |                                 |                                                    | d          t          d          k    sJ |                                                    | d          t          d          k    sJ |                                                    | d          t          d          k    sJ |                                                    | d          t          d          k    sJ |                                                    | d          t          d          k    sJ d S )Nr   r   r   re  rf  r   r   r,   r>   r=  r<   r   r4   z1/40rO   z17/280rW   z53/840r   z2/35z3/56)r   r   rC  solve_for_torsionangular_deflectionr   r   rg  s     r]   test_torsion_Beam3Drp  S  s   Ar2r3##AArs+++B,,,B,,,!!&&q!,,????!!&&q!,,0A0AAAAA!!&&q"--1B1BBBBB!!&&q"--@@@@!!&&q"--@@@@@@r_   N)Esympy.core.functionr   sympy.core.numbersr   r   sympy.core.singletonr   sympy.core.symbolr   r   sympy.sets.setsr	   sympy.simplify.simplifyr
   &sympy.physics.continuum_mechanics.beamr   sympy.functionsr   r   r   r   r   sympy.testing.pytestr   sympy.physics.unitsr   r   r   r   r   r   sympy.geometryr   r   r   r   sympy.core.sympifyr   r   r   rj   rk   r~   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r&  r,  r2  r;  rM  rP  rV  rc  rh  rj  rl  rp  r   r_   r]   <module>r}     s?   & & & & & & - - - - - - - - " " " " " " / / / / / / / / $ $ $ $ $ $ , , , , , , 7 7 7 7 7 7 M M M M M M M M M M M M M M ' ' ' ' ' ' @ @ @ @ @ @ @ @ @ @ @ @ @ @ 9 9 9 9 9 9 = = = = = = = = = = = = & & & & & &
F3KK
F3KK			Bj j jZ  >  .B B B8; ; ;@4= 4= 4=n# # #J !  !  !F4M 4M 4MlL_ L_ L_\2i 2i 2ih6 6 66. . ..
9 
9 
9)C )C )CV: : :B7 7 74N N N47 7 7(3K 3K 3Kl' ' '9* 9* 9*x?P ?P ?PBB B B@ @ @
; 
; 
;A A A A Ar_   