
    _-Ph%                         d Z ddlZddlmZ ddlmZmZmZm	Z	m
Z
 ddlmZmZ  G d de          Z G d d	e          Z G d
 de          ZdS )zTest elasticity example.    N)
coo_matrix)linear_elasticitylinear_elasticity_p1
q12d_local
p12d_local
p13d_local)TestCaseassert_almost_equalc                       e Zd Zd Zd ZdS )TestLinearElasticityP1c                    g }t          j        ddgddgddgg          }t          j        g dg          }|                    ||f           t          j        ddgddgddgddgg          }t          j        g dg dg          }|                    ||f           t          j        g dg dg dg dg          }t          j        g d	g          }|                    ||f           || _        d S )
Nr      )r   r      )r      r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r   r   )nparrayappendcases)selfr   VEs       c/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/pyamg/gallery/tests/test_elasticity.pysetUpzTestLinearElasticityP1.setUp   s    Hq!fq!fq!f-..Hiii[!!aV Hq!fq!fq!fq!f566Hiii+,,aV HiiiIIIyyyABBHlll^$$aV


    c                 r    | j         D ].\  }}t          ||          \  }}t          ||z  d|z             /dS )z-Check that rigid body modes lie in nullspace.r   N)r   r   r
   )r   r   r   ABs        r   test_rigid_body_modesz,TestLinearElasticityP1.test_rigid_body_modes    sO    J 	* 	*DAq'1--DAq!QqS))))	* 	*r   N)__name__
__module____qualname__r   r"    r   r   r   r      s2          (* * * * *r   r   c                       e Zd Zd Zd ZdS )TestLinearElasticityGridc                     t          j        ddgddgg          }t          j        g dg dg          }t          ddd          \  }}t          |                                |           t          ||           d S )	N羉؉+A        r   r   )r   r        j@333333?r   nu)r   r   r   r
   toarray)r   
A_expected
B_expectedr    r!   s        r   test_1x1z!TestLinearElasticityGrid.test_1x1(   s    X4 "O46 7 7
Xyyy(yy* + +
 !337771AIIKK444Az*****r   c                    t          j        g d          }t          j        g d          }t          j        g d          }t          |||ffd                                          }t          j        g dg dg dg dg d	g dg d	g dg          }t	          d
dd          \  }}t          |                                |           t          ||           d S )N)(r*   ;;@緅؉+؉yr*   r6   r5   r8   r7   r5   r*   r7   ؉y@r6   r6   r*   r9   r7   r5   r6   r7   r9   r*   r5   r5   r9   r7   r*   r6   r7   r8   r6   r5   r*   r8   r7   r5   r6   r*   )(r   r            r   r      r;   r<   r   r   r:   r=   r;   r   r   r:   r=   r<   r   r   r   r:   r;   r   r   r   r=   r<   r   r   r   r:   r;   r   r   r   r=   r<   )(r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r:   r:   r:   r:   r:   r=   r=   r=   r=   r=   r;   r;   r;   r;   r;   r<   r<   r<   r<   r<   )   r>   )shape)      ?r+         ?)r+   r@         )r+   r@   rA   )r@   r+   rB   )r   r   r,   r-   r.   )r   r   r   r0   r   r
   )r   datarowcolr1   r2   r    r!   s           r   	test_1x1bz"TestLinearElasticityGrid.test_1x1b3   s$   x * * * + + h $ $ $ % % h $ $ $ % %  Sz 2&AAAIIKK
X}}}-~~,}},}}-~~-~~-~~,}}. / /
 !337771AIIKK444Az*****r   N)r#   r$   r%   r3   rF   r&   r   r   r(   r(   '   s2        	+ 	+ 	+&+ &+ &+ &+ &+r   r(   c                        e Zd Zd Zd Zd ZdS )TestLocalStiffnessMatrixc                 ~   t          j        g dg dg dg dg dg dg dg dg          d	z  }t          j        g d
g dg dg dg dg dg dg dg          dz  }t          j        ddgddgddgddgg          }t          t          |dd          |           t          t          |dd          |           t          t          |dd          ||z              t          j        g dg dg dg dg dg dg dg dg          d	z  }t          j        g dg dg dg d g d!g d"g d#g d$g          dz  }t          j        ddgd%dgd%dgddgg          }t          t          |dd          |           t          t          |dd          |           t          t          |dd          ||z              d S )&N)r:   r   r   r   rL   )r   r:   rL   r   rL   rK   r   rJ   )rJ   rL   r:   rL   r   r   rK   r   )r   r   rL   r:   rL   rJ   r   rK   )rK   rL   r   rL   r:   r   rJ   r   )rL   rK   r   rJ   r   r:   rL   r   )r   r   rK   r   rJ   rL   r:   rL   )rL   rJ   r   rK   r   r   rL   r:   g      (@)r:   r   rK   rK   rM   r   r   )r   r:   r   r   rM   rK   rM   rK   )rK   r   r:   rM   r   rM   rK   r   )rM   r   rM   r:   r   rK   r   rK   )rK   rM   r   r   r:   r   rK   rM   )rM   rK   rM   rK   r   r:   r   r   )r   rM   rK   r   rK   r   r:   rM   )r   rK   r   rK   rM   r   rM   r:   g      @r   r   )r   r   rK   r   rM   rL   r   rL   )r   r>   rL   r:   rL   rJ   r   )rK   rL   r   rL   r   r   rM   r   )r   r:   rL   r>   rL   rN   r   rJ   )rM   rL   r   rL   r   r   rK   r   )rL   rJ   r   rN   r   r>   rL   r:   )r   r   rM   r   rK   rL   r   rL   )rL   rN   r   rJ   r   r:   rL   r>   )r:   r   r   rM   rK   rM   rK   r   )r   r;   r   r   rM   rL   rM   )r   r   r:   rM   rK   rM   rK   r   )rM   r   rM   r;   r   rO   r   rL   )rK   rM   rK   r   r:   r   r   rM   )rM   rL   rM   rO   r   r;   r   r   )rK   rM   rK   r   r   r   r:   rM   )r   rO   r   rL   rM   r   rM   r;   r   )r   r   r
   r   )r   LMverticess       r   test_q12d_localz(TestLocalStiffnessMatrix.test_q12d_local]   s   H2222222222222222222222224 5 5 8<< H2222222222222222222222224 5 5 8;; 8aVVVV% & &
 	JxA66:::JxA66:::JxA66A>>>H2222222222222222222222224 5 5 8<< H2222222222222222222222224 5 5 8;; 8aVVVV% & &
 	JxA66:::JxA66:::JxA66A>>>>>r   c           	      \   t          j        g dg dg dg dg dg dg          }t          j        g dg dg dg dg dg dg          }t          j        d	d	gd
d	gd	d
gg          }t          t          |d
d	          |           t          t          |d	d
          |           t          t          |d
d
          ||z              t          j        ddgddgddgg          }t          j        g dg dg dg dg dg dg          }t          t          |dd
          |           d S )N)rA   rA   rB   r   r   rB   )rB   rB   rA   r   r   rA   )r+   r+   r+   r   r   r+   )      ?rA   rM   rB   rB   r   )rA   rU   r   rB   rB   rM   )      r+   r   r+   r+   r   )rB   rB   r   rA   rA   r   )r+   rV   r   r+   r+   r   r   r   g<?g &Z}إ?g;A?gE]M?ghȬ?g㞀g?)gKb@@{`?7ikCܿegӿ篗d)rW   g5 @6=%^ڿ^w׿wiO)rX   r\   g[oHa@~j	갿eȿ9
=?)rY   r]   r`   g*?q({#?ѡ-)rZ   r^   ra   rc   g;'s?K{)r[   r_   rb   rd   re   g|@،8@r   )r   r   r
   r   )r   rP   rQ   r   Ks        r   test_p12d_localz(TestLocalStiffnessMatrix.test_p12d_local   s   H222222222,,,,,,2224 5 5 H333333---222222---/ 0 0 Hq!f!f!f   	Jq!Q//333Jq!Q//333Jq!Q//Q777 H(*;<(*;<(*;<> ? ? H > > >> > >= = =< < << < <= = => ? ? 	Jq!Q//33333r   c                    t          j        g dg dg dg dg dg dg dg dg dg dg dg dg          dz  }t          j        g dg dg dg dg d	g d
g d	g dg dg d
g dg dg          dz  }t          j        g dg dg dg dg          }t          t          |dd          |           t          t          |dd          |           t          t          |dd          ||z              d S )N)r   r   r   rM   r   r   r   rM   r   r   r   rV   )rM   rM   rM   r   r   r   r   r   r   r   r   r@   )r   r   r   r   r   r   r   r   r   r   r   r+   g      @)r:   r   r   rK   rM   rM   rM   r   r   rM   r   r   )r   r:   r   r   rM   r   rM   rK   rM   r   rM   r   )r   r   r:   r   r   rM   r   r   rM   rM   rM   rK   )rK   r   r   r   r   r   r   r   r   r   r   r   )rM   rM   r   r   r   r   r   r   r   r   r   r   )rM   r   rM   r   r   r   r   r   r   r   r   r   )r   rK   r   r   r   r   r   r   r   r   r   r   )r   rM   rM   r   r   r   r   r   r   r   r   r   )r   r   rK   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )r   r   r
   r   )r   rP   rQ   r   s       r   test_p13d_localz(TestLocalStiffnessMatrix.test_p13d_local   s   H>>>>>>>>>>>>;;;;;;;;;>>>;;;;;;;;;>>>@ A A DGG H?????????;;;<<<<<<<<<;;;<<<<<<<<<;;;= > > ADD HiiiIIIyyyABBJq!Q//333Jq!Q//333Jq!Q//Q77777r   N)r#   r$   r%   rS   rg   ri   r&   r   r   rH   rH   \   sC        5? 5? 5?n(4 (4 (4T8 8 8 8 8r   rH   )__doc__numpyr   scipy.sparser   pyamg.gallery.elasticityr   r   r   r   r   numpy.testingr	   r
   r   r(   rH   r&   r   r   <module>ro      s         # # # # # #' ' ' ' ' ' ' ' ' ' ' ' ' ' 8 7 7 7 7 7 7 7* * * * *X * * *82+ 2+ 2+ 2+ 2+x 2+ 2+ 2+jA8 A8 A8 A8 A8x A8 A8 A8 A8 A8r   