More Continuous Mass-Lumped Triangular Finite Elements
Author
Wim A. Mulder
Title
More Continuous Mass-Lumped Triangular Finite Elements
Description
Supplemental notebook to "More Continuous Mass-Lumped Triangular Finite Elements"
Category
Academic Articles & Supplements
Keywords
numerical quadrature, triangles, finite elements, wave equation
URL
http://www.notebookarchive.org/2022-09-6yk6opb/
DOI
https://notebookarchive.org/2022-09-6yk6opb
Date Added
2022-09-15
Date Last Modified
2022-09-15
File Size
89.11 kilobytes
Supplements
Rights
Redistribution rights reserved
Download
Open in Wolfram Cloud
This file contains supplementary information for Wim A. Mulder, “More Continuous Mass-Lumped Triangular Finite Elements,” J Sci Comput 92, 38 (2022). https://doi.org/10.1007/s10915-022-01890-z.
More Continuous Mass-Lumped Triangular Finite Elements
More Continuous Mass-Lumped Triangular Finite Elements
Wim A. Mulder
(* <<degree5.m; for Mathematica kernel (c) W.A. Mulder *)(*___________________________________________________________________________*)Clear["Global`*"];Clear[XfromAlphaBeta]; (* alpha=3(x0 x1+x0 x2+x1 x2); beta=27 x0 x1 x2; *)XfromAlphaBeta::usage="XfromAlphaBeta[{alpha,beta}] transforms from a symmetric class 5 node {alpha,beta}with alpha=3*(x0*x1+x0*x2+x1*x2), beta=27*x0*x1*x2 and x0=1-x1-x2to the normalized coordinate pair {x1,x2}";XfromAlphaBeta[alphabeta_]:=Module[{alpha1,et1,sq1,phi,tau1,tau2}, If[!ArrayQ[alphabeta] || Length[alphabeta]!=2, Return[{}]]; alpha1=1-alphabeta; sq1=Sqrt[alpha1[[1]]]; phi=ArcCos[ (3*alpha1[[1]]-alpha1[[2]])/(2*alpha1[[1]]*sq1) ]/3; tau1=(1-sq1*Cos[phi])/3; tau2=sq1*Sin[phi]/Sqrt[3]; {tau1+tau2,tau1-tau2}];
(*___________________________________________________________________________*)$MaxPrecision=Infinity; $MinPrecision=512; (* way too large *)(*___________________________________________________________________________*)pdegree = {5,7}; (* degrees *)KK = {1,0,2,0,3,1}; (* node pattern *)(* polynomials for quadrature *)polquad = {1,xs2,xs2^2,xs2^3,xs2^4, xs3*{1,xs2,xs2^2,xs2^3,xs3,xs2*xs3,xs2^2*xs3,xs3^2}}//. {xs2->x0*x1+x0*x2+x1*x2,xs3->x0*x1*x2,x0->1-x1-x2}//Flatten;
(* nodes modulo symmetry *)If[True, (* True or False should both work *) X0 = {{0,0},{(1-Sqrt[1-a1])/2,0},{(1-Sqrt[1-a2])/2,0}, {b1/2,b1/2},{b2/2,b2/2},{b3/2,b3/2}, {x06,(1-x06)/2-Sqrt[1-(4*alpha)/3+(2-3*x06)*x06]/2}}/. x06->Root[-beta+9*alpha*#1-27*#1^2+27*#1^3&,2],(*else*) X0 = {{0,0},{(1-Sqrt[1-a1])/2,0},{(1-Sqrt[1-a2])/2,0}, {b1/2,b1/2},{b2/2,b2/2},{b3/2,b3/2}, XfromAlphaBeta[{alpha,beta}]}];
(* parameter bounds *)bnd = {0<a1<1, 0<a2<1, 0<b1<1, b1!=2/3, 0<b2<1, b2!=2/3, 0<b3<1, b3!=2/3, 0<alpha<1, 0<beta<1, 0<4*(1-alpha)^3-(3*(1-alpha)-(1-beta))^2, w1>0,w2>0,w3>0,w4>0,w5>0,w6>0,w7>0};
(* quadrature equations *)eqs={1/2-3*w1-6*w2-6*w3-3*w4-3*w5-3*w6-6*w7, (1-12*a1*w2-12*a2*w3+6*b1*(-4+3*b1)*w4+6*b2*(-4+3*b2)*w5+6*b3*(-4+3*b3)*w6-16*alpha*w7)/8, (1+90*(-1+b1)*b1^2*w4+90*(-1+b2)*b2^2*w5+90*(-1+b3)*b3^2*w6)/120-2*beta*w7/9, (8-90*a1^2*w2-90*a2^2*w3-45*(4-3*b1)^2*b1^2*w4-45*(4-3*b2)^2*b2^2*w5-45*(4-3*b3)^2*b3^2*w6-160*alpha^2*w7)/240, 1/420-(3*(-1+b1)*b1^3*(-4+3*b1)*w4)/16-(3*(-1+b2)*b2^3*(-4+3*b2)*w5)/16-(3*(-1+b3)*b3^3*(-4+3*b3)*w6)/16-2*alpha*beta*w7/27, 1/5040-(3*(-1+b1)^2*b1^4*w4)/16-(3*(-1+b2)^2*b2^4*w5)/16-(3*(-1+b3)^2*b3^4*w6)/16-(2*beta^2*w7)/243, 31/3360-(3*a1^3*w2)/32-(3*a2^3*w3)/32+(3*b1^3*(-4+3*b1)^3*w4)/64+(3*b2^3*(-4+3*b2)^3*w5)/64+(3*b3^3*(-4+3*b3)^3*w6)/64-2*alpha^3*w7/9, 1/1440+(3*(4-3*b1)^2*(-1+b1)*b1^4*w4)/64+(3*(4-3*b2)^2*(-1+b2)*b2^4*w5)/64+(3*(4-3*b3)^2*(-1+b3)*b3^4*w6)/64-2*alpha^2*beta*w7/81, 1/16800+(3*(-1+b1)^2*b1^5*(-4+3*b1)*w4)/64+(3*(-1+b2)^2*b2^5*(-4+3*b2)*w5)/64+(3*(-1+b3)^2*b3^5*(-4+3*b3)*w6)/64-2*alpha*beta^2*w7/729, 11/4200-(3*a1^4*w2)/128-(3*a2^4*w3)/128-(3*(4-3*b1)^4*b1^4*w4)/256-(3*(4-3*b2)^4*b2^4*w5)/256-(3*(4-3*b3)^4*b3^4*w6)/256-2*alpha^4*w7/27, 19/92400-(3*(-1+b1)*b1^5*(-4+3*b1)^3*w4)/256-(3*(-1+b2)*b2^5*(-4+3*b2)^3*w5)/256-(3*(-1+b3)*b3^5*(-4+3*b3)^3*w6)/256-2*alpha^3*beta*w7/243, 1/184800+(3*(-1+b1)^3*b1^6*w4)/64+(3*(-1+b2)^3*b2^6*w5)/64+(3*(-1+b3)^3*b3^6*w6)/64-2*beta^3*w7/6561, 1/55440-(3*b1^6*(4-7*b1+3*b1^2)^2*w4)/256-(3*b2^6*(4-7*b2+3*b2^2)^2*w5)/256-(3*b3^6*(4-7*b3+3*b3^2)^2*w6)/256-2*alpha^2*beta^2*w7/2187};
(* weights *)solweights = {w1->1/6-2*w2-2*w3-w4-w5-w6-2*w7, w2->(1-12*a2*w3+6*b1*(-4+3*b1)*w4+6*b2*(-4+3*b2)*w5+6*b3*(-4+3*b3)*w6-16*alpha*w7)/(12*a1), w3->(-16+90*((4-3*b1)^2*b1^2*w4+(4-3*b2)^2*b2^2*w5+(4-3*b3)^2*b3^2*w6)+ 320*alpha^2*w7+15*a1*(1+6*b1*(-4+3*b1)*w4+6*b2*(-4+3*b2)*w5+6*b3*(-4+3* b3)*w6-16*alpha*w7))/(180*(a1-a2)*a2), w4->-(3+270*(-1+b2)*b2^2*w5+270*(-1+b3)*b3^2*w6-80*beta*w7)/(270*(-1+b1)*b1^2), w5->(-9+18*b1+2835*(2-3*b3)^2*(b1-b3)*(-1+b3)*b3^2*w6+ 1120*(3*b1*(-1+alpha)+alpha-beta)*beta*w7)/(2835*(2-3*b2)^2*(-1+b2)*b2^2*(-b1+b2)), w6->(-2862+4455*b1*(1-2*b2)+4455*b2+61600*beta*(9*b2*(-alpha+beta)+ 9*b1*(-3*b2*(-1+alpha)-alpha+beta)+4*(4*alpha^3+beta-6*alpha*beta+beta^2))*w7)/(1403325*(2-3*b3)^2*(-1+b3)*b3^2*(-b1+b3)*(-b2+b3)), w7->27/(61600*beta*(alpha*(alpha*(3-4*alpha)+6*beta)-beta*(4+beta)))};
(* check potential division by 0 *)Print["Check if False:"];Reduce[Denominator[w5/.solweights[[5]]]==0 && b1>0 && b1<1 && b1!=2/3 && b2>0 && b2<1 && b2!=2/3 && b1!=b2]//Print;Reduce[Denominator[w6/.solweights[[6]]]==0 && b1>0 && b1<1 && b1!=2/3 && b2>0 && b2<1 && b2!=2/3&& b3>0 && b3<1 && b3!=2/3 && b1!=b2 && b1!=b3 && b2!=b3]//Print;Reduce[Denominator[w7/.solweights[[7]]]==0 && bnd[[9]] && bnd[[10]] && bnd[[11]] ]//Print;
(* eqalphabeta obtained with GroebnerBasis[] *)eqalphabeta=113135*beta^4+1210*beta^3*(5639+11*alpha*(-1229+715*alpha))+11*beta^2*(2448927+55*alpha*(-201114+ 11*alpha*(28491+alpha*(-17344+3025*alpha))))-66*beta*(-419661+alpha*(2854683+55*alpha*(-134190+ alpha*(163629+11*alpha*(-8418+1705*alpha)))))+81*(104976+11*alpha*(-87156+ alpha*(320571+11*alpha*(-55062+5*alpha*(11223+11*alpha*(-528+107*alpha))))));
(* solution *)solbeta=Table[{beta->Root[8503056-77655996*alpha+285628761*alpha^2-539662662*alpha^3+549983115*alpha^4-284621040*alpha^5+ 57678885*alpha^6+(27697626-188409078*alpha+487109700*alpha^2-593973270*alpha^3+336130740*alpha^4-68080650*alpha^5)*#1+ (26938197-121673970*alpha+189607605*alpha^2-115424320*alpha^3+20131375*alpha^4)*#1^2+ (6823190-16357990*alpha+9516650*alpha^2)*#1^3+113135*#1^4&,k]},{k,4}];
Print["Check solutions of eqalphabeta: ",eqalphabeta//.solbeta//FullSimplify];
(*_____________________________________________________________________________*)(* after substituting solweights into eqs *)eqs1 = eqs;Do[eqs1=eqs1/.solweights[[k]]//Factor//Numerator, {k,Length[solweights]}];eqs1 = Select[eqs1, (#=!=0) &];(* subsets with and without a1,a2 *)eqs2 = Select[eqs1, (Intersection[Variables[#],{a1,a2}]=!={}) &];eqs3 = Select[eqs1, (Intersection[Variables[#],{a1,a2}]==={}) &];(*_____________________________________________________________________________*)
(* the 2 relevant roots: beta as a functon of alpha *)betaroots=solbeta[[2;;3]];(* limits for the two roots *)alphadomain2 = {0.7519468438938079935410660751334009844990051812366304863969964135691714708459438681058157816120209966553893436119318915537805181752197120, 0.791815901607413159560138005660340698617146169114099623965554807164558001131974769281304882899558799485072319645665359541769350045583447};alphadomain3 = {0.66936399840001562299864792489889857832254721088354464343054686447995375605446297970681272687725341187330901625141181903941193465, alphadomain2[[2]]};
(* parameters for class 5 in terms of symmetric polynomials bs1=b1+b2+b3, bs2=b1*b2+b1*b3+b2*b3, bs3=b1*b2*b3 *)solbs123={ bs1->(2*(4050-14553*alpha+11*(275*beta^2+15*alpha^2*(69+11*alpha)+beta*(657-5*alpha*(183+55*alpha)))))/ (3*(2187-8514*alpha+110*(11*beta^2+beta*(34-55*alpha)+(78-11*alpha)*alpha^2))), bs2->(2*(36-4*beta-94*alpha+64*alpha^2+bs1*(-36+5*beta+(95-66*alpha)*alpha)))/(-57+11*beta+(153-110*alpha)*alpha), bs3->(2*(3*bs2*(234+110*beta-341*alpha)-6*bs1*(135+66*beta-203*alpha)+8*(99+50*beta-150*alpha)))/279};
(* node parameters from symmetric representation *)subsymb = Thread[{b1,b2,b3}->Table[Root[-bs3+bs2*#1-bs1*#1^2+#1^3&,k],{k,3}]];Clear[AllParms]; (* using external globals solbeta subsymb; alpha etc should not be defined externally *)AllParms::usage="AllParms[alpha,rootnr] returns the solution for a given numeric value of alpha and root number rootnr=1,2,3, or 4 (only 2 and 3 are useful)";AllParms[alphaa_,rootnr_]:=Module[{allparms,k,eqs2test}, If[!NumericQ[alphaa] || !IntegerQ[rootnr] || rootnr<1 || rootnr>Length[solbeta], Return[{}]]; allparms = {alpha->SetPrecision[alphaa,$MinPrecision]}; allparms = Join[allparms,solbeta[[rootnr]]/.allparms]; Do[allparms = Append[allparms,solbs123[[k,1]]->(solbs123[[k,2]]//.allparms)], {k,Length[solbs123]}]; (* from bs1,bs2,bs3 to b1,b2,b3 *) allparms = Join[allparms,(subsymb//.allparms)]; (* find a1,a2 and select one of the two symmetric results *) eqs2test = (eqs2//.allparms); allparms = Join[allparms, Quiet[ Solve[eqs2test==0,{a1,a2}][[1]] ] ]; (* weights *) Do[allparms = Append[allparms,solweights[[k,1]]->(solweights[[k,2]]//.allparms)], {k,Length[solweights],1,-1}]; allparms];
(* some solutions *)Print["_____________________________________________________________________________"];alphatable = { {0.68087258183637875199685547279632363658674545197375602094060953236107982834723004266320715376769506271170493857536071063264079604,3,"old"}, {0.78944910157826823705781292743822341738429666564610678941352172208113272634337846831821726791272484069625856598283566585723417123,2,"A"}, {0.78823508996376747432133959682906391510433765632311821832015574059670975893487064408579140831820161013184852177779029836020622694,2,"B"}, {0.78261144260755825183640697130540606089712254542241194570156596451797744696740479229603436328205793996051612510039418952705880706,2,"C"}, {0.77205458595708076839653653263842906735653455283621587983120977690419017230642468018406108061213447361251895915887802546972530147,3,"D"}, {0.67381598977169519058519656260065311780609991342085286432382177358628373276328212527630751181563102243884854930783875160351341169,3,"E"}, {0.724366511968285494360873981059768726479833477466211,3,"F"}, {0.789331970591268894545679076350632642375761989503433,2,"G"} };soltable = Table[ AllParms[ alphatable[[k,1]],alphatable[[k,2]] ],{k,Length[alphatable]}];Do[ Print[alphatable[[k,3]],": ",NumberForm[soltable[[k]],24]]; Print[" Nodes: ", NumberForm[(X0//.soltable[[k]]),24]],{k,Length[alphatable]}];
(*___________________________________________________________________________*)sol5old={ a1 -> 0.45908264831294849448886632046433571655704626432523758570530553253159352543755504169492596596150925935681102808689449770213412436, a2 -> 0.92525033387963552348365618046958622694296394982279003714842276030114613722363360863581789401903022297832916679405233719433851586, b1 -> 0.11505536882282021132163544684897520550853337593558346203640746319934729277106732586959971620621104779528492903599422751634761989, b2 -> 0.51371821452391815212778167517284695185003415771958513993815699128601796478478703271438427744689984130916140630871840188466162613, b3 -> 0.91567367615832220387700643447756030919328404404290341978374293418358088211716587031779221291981470979203875363782388598711354538, w1 -> 0.00070942397067924597929601096902056321986542013842720651662036871084878052114870469494286936911273480935722434816144780515039187495, w2 -> 0.0034805786404892106584426818567541234815059275806790828231483012274627422565530414462597160256220669284359203991859369912737591095, w3 -> 0.0061905650036766291141181341862037243876649470102025517111084645629986875470432573923585252946660160282574758988755784637078170705, w4 -> 0.011626135459617571139498436345823661204618398547243566551399937756747888564878736793692926364063017036129382182977741305366675335, w5 -> 0.045901237630762857377019143410568664596524263941201641077949475565623225532203537330352545616572983126405709818164704853180683640, w6 -> 0.034530430377282793528388498637348077178055089413729271354121929776502511317384222148596256281920456013709638703245471480844161151, w7 -> 0.027278575969996259548671472608995002364630872722150856049030711638010700561929434010922793197210654883838959508997135156080801153, alpha -> 0.68087258183637875199685547279632363658674545197375602094060953236107982834723004266320715376769506271170493857536071063264079604, beta -> 0.32698055752184595160252435257625392825678472306420211956851972706988280094564449566873283547729191898312437735846256357660585216};
sol5A={a1 -> 0.41798843270353596327806505649074993877127018886199151754592693041725057313161469863875995575706593692752019247460174091466387256, a2 -> 0.92598701144588174137376334808683026062896368138487883072972799104199828647506632944851837687596383332475894228679055145663643007, b1 -> 0.20705319146985368892344738504440873348945269064900183433695105737901311831191674994086263615292116150573030247089874693753985047, b2 -> 0.48448156671334258251338185185551996952614746661611597693750399132768371975748122280994699519297600022958660965391501859098160607, b3 -> 0.79509171889231935973214509073433560574261263368517764984128985626735936041635696155343093189382575524339120950676875248019485157, w1 -> 0.0011224776475995414141749359240302373922445465917406586628111932525115773944804355838644136008246540280559820952785062671840538485, w2 -> 0.0055454672810841424669603302178696230458457069334259958405266261331412244538424937001035262333694157108924387470131975408113719869, w3 -> 0.0053635633480933572522471380626006782834228768515323997320022557768843715804914565142346453710231178266499405471424164146871275560, w4 -> 0.028133301595108065112174079181176406396486638952121618520238107061022470345956467156370748533031874696273838486799565920631593570, w5 -> 0.033058627783094829703276371402947661036094411957405970167886804632516538372736529361596295637241669724235356152323205366342033734, w6 -> 0.020556366783708058874553352392627925053677028904405100141186089451709501568524459472133928364767528025995744336370325574633205169, w7 -> 0.030988915799400586062036495602471917064813436345538264014743354224427693458150437332012468661007936558510493503791917813439390630, alpha -> 0.78944910157826823705781292743822341738429666564610678941352172208113272634337846831821726791272484069625856598283566585723417123, beta -> 0.38028153958847028513771488005389878401944908692853737427684872084230928399226274038385492694247475121685314725453476935144109219};
sol5B={a1 -> 0.41915653300733211577045122576782418379762470130183411870034623378414027201475421834647778203291494012542948518135728895216850177, a2 -> 0.92663424486672235846667098845453907396152141339940067031410759253861459003173868944062655721577865377955373910094597716434663509, b3 -> 0.79356010789935316052155986673141746670513276730675764578896676752695861710122522921837071633151775400216851293591189872516574029, b1 -> 0.20630529328850243520232836497998003458121850886389415837049855009695574526530120084710287971797027535152780371164209760725428778, b2 -> 0.47800171150579023226443726803565209712910844103721506562663404963631567253001180153335911674926545222367467586867030009326805239, w1 -> 0.0011285083493980018565370477907423735398122709672756312642723405429635686757527433881580229078446737643895673680808161851808925201, w2 -> 0.0055378574406123773680510746620456790200682352082374922753284171205635185604517704245625379824740587351069401646836613716320191107, w3 -> 0.0052742629259862257966545066948987950821799077922619288283525421204116849668195655178161530647345772020578772440200312496484201460, w4 -> 0.027959762111109215083752579602395880847384777082564147834620119298090702250257992911428206934963659652342151403585634996085929829, w5 -> 0.031780819521449540941457991607402679337616126640024592313262410193789364059260792903862158767522610762919322320316971899835826210, w6 -> 0.022650927405163784999485804922741068068286083071471472153749133241341037371527006633670631768077111461658166786720418176144224096, w7 -> 0.030761204273174458728011040014747858334535561452165990446700372454265793627662729472395132096920669575513911985277720083429457749, alpha -> 0.78823508996376747432133959682906391510433765632311821832015574059670975893487064408579140831820161013184852177779029836020622694, beta -> 0.37648435922733165430124419519859748572508328639797042169854119435455043035958339192439876159971225802878629583687035106196916542};
sol5C={a1 -> 0.42487931694392090164897641430592094882196707755581686810423704442095034430772617940531236367435308783745533972455083677829111511, a2 -> 0.93019092736391010815199825024641905424689099899979266476089854321723415111188087215937633294902349480411033415396744713726918537, b1 -> 0.20252195672243798560878416709596489022601268225801578716805538392213800162007678972732563161965722790098376201567343814008974935, b2 -> 0.45304379839222347740824050053791864326696518565672046572214987458155922032012639922650525165662060638338026045791056712406375455, b3 -> 0.79312985567213841642215926020321089219171663612231479411398128058620142011100076107207986448645344419828047025154912604730839988, w1 -> 0.0011554928798908841476580515302902762700994905383795895568350914095761783811222181560155345372173810223439401394967919359771750271, w2 -> 0.0055003709851735041157420624588298454747184599031503919082531670535388018412725148050595649346854096467476703389977540180271264513, w3 -> 0.0048544980936191063692434288647708784587492427126688135055284610872835444963953421312350010411350191384619533959930895535375124614, w4 -> 0.027072547688498141012047053744970979387051039987982779648896556683504372278420356072581039508651671506963693490676800273654701000, w5 -> 0.028714519584241531913640010421386095745471579245995920291387046891497733776073932904151727266996034722478305465062621881973786716, w6 -> 0.029444006588589221157351047488834769195254302959780593577234649941768030333140671362486112930691055848761303342716321201926435368, w7 -> 0.029785180883930833732999760416991549100927424351444686382375032729337829611286887149421560235734832997850088379366222115002645364, alpha -> 0.78261144260755825183640697130540606089712254542241194570156596451797744696740479229603436328205793996051612510039418952705880706, beta -> 0.35924529728937216866875804860877649113371152444199001560466207831381637261707989073296770517522470797652489456771088628130174894};
sol5D={a1 -> 0.40371556217578616767393907742099247974169642926804052871774731605808467759777907213271846578641991357136247712143887122706911473, a2 -> 0.92675963213488991608937962420899089468279462285461719448425004821728169106377468793812893390811761406174015909239062506119632237, b1 -> 0.20467346855630463887195610608228611539572805968512495531013474619960648465312269481731579385249354063045975788596267164952343458, b2 -> 0.51232312944999480285933885237641994905677161646841562748941715530688502754180708561510853209296289714201146556134103789457384564, b3 -> 0.90037328770671139121048729460544510680291177206782798944668283831870022729218182608205257695698060969520120146390804145034590200, w1 -> 0.0010354719563384809876100643504758699255100461133269058822803438903966253200749773191667958195380230825692485687222994206439269733, w2 -> 0.0053556877135367076642995798981509642809255728922598690070678234381500916321941203499393939367868136716060946653647364364979441914, w3 -> 0.0059572102455669432959865112037630647958863517051496200960917239589076549454273361855333630445658844720444010089251300134971375861, w4 -> 0.026707277342989397015874435962641385461662312043611437831632431114155190583763570346780810133537277481897461657889691546887649046, w5 -> 0.045895594864832785378197618594803752265129223104816455900018456830472911369034807492055304029963144026737548586110458175050712554, w6 -> 0.017169010598007295005930439485256489555870887739568288850469384883559359100836355801644725313145586016741699735745778127157757765, w7 -> 0.026616757993145703179240963034830555652435174235262299997973477576983543568857021318036758703888619885709858384809353248468228386, alpha -> 0.77205458595708076839653653263842906735653455283621587983120977690419017230642468018406108061213447361251895915887802546972530147, beta -> 0.37531200422054441573559019404978586241378502211381833686835230825367041797635481371263758353496029880927126839901981184747661885};
sol5E={a1 -> 0.53431366310365338659163542486308069048796768080839980158806668180705197206205269845009024567097927656032353803330956813445711011, a2 -> 0.93731144929555370407144784147713729805273348017775892798018490548310694685323254692619732954221372401376862421352963719505670472, b1 -> 0.098648001904690453333811954402817837801614901319395403361868884157683457278923885999436324817162259359828413232778949993433367046, b2 -> 0.51320147967782891025607632320293035315841564593323623418397061632096542407047022176394079403132070120217845562194415735700976637, b3 -> 0.91568783358110911586608233522853472555996361903372669292128467496961454981921648748555900498774693665258265311934600209020274755, w1 -> 0.00042827147288953330727191737124076963838064983460860098791182054872172364707083711003836254857129816564546589103800190701999533023, w2 -> 0.0034792722440467127243606465121546083393182899190558998851611987870501789979073140428482625567446223312271272889433221020212812031, w3 -> 0.0056958331049241665357207538405404600854181631349020606275245121750743324357757666869139770175346543462837435682766520568556107452, w4 -> 0.011466028633988969624386524561717325611598728165102866123935951662839450228274765251574495008011124502082256637945023869749742117, w5 -> 0.046091913942715464425952653688827562108125495805395343274142965189375146408891160505472463593040095202161679107796332891864894623, w6 -> 0.035067592568180504908933701647651236823922124657294646515907243088050927334776552881733101832264900308019222923665044549094233233, w7 -> 0.027631324675475217939979534345919817817583381048174644369698632126715198090143594729161882268110347566868150195891157565592008734, alpha -> 0.67381598977169519058519656260065311780609991342085286432382177358628373276328212527630751181563102243884854930783875160351341169, beta -> 0.32025751765802295568461834319906464419469251199849327241006977875977563316945995530702952554042342090439587203603820428531088782};
sol5F = {a1 -> 0.386913386531430711080509017724984675, a2 -> 0.918018950812495571431004650998543177, b1 -> 0.175671494425070257898166620215122663, b2 -> 0.514316540236809802433114109015374203, b3 -> 0.914921871686406064867569030685295293, bs1 -> 1.60490990634828612519884975991579216, bs2 -> 0.721635899345004285040880680930750037, bs3 -> 0.0826638820841647917685728569625906121, beta -> 0.359977179043382199897532091719728248, alpha -> 0.724366511968285494360873981059768727, w1 -> 0.000908862732241760920884208080749325353, w2 -> 0.00455069726502002186202031005466263401, w3 -> 0.00648558787300096567165460464914659273, w4 -> 0.0184552935338467615631458330624816544, w5 -> 0.0456710185330337707389963929674624593, w6 -> 0.0296982282854181890037965695409697519, w7 -> 0.0249303466530421046862469168036925112}; (* 1: root nr 2 *)
sol5G = {a1 -> 0.418101992535906005484455163418892099, a2 -> 0.926047795767090274712176368400371447, b1 -> 0.206981310388094113014719929782561064, b2 -> 0.483826523025817074036638530923578992, b3 -> 0.794888623991320601817550106879132583, bs1 -> 1.48569645740523178886890856758527264, bs2 -> 0.649258335881208296790876971880387613, bs3 -> 0.0796025694174833400910565390386056542, alpha -> 0.789331970591268894545679076350632642, beta -> 0.379912255626701541809890047408723806, w1 -> 0.00112307264320170955685487270658800996, w2 -> 0.00554473631682528410346160755957008576, w3 -> 0.00535487474343640783268468076237059414, w4 -> 0.0281167083480493927775561021831579503, w5 -> 0.0329180124145596604849593731633673535, w6 -> 0.0207761018987874650949517902619300840, w7 -> 0.0309667746207725274400259758538709545}; (* 2: root nr 3 *)
Print["_____________________________________________________________________________"];Do[ svar = "sol5"<>alphatable[[k,3]]; solk = ToExpression[svar]; pvar = Intersection[solk[[All,1]],soltable[[k,All,1]]]; errk = Max[Abs[ (pvar//.solk) - (pvar//.soltable[[k]])]]; errq = Max[Abs[ (eqs//.soltable[[k]]) ]]; Print["Check ",svar,": ",NumberForm[{errk,errq},4] ], {k,Length[soltable]}];(*___________________________________________________________________________*)(*EOF*)
Cite this as: Wim A. Mulder, "More Continuous Mass-Lumped Triangular Finite Elements" from the Notebook Archive (2022), https://notebookarchive.org/2022-09-6yk6opb
Download