def test_p2(self): lhs, cons = main(nelems=4, degree=2, figures=False, solvetol=0) numeric.assert_allclose64( lhs, 'eNpjYECAPKNKw3lAWGmYZyRlwmfyxviNMZ+JlAmvKZcpMxBymfK' 'abjXdYroZCLcAWT+QIJIxDGcMAwyY9f5e3HDe5Fyc0XvDQv3+C4LnFp3tMPpg+F2f84LAuYqzrUasRuf' '1DS/8Plt9tsvol+ErfbELbOfKzgIAw+QzeA==') numeric.assert_allclose64(cons, 'eNpjYEACDaTBH6YIyECBOcgQAP8cIg8=')
def test_rot0(self): lhs0, lhs = main(nelems=3, viscosity=1e-2, timestep=.1, tmax=.05, rotation=0, figures=False) numeric.assert_allclose64( lhs0, 'eNo1k8ltwEAIRRuyJfallijH9N9CZj74BIIPHh7YHvbn52Uu+nv1YdK49mWn3kBN4FNkMwJNrX+vPV1S' '175cpVNCOgpxvxlORalpGhKmJdO0fCPUDgkTun8JtRilau3DUCun5LwEJdLIsAYSLPcrR8BiDufY+iK8' 'EgREq2GJegQtCkczvgjnSDiuVd/PS92EPlWXyxlfNPCez77VBkBHiZms7XzVb3OLKWlCrXRCqS4A9lpk' 'QBqgfRwPAggOngCr5nVcBeQC+7klEqD9utLADbVaCXqEJBRBgdI3szHLK6JDqtiww0qfoTiAodRoN5e5' 'a6gpEfIYUrOHk4CCa1EamWA6lXHCLv4J5MxNAif9ngEyMnQPM6BJ/jLJ67CDprdMN3fXpegoPvP3BipX' 'krjZKJoM59zumWtYeZRtxvdWYyThtu27ly/3/iMac3qH7N515fLijkl5D47Eag8fkilK0rlXP5RBEG+R' '339o6Mpq') numeric.assert_allclose64( lhs, 'eNo1UslxADEIa2h3hvuoJZNn+m8hWHhfMELCIGMP+/PzMkn8vfowBZ34crBdgBcgaQBuDqCJ8u+1YZAu' 'o6lWIrYMDgMjGs1Nc6WmtQmX73NGDa2NGD3K0VTtPq9a25S1piIj4UxIpNGMNeQUWNJAYDmTTjKxPoQv' 'BYBoNSJRL6Flm2vGh3AuheNE9ZLbVDBxtsGGV1yx5cT1o+gw7Blm7uhcS1V2WY2EgqLH9ol9Rh7HPmbZ' 'Wc6f14NhxEgDgPQB/JnXYEzW2WUKIfcLXdfLN9ShDV4Ph4HRgwITv5m9E8o4gu2KDUtUOqjCARtK7Z5D' 'Zd5vqJUIeaxT+w+GHcbs+qz0M6EdT713W75AnUFO4gwf2JoBmDoMev06pdwLWPdaZLRiNlqrgmnFUor7' 'G5f3HWmCvUORTTjPnn5G2Budw3fcefs3nOW97xQk6cH7Jxr3noOvWHRvz/T7BFoDp5Sw5w0XQpK+ZBHi' 'raTtbXk0KlZ2vP39B5jEykU=')
def test_rot1(self): lhs0, lhs = main(nelems=3, viscosity=1e-2, timestep=.1, tmax=.05, rotation=1, figures=False) numeric.assert_allclose64( lhs0, 'eNo9UkluBEEI+1C3xL68Jcox///CFKYmfQGBy40N9rA/P2+m5N9rT0Qjvux8En3YuCe+HCQoFBEKbkF4' 'wiH7pBod1tJ9osQopMZESwPna+myiIpNNPd3mrIcFXiqFXQBxZd02GUqYQvZDmugwZIGAIs5khPrW+EL' 'QUG0GpGoF9DyT/6tzGAD4ZioXrKNWmOCyle+NVSqRO2k3LoDKrT5+QbJ3TZRShErSSe2JIy0i/P0APMh' 'BmO4AhCiWJL3OpAUO4LnKB6DizfxUhh89rrTpl2qWl9TavcrxxwIy1CM3eLQI7KK68o4yhOWvMa1vgp5' 'rEkB6GkAcba4LkrbSfw5lIjhvDcTmYwki6AhfU05x7RmxV5XsqwZzY6zewuTjwuOF33tYjJIC73U3Hkl' 'Uq8ZtS/Ed0HiAoDDpJmK92DfoD2/8JZdVcGD9Ix7jXGPrVfynPRNuLclaveo3OAXk3wh82M+CTFNYjU+' 'ye8H5sTITg==') numeric.assert_allclose64( lhs, 'eNo9ksuNIDEIRBNqS+YPsYzmOPmnsHZV955AULbxo/yReH5WzM6/5U9JxI1LMudv2SPu+8YllsFCFgqR' 'I1eamsojY0mFNY+oI5FsNLxC0DiJU9G8dFkJJFaG56QptX6VVm3vHDfRW4mmpBVHLNEQLYfgPB9ITuyv' 'Iq8EBbUexL2HgtHv8vwqUpTcAfWxuK/dhnGy2NL8fjnAmA//JNswmGmgYFvBVrNxwjcBtrYjmgyAeqEf' 'HdjJ8mncfBo4EKUUTAFWYaYjjP+AW5icDiBl7c3omDqjyfVcRa4qSlqVhs2POqIqf9zt+i6tgGS5NLnq' 'jiSkhPQ0oDjrBUVJxQ9lD+Lx1InxrMSa7+Tu8/rOCjBy9pXYvm/EWdl+jWmEsUQqmeSAU1byFaEhlvbn' 'zCKoO+iQC7xxdlHJs0akEozLcpPgWfO8pHibxuAy3ymvzStpCRl5fZafBT+z5vX1ZVa02nEaJSNhL3cu' 'wB0+/v0H0NrIrg==')
def test_p1(self): lhs, cons = main(nelems=4, degree=1, figures=False, solvetol=0) numeric.assert_allclose64(cons, 'eNoz0TE01Yk20IHBvMQ8srGpgYFBqq4JQZo6tmHBsQB8/T8F') numeric.assert_allclose64(lhs, 'eNqNkEsOQyEIRTeECZ8L6lqaDrv/LVRB07xZ4+AA90iMIHF6Md0jZvFpIBGgaPboT65umoR50iY/+pNb' 'dynKTMacj/7kzsz/8PfSGLY2OGnvY5OprTJHLQZ4F8M4CVUcZ5WezsoknahLgM7rwLicGLWns5azf+M6' 'KKfznr2/xYZHGg==')
def test_p1(self): lhs, cons = main(nelems=4, degree=1, withplots=False, solvetol=0) numeric.assert_allclose64(cons, 'eNoz0TE01Yk20IHBvMQ8srGpgYFBqq4JQZo6tmHBsQB8/T8F') numeric.assert_allclose64(lhs, 'eNqNkEsOQyEIRTeECZ8L6lqaDrv/LVRB07xZ4+AA90iMIHF6Md0jZvFpIBGgaPboT65umoR50iY/+pNb' 'dynKTMacj/7kzsz/8PfSGLY2OGnvY5OprTJHLQZ4F8M4CVUcZ5WezsoknahLgM7rwLicGLWns5azf+M6' 'KKfznr2/xYZHGg==')
def test_1d_p1(self): res, lhs = main(ndims=1, nelems=10, timescale=.1, degree=1, endtime=.01, withplots=False) numeric.assert_allclose64(res, 'eNoljskNRDEIQxvCUiBsqWU0R/pv4QdyepaxhZXY6LfVpJAkS1fBCZrihSCTtDY4PQpGm9dqXmRBiYX1' 'MWTIPEQoWwdxzKcB9jVR3MgZoZbvJB7xhHY9CNvk/T1t3EFbg+/C/wc4pyZV') numeric.assert_allclose64(lhs, 'eNolzsENwDAIA8CFEgkDJnSWqs/uv0KBvk4yFuALXLeK8d1nwanv5oLQ2ksl2wwdzVFzL8PaQ/iYEi0E' 'pZU+punkqZi+HU7fZl/lF2TuWOR/N3x0slXhqb+eD+HPJKs=')
def test_1d_p2(self): res, lhs = main(ndims=1, nelems=10, timescale=.1, degree=2, endtime=.01, withplots=False) numeric.assert_allclose64(res, 'eNotj8mNBDAIBBMyEs1NLKN5Ov8UZsH7qqKNLbcd+Pk0LC71MVe7VIekmy/lARcuxd+S+VDCemdwXvKD' '0h5Kiw89gWEq17AqZdkcL+/dd46dSUx1xUtspRL7NHVmvyTkJcn5RCX8XYc+AYrfkZfNDwmhtSKBmi7k' '/i8W7Fuzpab39weWJTmO') numeric.assert_allclose64(lhs, 'eNotz8kNxDAMA8CGHED3Uctin+m/hZiyXwMLAkXbYl8/Meb3iSXiCrnw9m0rVK6RSel9DPqY3VDd6SgJ' '3TRgOnK2FgU7SMcOO2aePOzpKqrJK9bR22dfi648OVx5e0Rf544y5rtns53+ElCEzv9M4P8DFyQ2QQ==')
def test_p2(self): lhs, cons = main(nelems=4, degree=2, withplots=False, solvetol=0) numeric.assert_allclose64(lhs, 'eNqVkEsSAyEIRC+kVbb89CypLOf+VwiCVuIyNYuH0EAzXCDl1cr3G7DxVCnSmgVp9os7f3SYnZ/KBWO9' 'nSZ88eS3jtBnEi3YVC6e/NYxGW0iKXLz5FPn/to//L1dZpvrpm4atw6BU0v1gCLwCq1KlblsSrGJ+A1K' 'HAXYsuMCD2JG9QpH4NKYPhTIFslthBR4ILtFY3h16TaSCVWK1g7SbAFZtijlOpcit1Aa4xGK3iWde5Dr' 'vDL2FlpG3h+923IP') numeric.assert_allclose64(cons, 'eNoz0TE01Yk20EHAvMQ8mmJTAwODVF0Toml6ug0HjgUAg5ZcPw==')
def test_p2(self): lhs, cons = main(nelems=4, degree=2, figures=False, solvetol=0) numeric.assert_allclose64(lhs, 'eNqVkEsSAyEIRC+kVbb89CypLOf+VwiCVuIyNYuH0EAzXCDl1cr3G7DxVCnSmgVp9os7f3SYnZ/KBWO9' 'nSZ88eS3jtBnEi3YVC6e/NYxGW0iKXLz5FPn/to//L1dZpvrpm4atw6BU0v1gCLwCq1KlblsSrGJ+A1K' 'HAXYsuMCD2JG9QpH4NKYPhTIFslthBR4ILtFY3h16TaSCVWK1g7SbAFZtijlOpcit1Aa4xGK3iWde5Dr' 'vDL2FlpG3h+923IP') numeric.assert_allclose64(cons, 'eNoz0TE01Yk20EHAvMQ8mmJTAwODVF0Toml6ug0HjgUAg5ZcPw==')
def test_p1(self): cons, lhs, err = main(nelems=4, degree=1, withplots=False, solvetol=0) numeric.assert_allclose64(cons, 'eNptyjkKwDAMRNELSeDREklnCSlSuPX9S9tlgouBz2OM4HRbeXQOYqjUDvVYkAua6A4HWucizbDORuMd' 'nwUuOXmp58nRsP7692cCdHUoSw==') numeric.assert_allclose64(lhs, 'eNoljkESBUEEQy+kq5pE4yy//rLvf4UZZvVICBR1+bE87gpZCqsu4PEK+Qrb0IWr7rtKkMG7KH5iNxOB' 'phr1LogmvRl6bPTNGN0/mhWbYOdBCp4zh5Pjb5scq5qe9DP7W23I/HzN8WHfPWb/if8DoOMtyg==') numpy.testing.assert_almost_equal(err, 6.850e-3, decimal=6)
def test_p2(self): cons, lhs, err = main(nelems=4, degree=2, withplots=False, solvetol=0) numeric.assert_allclose64(cons, 'eNp9yjEOwDAIA8APgRQCBPyWqkMH1vx/TDNX6WDZ0tlInC7u0F4cJKrYzS7SipO6NexmGWZ7hEcWgwR4' 'D0bzmZ/4GHqytIiTAcgfw8HuBTunOOw=') numeric.assert_allclose64(lhs, 'eNp1z7sRAzEIRdGG0Iwef2rxOFT/LezCbuLA0UVwEinB6LO4hM8Kgkh1lwH7rCTWXd0FV+0hLPKsIlTd' 'QIklpCsG7xrv6EZg7mU+b3Mf5+Gzx944Swia3GWUTYO1mxrxOLyucu437Aqnd3W3E6rq++1RMj589uyY' 'Ssbjc9fr64/PX9//kO8F+0tBmQ==') numpy.testing.assert_almost_equal(err, 1.268e-3, decimal=6)
def test_rot0(self): lhs0, lhs = main(nelems=3, viscosity=1e-2, timestep=.1, tmax=.05, rotation=0, figures=False) numeric.assert_allclose64(lhs0, 'eNoB2AAn/1zIZDfgx2U3W8h2ON3ISTdyx1Q31chkODQ6y8V5x+' '3FFDqHOL85TMaNw+PFKzpsPEs8wcNtwsPDTDyFPS496MKXwenCMD1PPqjGFzf/xgE55shXOXMxmcoZy/' 'Q0STWpzu/NUMVCLxzRljriMRnFbMUSxeE66DrXOqvEnMKVxI87VD13O/TCY8HGwjs9nT4KPXPK4cp6Nu' 'DKdcrCNuXKmcqnNp7K78pNNtTJLcpvNinK0smSNo3He8c4NpbHqsd+NorFHsWUwynFlsXVw3/ALMDeO1' '/AvcDnPisGcyQ=') numeric.assert_allclose64(lhs, 'eNoB2AAn/6HIbze/x3A3oMgsOOLIVDdrx1432shaODQ6y8V6x+3' 'FFDqHOL85TcaNw+PFKzpsPEs8wcNtwsPDTDyFPS496MKXwenCMD1PPvLG3zbdxiM5HMkOOdjM78qVy4A' '07zQpM3/NUMWSMJbPlzpcMhnFbMUSxeE66DrXOqvEnMKVxI87VD13O/TCY8HGwjs9nT4KPUbM3cvrNPX' 'LX8ybM07K78kXNQnKcMr+LqXJJMttNBjLo8mX0G7Hscc5N+3HnsdHMmbFscXGw87Fg8W1w4XAPcBcPXT' 'AycDnPrEddBk=')
def test_rot1(self): lhs0, lhs = main(nelems=3, viscosity=1e-2, timestep=.1, tmax=.05, rotation=1, figures=False) numeric.assert_allclose64(lhs0, 'eNoB2AAn/y/JijbexwE4w8d4ON3JYDZwx/Q3KshmOF06o8V3xx' '7G4zmJOPU5FcaNwxfG+DlsPEs8wcNtwsPDTDyFPS496MKXwenCMD1PPoPHWjblx6I5VsjyOSw2LDTcNA' '03LDfJNT42jMV9NmY2zzqkNkTFnMU8xQk7DTsAO83EtsK2xKs7bj2UO/TCY8HGwjs9nT4KPZDPKzB8Nn' 'HJKsnFNhM00TOpNtrIDMlPNkY3ZjdxNlnHPceVNi85Ijk5NiPFKcWCNpE7RzuUw9jC98LWw4XCtsHfO3' 'O/q7/nPotaZqU=') numeric.assert_allclose64(lhs, 'eNoB2AAn/7XJqzauxwk4E8gSOMjJaDZkxwg4P8hYOF06o8V2xx7' 'G5DmGOPU5FcaNwxjG+DlsPEs8wcNtwsPDTDyFPS496MKXwenCMD1PPhfI+TWXx8Q5n8igOfw0wTSTNfQ' '29jZ5Nkc2i8V5Njw2zzrINkPFnMU9xQk7DDsAO83EtsK1xKo7bj2UO/TCY8HGwjs9nT4KPcUzADM5MWv' 'J3sk3zI0yhzAwMwrIXcglzI82pjcgy5HHRcfxydA0bTanMy3GNcZOyS45Dzq1w9fDusOyw6rBKMEZPdy' '/N8C9PtY3aIA=')
def test_2d_p1(self): res, lhs = main(ndims=2, nelems=4, timescale=.1, degree=1, endtime=.01, withplots=False) numeric.assert_allclose64(res, 'eNpNkUsSwzAIQy9kZsCY31k6Xeb+V2iMA+lKBGn0SLIGyfiQkFwQQ1RwKygTXeADJkVcYIPceOtilK3g' 'SJhDkNm/U8k2OlrtRevyxhHLoXjQVndde8+MK59Db18HBc4LZBDJ2jrVUmtfud4/ueotTvc+HHBlzIEn' '5fHTLPJWwf1a9xAasrvv6xftUjDmlRtySsxrdbitDhfhZRaimWas5y8Yn49Nwn7OuXvON1Sx7JOpeO5C' '9QwvtzO8VoXb6nAjGtqIB/r9AX6LebM=') numeric.assert_allclose64(lhs, 'eNpVkcsRwyAMRBuCGf0RtWRyTP8tJBJISU6Wdtf7wJaBOh4ojq9pY+pGP4N6DkQMr6ljuhqkI7w8FCZL' 'B40/u3yNjpZTyW4vXJcXbS7c+Sr5onR4OydFw5AhuHbsBLJiJwGLJ2JUc+uVa/3murhIVdykKSAHaUjp' 'LOGdh9qmyaad90Iyi242OvoC/tUrV3rlurhIVdykqab386ud64OkYQAUA8O9n7OcQ267fw7gz6lkGx2t' '8qZ1+8U936ubdqU=')
def test_1d_p2(self): res, lhs = main(ndims=1, nelems=10, timescale=.1, degree=2, endtime=.01, figures=False) numeric.assert_allclose64( res, 'eNoBPADD/6kgyiOI2Pspriq7K4cuhC9sMLsxNjKXMpkyPDJ/MfD' 'PPM5yzTjNd83azV3PMdBa0a7TNdXK2FXXL9xP31+mHuU=') numeric.assert_allclose64( lhs, 'eNrr0c7SrtWfrD/d4JHRE6Ofxj6mnqaKZofNDpjZmQeYB5pHmL8' 'we23mb5ZvWmjKY/LV6KPRFIMZ+o368dp92gCxZxZG')
def test_1d_p1(self): res, lhs = main(ndims=1, nelems=10, timescale=.1, degree=1, endtime=.01, figures=False) numeric.assert_allclose64( res, 'eNoBKADX/0EjOSuY1xUtjC+JMNcyNDNLMwgzw81EzUHM8cy0zsD' 'P89i20xgrvNxPhBPC') numeric.assert_allclose64( lhs, 'eNrbocann6u3yqjTyMLUwfSw2TWzKPNM8+9mH8wyTMNNZxptMir' 'W49ffpwYAI6cOVA==')
def test(self): lhs0, lhs = main(nelems=8, init='bubbles', timestep=.01, maxtime=.05, figures=False) numeric.assert_allclose64(lhs0, 'eNrdjjEKwlAMhgVv4FgnF3dpfY+ugquTuDjY3cEDCJ08SWfRUs' 'RFBDf/P48Kgh28ghS6t1CM1zCBQELyffG4YS6+9HjDCSkOmhvuJAv8UUSn3R5HrblO5vZjuq4AcUamu7' '74o4+ZmYVUeOOBOy7oMWLXLWTKhLWsZMgGNzgUqJDwFTxNbJZ5yZMyqVe1PM3EhvY6bl2qrrNyVhKb0A' '5sE3juoPZMyUMu8+u4Cbay5u/HVF0NSrbOc2v22fmT+AJFl32r') numeric.assert_allclose64(lhs, 'eNotzT1IQlEUwHGIMBycGhuFdAgV877o3eOSBdGioCAhLg4uToF' 'L9UBorBcRNgbSLDgJpk09X9x7/Mgi4YU0hIL0FkOaGoKOGXf73XP+ZzNYDu6wlL+AH7InhXygVw4urWd' 'YJXCCtnz8tx2WYbtKP/SCU2nJDqmQKX8l0A/tBarowol8l6/0U8ATfMEqHmAJHa0qbmGEyracShcJ+C0' 'WZ3Xv4KlHZUtOpKNlsR/FVnJKWpk1O9SpYpzZCiqLyieb3RZU3sK6N0dyH0j45mbJCA6e0jST8J0+58W' 'V0NRV0OEYtsEJQz7kV+JW6OoaXID2ZyM+4pqqqyvwBmMoQRQWoMu7fBXWSDbCy+EG7IPNdX7Gddoaw3L' '4G+4gCTe8odbUY+qUoEFyDl9Uuuxk29tUjtJWkiSvxsS1WTSddGuBOjc0ExMe09N0N4d0u0vlBm1dk2j' 'GkTG3M15Ts+2i6W4eGYfGL86izcg=')
def test_iters(self): it = iter( solver.impliciteuler( 'dofs', residual=self.residual, inertia=self.inertia, lhs0=self.lhs0, timestep=100)) # involves 2-level timestep scaling assert numpy.equal(next(it), self.lhs0).all() numeric.assert_allclose64( next(it), 'eNpzNBA1NjHuNHQ3FDsTfCbAuNz4nUGZgeyZiDOZxlONmQwU9W3OFJ/pNQAADZIOPA==' )
def test_p1(self): lhs0, lhs1 = main(nelems=3, viscosity=1e-2, degree=1, warp=False, figures=False) numeric.assert_allclose64( lhs0, 'eNpTvPBI3/o0t1mzds/pltM65opQ/n196QvcZh4XO03MTHbolZ' '8+dVrxwlP9rycVL03Xjbm45tQfrZc37M/LGLBcFVc/aPDk/H3dzEtL9EJMGRgAJt4mPA==' ) numeric.assert_allclose64( lhs1, 'eNoBUgCt/6nOuTGJy4M1SCzJy4zLCjcsLk3PCst/Nlcx9M2DNe' 'DPgDR+NB7UG8wVzSwuPc6ByezUQiudMKTL/y4AL73NLS6jLUov8s4zzXoscdMJMSo2AABO+yTF' )
def test_p2(self): lhs0, lhs1 = main(nelems=3, viscosity=1e-2, degree=2, warp=False, figures=False) numeric.assert_allclose64( lhs0, 'eNp7ZmB71sY46VSq2dLzludvnMo20jFHsJ7BZaXObzbedDrVbJ' 'nBjPM1ZkuNGaAg6nyGQcvJ6DPPDHzP+JnMPsltwKl1/DyrYcPJUxf0LuXqvDkzzYgBDsz0L+lOvixinH' 'X26/nvVy0Nfp9rMGNgAADUrDbX') numeric.assert_allclose64( lhs1, 'eNoBhAB7/3Axm8zRM23KHDbJzyrMAs7DzOY2yM/vLvfJ8TQ/N8' 'AvSc5FMkjKwTaQzlo0K8scNuwwLDKfNWQzcCLOzCs1jTEA0FcxA8kLzcAvU81jMz/JVTELMUjOLDL+ye' 'MsaS6lLkLOajM9LDgwWNBzzOvOMTBCMHnXnDHFzcDTYDCgKo0vLzcAACOlOuU=')
def test_p1_warped(self): lhs0, lhs1 = main(nelems=3, viscosity=1e-2, degree=1, warp=True, figures=False) numeric.assert_allclose64( lhs0, 'eNozv9CjZ35a2axMx/P0jdPq5uZQ/kn9zVeVzewubjHhNjmk53' 'P662nzC75ad0/evZSv+/1846n3WluvK51PNhC86q1xz2DueWXdiZc4DepNGRgALu0l4g==' ) numeric.assert_allclose64( lhs1, 'eNoBUgCt/67OazGNy5M1fy2Oy+XL+ja0LqzO8sqmNlIxfM6TNc' 'fPoTRQNCrU98sHzrQul81aycHY6dfjL4PLpC5YLsfN7S+BLMEu3s74zF0pHdKIMWQ2AAB5wCwp' )
def test_1d_p1(self): res, lhs = main(ndims=1, nelems=10, timescale=.1, degree=1, endtime=.01, withplots=False) numeric.assert_allclose64( res, 'eNoljskNRDEIQxvCUiBsqWU0R/pv4QdyepaxhZXY6LfVpJAkS1fBCZrihSCTtDY4PQpGm9dqXmRBiYX1' 'MWTIPEQoWwdxzKcB9jVR3MgZoZbvJB7xhHY9CNvk/T1t3EFbg+/C/wc4pyZV') numeric.assert_allclose64( lhs, 'eNolzsENwDAIA8CFEgkDJnSWqs/uv0KBvk4yFuALXLeK8d1nwanv5oLQ2ksl2wwdzVFzL8PaQ/iYEi0E' 'pZU+punkqZi+HU7fZl/lF2TuWOR/N3x0slXhqb+eD+HPJKs=')
def test_2d_p1(self): res, lhs = main(ndims=2, nelems=4, timescale=.1, degree=1, endtime=.01, figures=False) numeric.assert_allclose64( res, 'eNoBgAB//yYduB+R2yHZjyYvKJvWV9YvKI8mV9ab1rgfJh0h2ZH' 'b7CVvKBklqycdLpUvmy4/MJUvHS4/MJsubyjsJasnGSX12mPYVh5+4LzRMNBI0oPQMNC80YPQSNJj2PX' 'afuBWHivbtdjS4kHgQ9Tu0kDZk9fu0kPUk9dA2bXYK9tB4NLih2hBgw==') numeric.assert_allclose64( lhs, 'eNoNyKENhEAQRuGEQsCv2SEzyQZHDbRACdsDJNsBjqBxSBxBHIg' 'J9xsqQJ1Drro1L1/eYBZceGz8njrRyacm8UQLBvPYCw1airpyUVYSJLhKijK4IC01WDnqqxvX8OTl427' 'aU73sctPGr3qqceBnRzOjo0xy9JpJR73m6R6YMZo/Q+FCLQ==')
def test_p1(self): lhs0, lhs1 = main(nelems=3, viscosity=1e-2, degree=1, warp=False, withplots=False) numeric.assert_allclose64( lhs0, 'eNqFTzkSAzEI+5A9A+KweUsm5f7/Cwt4t0mTCg0SktDBNj4ToH1NGwD3nFgU19RhHFoT4n5NT0IItUig' 'DQLOZ/HXA7QOAeECLzEZQJ8qtRdIpGbu+Vzom0qiP2lCLUkza2ZFbXz4tt2VmZe3RLwKpO2m5xn1lK5k' '1OMUiC4yU7JKArUoRQqepzSkwApEe2RMg0yxIjLEK4S+N1c4S6w=') numeric.assert_allclose64( lhs1, 'eNpVT7ltBEEMa2gH0P/UYjjc/lvwiPIFF1EQKZKyh/35ORZZ7/HHo33wiHK8xx5tb6CzvCcuQUazuAqC' 'osJ9sEUTCtWo9ejC7RXk4A1JEJGMlI/5Ed+F6CpFLZeoUJhyqmDDZP0V5zXNxtW9VlJdQwllDKrIKoQb' 'VdkIDdn+T9P27ZaNSxI4cOg2NjLDcF8iVK8ixF8GUiOCl7vaZNDvH5IHS/I=')
def test_p1_warped(self): lhs0, lhs1 = main(nelems=3, viscosity=1e-2, degree=1, warp=True, withplots=False) numeric.assert_allclose64( lhs0, 'eNqFjrutQzEMQxeyAFN/z/Lwyrv/CpHkpEiVSgIPQVIXbP0RA/yQLQCnL3EIHtJlqqevpPpDXsCFWyCc' 'GHKQe4SfGWXAABTpsA8oQbMJO7IFpNtc1rhRjrcz3b/bOHiGmdrdUaloxUX0TtZ9e+XIWBA+DlKzeqKI' 'x6Rx+t1eloktx25HGW4GZ+x+qmVPRtVYP9UyQA7P1P3/AnrIS7Y=') numeric.assert_allclose64( lhs1, 'eNo9T8utBDEIayiRMH9qWe1x+m9hA5n3TljY2FgXbH22OuezbWkGem4WomfrUsro6SbybD8El/dio3hA' 'SowCDJ5TdbMBAslmglLGyzmGMMAn7TXf7DqxbJgLhtolomJikVazcfVq6X9cUl3XE6Ovm5+8OJ+AogEz' '/7XS8QdiXgRR3luxAcw+ZlK3Llj1luJXCXTuKZWRExJV1FLDre3n+RbQ9welMUvq')
def test_1d_p2(self): res, lhs = main(ndims=1, nelems=10, timescale=.1, degree=2, endtime=.01, withplots=False) numeric.assert_allclose64( res, 'eNotj8mNBDAIBBMyEs1NLKN5Ov8UZsH7qqKNLbcd+Pk0LC71MVe7VIekmy/lARcuxd+S+VDCemdwXvKD' '0h5Kiw89gWEq17AqZdkcL+/dd46dSUx1xUtspRL7NHVmvyTkJcn5RCX8XYc+AYrfkZfNDwmhtSKBmi7k' '/i8W7Fuzpab39weWJTmO') numeric.assert_allclose64( lhs, 'eNotz8kNxDAMA8CGHED3Uctin+m/hZiyXwMLAkXbYl8/Meb3iSXiCrnw9m0rVK6RSel9DPqY3VDd6SgJ' '3TRgOnK2FgU7SMcOO2aePOzpKqrJK9bR22dfi648OVx5e0Rf544y5rtns53+ElCEzv9M4P8DFyQ2QQ==' )
def test_rot0(self): lhs0, lhs = main(nelems=3, viscosity=1e-2, timestep=.1, tmax=.05, rotation=0, figures=False) numeric.assert_allclose64(lhs0, 'eNo1k8ltwEAIRRuyJfallijH9N9CZj74BIIPHh7YHvbn52Uu+nv1YdK49mWn3kBN4FNkMwJNrX+vPV1S' '175cpVNCOgpxvxlORalpGhKmJdO0fCPUDgkTun8JtRilau3DUCun5LwEJdLIsAYSLPcrR8BiDufY+iK8' 'EgREq2GJegQtCkczvgjnSDiuVd/PS92EPlWXyxlfNPCez77VBkBHiZms7XzVb3OLKWlCrXRCqS4A9lpk' 'QBqgfRwPAggOngCr5nVcBeQC+7klEqD9utLADbVaCXqEJBRBgdI3szHLK6JDqtiww0qfoTiAodRoN5e5' 'a6gpEfIYUrOHk4CCa1EamWA6lXHCLv4J5MxNAif9ngEyMnQPM6BJ/jLJ67CDprdMN3fXpegoPvP3BipX' 'krjZKJoM59zumWtYeZRtxvdWYyThtu27ly/3/iMac3qH7N515fLijkl5D47Eag8fkilK0rlXP5RBEG+R' '339o6Mpq') numeric.assert_allclose64(lhs, 'eNo1UslxADEIa2h3hvuoJZNn+m8hWHhfMELCIGMP+/PzMkn8vfowBZ34crBdgBcgaQBuDqCJ8u+1YZAu' 'o6lWIrYMDgMjGs1Nc6WmtQmX73NGDa2NGD3K0VTtPq9a25S1piIj4UxIpNGMNeQUWNJAYDmTTjKxPoQv' 'BYBoNSJRL6Flm2vGh3AuheNE9ZLbVDBxtsGGV1yx5cT1o+gw7Blm7uhcS1V2WY2EgqLH9ol9Rh7HPmbZ' 'Wc6f14NhxEgDgPQB/JnXYEzW2WUKIfcLXdfLN9ShDV4Ph4HRgwITv5m9E8o4gu2KDUtUOqjCARtK7Z5D' 'Zd5vqJUIeaxT+w+GHcbs+qz0M6EdT713W75AnUFO4gwf2JoBmDoMev06pdwLWPdaZLRiNlqrgmnFUor7' 'G5f3HWmCvUORTTjPnn5G2Budw3fcefs3nOW97xQk6cH7Jxr3noOvWHRvz/T7BFoDp5Sw5w0XQpK+ZBHi' 'raTtbXk0KlZ2vP39B5jEykU=')
def test_rot1(self): lhs0, lhs = main(nelems=3, viscosity=1e-2, timestep=.1, tmax=.05, rotation=1, figures=False) numeric.assert_allclose64(lhs0, 'eNo9UkluBEEI+1C3xL68Jcox///CFKYmfQGBy40N9rA/P2+m5N9rT0Qjvux8En3YuCe+HCQoFBEKbkF4' 'wiH7pBod1tJ9osQopMZESwPna+myiIpNNPd3mrIcFXiqFXQBxZd02GUqYQvZDmugwZIGAIs5khPrW+EL' 'QUG0GpGoF9DyT/6tzGAD4ZioXrKNWmOCyle+NVSqRO2k3LoDKrT5+QbJ3TZRShErSSe2JIy0i/P0APMh' 'BmO4AhCiWJL3OpAUO4LnKB6DizfxUhh89rrTpl2qWl9TavcrxxwIy1CM3eLQI7KK68o4yhOWvMa1vgp5' 'rEkB6GkAcba4LkrbSfw5lIjhvDcTmYwki6AhfU05x7RmxV5XsqwZzY6zewuTjwuOF33tYjJIC73U3Hkl' 'Uq8ZtS/Ed0HiAoDDpJmK92DfoD2/8JZdVcGD9Ix7jXGPrVfynPRNuLclaveo3OAXk3wh82M+CTFNYjU+' 'ye8H5sTITg==') numeric.assert_allclose64(lhs, 'eNo9ksuNIDEIRBNqS+YPsYzmOPmnsHZV955AULbxo/yReH5WzM6/5U9JxI1LMudv2SPu+8YllsFCFgqR' 'I1eamsojY0mFNY+oI5FsNLxC0DiJU9G8dFkJJFaG56QptX6VVm3vHDfRW4mmpBVHLNEQLYfgPB9ITuyv' 'Iq8EBbUexL2HgtHv8vwqUpTcAfWxuK/dhnGy2NL8fjnAmA//JNswmGmgYFvBVrNxwjcBtrYjmgyAeqEf' 'HdjJ8mncfBo4EKUUTAFWYaYjjP+AW5icDiBl7c3omDqjyfVcRa4qSlqVhs2POqIqf9zt+i6tgGS5NLnq' 'jiSkhPQ0oDjrBUVJxQ9lD+Lx1InxrMSa7+Tu8/rOCjBy9pXYvm/EWdl+jWmEsUQqmeSAU1byFaEhlvbn' 'zCKoO+iQC7xxdlHJs0akEozLcpPgWfO8pHibxuAy3ymvzStpCRl5fZafBT+z5vX1ZVa02nEaJSNhL3cu' 'wB0+/v0H0NrIrg==')
def test(self): lhs0, lhs = main(nelems=8, init='bubbles', timestep=.01, maxtime=.05, withplots=False) numeric.assert_allclose64(lhs0, 'eNrdktuthDAMRBsCyYnftazu5+2/hQ3xA0EJCx9YxDmZ8YSOwcfnNGD4P+k4xWDsAlFtF8TOu7BhseSC' 'seRmGIVzFANgcfD6k7tuoINfxRTYuwl5dfDqWL1BIYLE5Z+Fo8RpneT00Fe41TqvVhszIAiYtJnenHSm' 'bizaqEKebktd4dgp/NC0gJiqxN5hyUeLHmcIkUu1PmfXZlteAxU9gDJoZo9R9iRQTfJ0FnmF0dMrv62w' 'gFN9f1Xn/gpTJjqugawseJq/o+10anrlt+QVzsX3gnPMjNYTMd7zvu9JBttLNbzyWuKK5hDnI2TAS+p4' 'Xzp958rvwZXVEtc4dKW8sTzLOj8vXV+TO9jKoSfXZltfAw1oN8NvvH9fWJHkhw==') numeric.assert_allclose64(lhs, 'eNptlFuy4zAIRDdkV/EQINYyNZ93/1u4kng4zswXJJaPuhuScaFcf4yFf265nNh25eH6c48L1c/3t8qk' '/cU9HeA0zpqNwMhmQz6aoiHiOcoWJ5lZkzo8qNOTwabJwKbii1raiibTbFeyGTARlaDaSBhBPPJBVHip' '5uW0tBWNjCMBcbKgkmZjngnAc09qJYx7Ore22uoaqJZAxXByC1Ae9lB322DKhuA9iM6u7bbCAqJspXIN' 'nUffGt2porbM2XWjULh8ptqDqOzabqkr2hzxeWKcVPIzKEXS7w2pofYcKrpyWtIKZgrzSEU6dTj6P9uG' 'XzOtMVRq5bOUFYzHnsVaUAAI+98r3PvxjLQnUKGVz5LWNASjaKate3g1JrobgaiIcz2gC8e+bleIz7Sf' '0/7l2KnA47M26EblgxZCCaJ7ErOCJdG+iPJJLEUPJ98/v7JdOd6T4qVy3FnT5R7vrQovZ6UnOQQjnHq8' 't66hUxnjM4y561Q/vKkzeJ1Q6Uo9xZmpUzzuZTgJOpgfX7Y3btWztPwkXfmUr9JTnJGTAIPMKUfJenbo' 'pjFP0zOrpCuhcpaKirT+xo6ye23rOM082ewGN5KfYXWFV0htrkQ1ah3UWBT12hiYX6skn4OrwCuox2DL' 'ahZxWFuN8//2s7agplepd1htsXU1a505Lv/+AgpBcDw=')
def test_2d_p1(self): res, lhs = main(ndims=2, nelems=4, timescale=.1, degree=1, endtime=.01, withplots=False) numeric.assert_allclose64( res, 'eNpNkUsSwzAIQy9kZsCY31k6Xeb+V2iMA+lKBGn0SLIGyfiQkFwQQ1RwKygTXeADJkVcYIPceOtilK3g' 'SJhDkNm/U8k2OlrtRevyxhHLoXjQVndde8+MK59Db18HBc4LZBDJ2jrVUmtfud4/ueotTvc+HHBlzIEn' '5fHTLPJWwf1a9xAasrvv6xftUjDmlRtySsxrdbitDhfhZRaimWas5y8Yn49Nwn7OuXvON1Sx7JOpeO5C' '9QwvtzO8VoXb6nAjGtqIB/r9AX6LebM=') numeric.assert_allclose64( lhs, 'eNpVkcsRwyAMRBuCGf0RtWRyTP8tJBJISU6Wdtf7wJaBOh4ojq9pY+pGP4N6DkQMr6ljuhqkI7w8FCZL' 'B40/u3yNjpZTyW4vXJcXbS7c+Sr5onR4OydFw5AhuHbsBLJiJwGLJ2JUc+uVa/3murhIVdykKSAHaUjp' 'LOGdh9qmyaad90Iyi242OvoC/tUrV3rlurhIVdykqab386ud64OkYQAUA8O9n7OcQ267fw7gz6lkGx2t' '8qZ1+8U936ubdqU=')
def test_p2(self): lhs0, lhs1 = main(nelems=3, viscosity=1e-2, degree=2, warp=False, withplots=False) numeric.assert_allclose64( lhs0, 'eNqVkcsNAyEMRBtaJGzjD7VEOab/FjIeVlFyjLggeJ43y65L/HpY2noNv8aO2r0RNXuNdY0lNXsTqsoD' 'LS2i5nOfjU2yJSp9sDXqT/QPP1An4bGORSy/CdOe8NZvZoULSfEDTC74pRtpsQng0xW0Mxe4/XSDkTcQ' 'BgkYSeiawUoiMAfMYTTbjrxD0+7QZPuR2ZpAem7OiCx+aJVbE/OzMMMCGFlELYsekdYgFTOnIpocIapI' 'I2hy/4IddR4jzyM837kcbbo=') numeric.assert_allclose64( lhs1, 'eNpVkUtuBDEIRC/klijzP0uU5dz/CmPALSUru6FcvKJlQdePJOLz6HrAQp9HFsxQ5yMUURfl6MazjWmk' '5tkVU5apbG5tkOqrteqAbRSK2NXZqa1Mg/c3OY/A5uKvpwi1l4vbACWyOhvhM8TT/hKyXwtYg8oVgnlm' 'bT8MUbiYB4yJuGmWsLn4z0sr2lMI4QkEcvzjzTarhMytOJw9RXqBx4OgN1ngYr27oH4iHqdgCyTtCbiN' 'wEXGW1vITWHrbHUskVcJ0fu3QI2zjWjOyt7Dis/PkmzeOt9sLLrbNXTGa2EdnPDmTUZnp98vZe15Gw==' )
def test_notequal(self): with self.assertRaises(Exception) as cm: numeric.assert_allclose64(self.actual, 'eNpjYFhrwW51ySrJ+qK1rk2VzR6b7zY6tjG27bbrba/YfrcFALIODB0=') self.assertEqual(str(cm.exception), '''15/16 values do not match up to atol=2.00e-15, rtol=2.00e-03: [0, 0, 1] desired: +2.0014e+00, actual: +1.0000e+00, spacing: 4.0e-03 [0, 1, 0] desired: +3.9981e+00, actual: +2.0000e+00, spacing: 8.0e-03 [0, 1, 1] desired: +6.0004e+00, actual: +3.0000e+00, spacing: 1.2e-02 [0, 2, 0] desired: +8.0031e+00, actual: +4.0000e+00, spacing: 1.6e-02 [0, 2, 1] desired: +9.9925e+00, actual: +5.0000e+00, spacing: 2.0e-02 [0, 3, 0] desired: +1.2011e+01, actual: +6.0000e+00, spacing: 2.4e-02 [0, 3, 1] desired: +1.4011e+01, actual: +7.0000e+00, spacing: 2.8e-02 [1, 0, 0] desired: +1.5988e+01, actual: +8.0000e+00, spacing: 3.2e-02 [1, 0, 1] desired: +1.7990e+01, actual: +9.0000e+00, spacing: 3.6e-02 [1, 1, 0] desired: +2.0002e+01, actual: +1.0000e+01, spacing: 4.0e-02 [1, 1, 1] desired: +2.2017e+01, actual: +1.1000e+01, spacing: 4.4e-02 [1, 2, 0] desired: +2.3995e+01, actual: +1.2000e+01, spacing: 4.8e-02 [1, 2, 1] desired: +2.5993e+01, actual: +1.3000e+01, spacing: 5.2e-02 [1, 3, 0] desired: +2.7990e+01, actual: +1.4000e+01, spacing: 5.6e-02 [1, 3, 1] desired: +3.0019e+01, actual: +1.5000e+01, spacing: 6.0e-02 If this is expected, update the base64 string to: ''' + self.desired)
def test_p1(self): cons, lhs, err = main(nelems=4, degree=1, figures=False, solvetol=0) numeric.assert_allclose64(cons, 'eNor1ZC9Fawsf79NvsKUoQECV5vBWIbmMFYknAUAgVMONA==') numeric.assert_allclose64(lhs, 'eNor1ZC9Fawsf79NvsLUzOyn2T7zVovVZpnmOhYfLXZYGpq/N99' 'kUW5paxVpLm5xy2K+ZaoVAOTZEq4=') numpy.testing.assert_almost_equal(err, 6.850e-3, decimal=6)
def test_p1(self): lhs, cons = main(nelems=4, degree=1, figures=False, solvetol=0) numeric.assert_allclose64( lhs, 'eNpjYICBFGMxYyEgTjFebDLBpB2IF5tkmKaYJgJxhukPOIRrYBA' '1CjJgYFh3/vXZMiMVQwaGO+e6zvYY2QBZR86VnO2FsorPAgAXLB7S') numeric.assert_allclose64(cons, 'eNpjYICDBnzwhykMMhCpAwEBQ08XYg==')
def test_equal(self): numeric.assert_allclose64(self.actual, self.desired)
def test_fail(self): with self.assertRaises(Exception) as cm: numeric.assert_allclose64(self.actual, 'invalid') self.assertEqual(str(cm.exception), '''failed to decode data: Incorrect padding If this is expected, update the base64 string to: ''' + self.desired)
def test_p1(self) : lhs, err = main( nelems=4, degree=1, withplots=False) numeric.assert_allclose64(lhs,'eNqrOH7lBAODjnmHxYLjE08yMOSbJVgsOR52hoFhlXEMklgFXB0DAwA7UhP3') numpy.testing.assert_almost_equal(err[1], 0.9546445145978546, decimal=6)
def test_p2(self): lhs, err = main(nelems=4, degree=2, withplots=False) numeric.assert_allclose64(lhs,'eNqbcNzixLZTXqYnzAsslhxPOhFyao3pPPMYi6vHT56oM2s6aW6ujcJGVjMBSS8DAwCNgyPv') numpy.testing.assert_almost_equal(err[1], 0.42218496186521309, decimal=6)
def test_iters(self): it = iter(solver.impliciteuler('dofs', residual=self.residual, inertia=self.inertia, lhs0=self.lhs0, timestep=100)) # involves 2-level timestep scaling assert numpy.equal(next(it), self.lhs0).all() numeric.assert_allclose64(next(it), 'eNpzNBA1NjHuNHQ3FDsTfCbAuNz4nUGZgeyZiDOZxlONmQwU9W3OFJ/pNQAADZIOPA==')
def test_p2(self): cons, lhs, err = main(nelems=4, degree=2, figures=False, solvetol=0) numeric.assert_allclose64(cons, 'eNqbeOO56u/bvUpG97wVtE0YGmDQzAzB/o/EDjLHzgYAhtsWCA==') numeric.assert_allclose64(lhs, 'eNqbeOO56u/bvUpG97wVtE2aTdxNecwumNmYm5n1mQWbi1vctnC' '3/G8WYS5j8dBiqaWgVZD5KvN8C2PL75bJQPZqMPsHkA0A82saTw==') numpy.testing.assert_almost_equal(err, 1.268e-3, decimal=6)