<div dir="ltr"><div dir="ltr">On Fri, Feb 1, 2019 at 3:05 PM Justin Chang <<a href="mailto:jychang48@gmail.com">jychang48@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr">Hi Mark,<div><br></div><div>1) So with these options:</div><div><br></div><div>-ksp_type gmres</div><div>-ksp_rtol 1e-15</div><div>-ksp_monitor_true_residual</div><div>-ksp_converged_reason</div><div>-pc_type bjacobi</div><div><br></div><div>This is what I get:</div><div><br></div><div><div>  0 KSP preconditioned resid norm 1.900749341028e+04 true resid norm 1.603849239146e+07 ||r(i)||/||b|| 1.000000000000e+00</div><div>  1 KSP preconditioned resid norm 1.363172190058e+03 true resid norm 8.144804150077e+05 ||r(i)||/||b|| 5.078285384488e-02</div><div>  2 KSP preconditioned resid norm 1.744431536443e+02 true resid norm 2.668646207476e+04 ||r(i)||/||b|| 1.663900909350e-03</div><div>  3 KSP preconditioned resid norm 2.798960448093e+01 true resid norm 2.142171349084e+03 ||r(i)||/||b|| 1.335643835343e-04</div><div>  4 KSP preconditioned resid norm 2.938319245576e+00 true resid norm 1.457432872748e+03 ||r(i)||/||b|| 9.087093956061e-05</div><div>  5 KSP preconditioned resid norm 1.539484356450e-12 true resid norm 6.667274739274e-09 ||r(i)||/||b|| 4.157045797412e-16</div></div><div>Linear solve converged due to CONVERGED_RTOL iterations 5<br></div><div><br></div><div>2) With richardson/sor:</div></div></div></div></div></div></div></div></div></div></div></blockquote><div><br></div><div>Okay, its looks like Richardson/SOR solves this just fine. You can use this as the smoother for GAMG instead</div><div>of Cheby/Jacobi, and probably see better results on the larger problems.</div><div><br></div><div>  Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>-ksp_type richardson</div><div>-ksp_rtol 1e-15</div><div>-ksp_monitor_true_residual</div><div>-pc_type sor</div><div><br></div><div>This is what I get:</div><div><br></div><div><div>  0 KSP preconditioned resid norm 1.772935756018e+04 true resid norm 1.603849239146e+07 ||r(i)||/||b|| 1.000000000000e+00</div><div>  1 KSP preconditioned resid norm 1.206881305953e+03 true resid norm 4.507533687463e+03 ||r(i)||/||b|| 2.810447252426e-04</div><div>  2 KSP preconditioned resid norm 4.166906741810e+02 true resid norm 1.221098715634e+03 ||r(i)||/||b|| 7.613550487354e-05</div><div>  3 KSP preconditioned resid norm 1.540698682668e+02 true resid norm 4.241154731706e+02 ||r(i)||/||b|| 2.644359973612e-05</div><div>  4 KSP preconditioned resid norm 5.904921520051e+01 true resid norm 1.587778309916e+02 ||r(i)||/||b|| 9.899797756316e-06</div><div>  5 KSP preconditioned resid norm 2.327938633860e+01 true resid norm 6.161476099609e+01 ||r(i)||/||b|| 3.841680345773e-06</div><div>  6 KSP preconditioned resid norm 9.409043410169e+00 true resid norm 2.458600025207e+01 ||r(i)||/||b|| 1.532937114786e-06</div><div>  7 KSP preconditioned resid norm 3.888365194933e+00 true resid norm 1.005868527582e+01 ||r(i)||/||b|| 6.271590265661e-07</div><div>  8 KSP preconditioned resid norm 1.638018293396e+00 true resid norm 4.207888403975e+00 ||r(i)||/||b|| 2.623618418285e-07</div><div>  9 KSP preconditioned resid norm 7.010639340830e-01 true resid norm 1.793827818698e+00 ||r(i)||/||b|| 1.118451644279e-07</div><div> 10 KSP preconditioned resid norm 3.038491129050e-01 true resid norm 7.763187747256e-01 ||r(i)||/||b|| 4.840347557474e-08</div><div> 11 KSP preconditioned resid norm 1.329641892383e-01 true resid norm 3.398137553975e-01 ||r(i)||/||b|| 2.118738763617e-08</div><div> 12 KSP preconditioned resid norm 5.860142364318e-02 true resid norm 1.499670452314e-01 ||r(i)||/||b|| 9.350445264501e-09</div><div> 13 KSP preconditioned resid norm 2.596075957908e-02 true resid norm 6.655772419557e-02 ||r(i)||/||b|| 4.149874101073e-09</div><div> 14 KSP preconditioned resid norm 1.154254160823e-02 true resid norm 2.964959279341e-02 ||r(i)||/||b|| 1.848652109546e-09</div><div> 15 KSP preconditioned resid norm 5.144785556436e-03 true resid norm 1.323918323132e-02 ||r(i)||/||b|| 8.254630739714e-10</div><div> 16 KSP preconditioned resid norm 2.296969429446e-03 true resid norm 5.919889645162e-03 ||r(i)||/||b|| 3.691051191517e-10</div><div> 17 KSP preconditioned resid norm 1.026615599876e-03 true resid norm 2.649106197813e-03 ||r(i)||/||b|| 1.651717713333e-10</div><div> 18 KSP preconditioned resid norm 4.591391433184e-04 true resid norm 1.185874433977e-03 ||r(i)||/||b|| 7.393927091354e-11</div><div> 19 KSP preconditioned resid norm 2.054186999728e-04 true resid norm 5.309080126683e-04 ||r(i)||/||b|| 3.310211456976e-11</div><div> 20 KSP preconditioned resid norm 9.192021190159e-05 true resid norm 2.376701584665e-04 ||r(i)||/||b|| 1.481873437138e-11</div><div> 21 KSP preconditioned resid norm 4.113417679473e-05 true resid norm 1.063822174067e-04 ||r(i)||/||b|| 6.632931251279e-12</div><div> 22 KSP preconditioned resid norm 1.840693141405e-05 true resid norm 4.760872579965e-05 ||r(i)||/||b|| 2.968404051805e-12</div><div> 23 KSP preconditioned resid norm 8.236207862555e-06 true resid norm 2.130217091325e-05 ||r(i)||/||b|| 1.328190355634e-12</div><div> 24 KSP preconditioned resid norm 3.684941963736e-06 true resid norm 9.529827966741e-06 ||r(i)||/||b|| 5.941847733654e-13</div><div> 25 KSP preconditioned resid norm 1.648500148983e-06 true resid norm 4.262645649931e-06 ||r(i)||/||b|| 2.657759561118e-13</div><div> 26 KSP preconditioned resid norm 7.373967102970e-07 true resid norm 1.906404712490e-06 ||r(i)||/||b|| 1.188643337515e-13</div><div> 27 KSP preconditioned resid norm 3.298179068243e-07 true resid norm 8.525291822193e-07 ||r(i)||/||b|| 5.315519447909e-14</div><div> 28 KSP preconditioned resid norm 1.475043181061e-07 true resid norm 3.812420047527e-07 ||r(i)||/||b|| 2.377043898189e-14</div><div> 29 KSP preconditioned resid norm 6.596561561066e-08 true resid norm 1.704561511399e-07 ||r(i)||/||b|| 1.062794101712e-14</div><div> 30 KSP preconditioned resid norm 2.949954993990e-08 true resid norm 7.626396764524e-08 ||r(i)||/||b|| 4.755058379793e-15</div><div> 31 KSP preconditioned resid norm 1.319299835423e-08 true resid norm 3.408580527641e-08 ||r(i)||/||b|| 2.125249957693e-15</div><div> 32 KSP preconditioned resid norm 5.894082812579e-09 true resid norm 1.548343581158e-08 ||r(i)||/||b|| 9.653922222659e-16</div><div> 33 KSP preconditioned resid norm 2.636703982134e-09 true resid norm 7.135606738493e-09 ||r(i)||/||b|| 4.449050798748e-16</div><div> 34 KSP preconditioned resid norm 1.180985878209e-09 true resid norm 3.381752613021e-09 ||r(i)||/||b|| 2.108522752938e-16</div><div> 35 KSP preconditioned resid norm 5.286215416700e-10 true resid norm 2.401714396480e-09 ||r(i)||/||b|| 1.497468925296e-16</div><div> 36 KSP preconditioned resid norm 2.343627265669e-10 true resid norm 2.406695615135e-09 ||r(i)||/||b|| 1.500574715125e-16</div><div> 37 KSP preconditioned resid norm 1.063481191780e-10 true resid norm 1.939409664821e-09 ||r(i)||/||b|| 1.209221925282e-16</div><div> 38 KSP preconditioned resid norm 4.641441861184e-11 true resid norm 2.137293190758e-09 ||r(i)||/||b|| 1.332602303628e-16</div><div> 39 KSP preconditioned resid norm 2.197549316276e-11 true resid norm 2.134629170008e-09 ||r(i)||/||b|| 1.330941286692e-16</div><div> 40 KSP preconditioned resid norm 1.014465992249e-11 true resid norm 2.134073377634e-09 ||r(i)||/||b|| 1.330594750147e-16</div><div>Linear solve converged due to CONVERGED_RTOL iterations 40</div></div><div><br></div><div>3) And lastly with chebyshev/jacobi:</div><div><br></div><div><div>-ksp_type chebyshev</div><div>-ksp_rtol 1e-15</div><div>-ksp_monitor_true_residual</div><div>-pc_type jacobi</div></div><div><br></div><div><div>  0 KSP preconditioned resid norm 1.124259077563e+04 true resid norm 2.745522604971e+06 ||r(i)||/||b|| 1.711833343159e-01</div><div>  1 KSP preconditioned resid norm 7.344319020428e+03 true resid norm 7.783641348970e+06 ||r(i)||/||b|| 4.853100378135e-01</div><div>  2 KSP preconditioned resid norm 1.071669918360e+04 true resid norm 2.799860726937e+06 ||r(i)||/||b|| 1.745713162185e-01</div><div>  3 KSP preconditioned resid norm 3.419051822673e+03 true resid norm 1.775069259453e+06 ||r(i)||/||b|| 1.106755682597e-01</div><div>  4 KSP preconditioned resid norm 4.986468711193e+03 true resid norm 1.206925036347e+06 ||r(i)||/||b|| 7.525177597052e-02</div><div>  5 KSP preconditioned resid norm 1.700832321100e+03 true resid norm 2.637405831602e+05 ||r(i)||/||b|| 1.644422535005e-02</div><div>  6 KSP preconditioned resid norm 1.643529813686e+03 true resid norm 3.974328566033e+05 ||r(i)||/||b|| 2.477993859417e-02</div><div>  7 KSP preconditioned resid norm 7.473371550560e+02 true resid norm 5.323098795195e+04 ||r(i)||/||b|| 3.318952096788e-03</div><div>  8 KSP preconditioned resid norm 4.683110030109e+02 true resid norm 1.087414808661e+05 ||r(i)||/||b|| 6.780031327884e-03</div><div>  9 KSP preconditioned resid norm 2.873339948815e+02 true resid norm 3.568238211189e+04 ||r(i)||/||b|| 2.224796523325e-03</div><div> 10 KSP preconditioned resid norm 1.262071076718e+02 true resid norm 2.462817350416e+04 ||r(i)||/||b|| 1.535566617052e-03</div><div> 11 KSP preconditioned resid norm 1.002027390320e+02 true resid norm 1.546159763209e+04 ||r(i)||/||b|| 9.640306117750e-04</div><div> 12 KSP preconditioned resid norm 3.354594608285e+01 true resid norm 4.591691194787e+03 ||r(i)||/||b|| 2.862919458211e-04</div><div> 13 KSP preconditioned resid norm 3.131257260705e+01 true resid norm 5.245042976548e+03 ||r(i)||/||b|| 3.270284293891e-04</div><div> 14 KSP preconditioned resid norm 9.505226922340e+00 true resid norm 1.166368684616e+03 ||r(i)||/||b|| 7.272308744166e-05</div><div> 15 KSP preconditioned resid norm 8.743145384463e+00 true resid norm 1.504382325425e+03 ||r(i)||/||b|| 9.379823793327e-05</div><div> 16 KSP preconditioned resid norm 3.088859985366e+00 true resid norm 5.407763762347e+02 ||r(i)||/||b|| 3.371740703775e-05</div><div> 17 KSP preconditioned resid norm 2.376841598522e+00 true resid norm 3.716033743805e+02 ||r(i)||/||b|| 2.316947037855e-05</div><div> 18 KSP preconditioned resid norm 1.081970394434e+00 true resid norm 2.205852224893e+02 ||r(i)||/||b|| 1.375348861385e-05</div><div> 19 KSP preconditioned resid norm 6.554707900903e-01 true resid norm 8.301134625673e+01 ||r(i)||/||b|| 5.175757435963e-06</div><div> 20 KSP preconditioned resid norm 3.637023760759e-01 true resid norm 7.510650297359e+01 ||r(i)||/||b|| 4.682890457559e-06</div><div> 21 KSP preconditioned resid norm 1.871804319271e-01 true resid norm 2.219347914083e+01 ||r(i)||/||b|| 1.383763423590e-06</div><div> 22 KSP preconditioned resid norm 1.100146172732e-01 true resid norm 2.219515834389e+01 ||r(i)||/||b|| 1.383868121901e-06</div><div> 23 KSP preconditioned resid norm 5.760669698705e-02 true resid norm 8.337640509358e+00 ||r(i)||/||b|| 5.198518854427e-07</div><div> 24 KSP preconditioned resid norm 2.957448587725e-02 true resid norm 5.874493674310e+00 ||r(i)||/||b|| 3.662746803708e-07</div><div> 25 KSP preconditioned resid norm 1.998893198438e-02 true resid norm 3.167578238976e+00 ||r(i)||/||b|| 1.974985030802e-07</div><div> 26 KSP preconditioned resid norm 8.664848450375e-03 true resid norm 1.486849213225e+00 ||r(i)||/||b|| 9.270504838826e-08</div><div> 27 KSP preconditioned resid norm 6.981883525312e-03 true resid norm 1.069480324023e+00 ||r(i)||/||b|| 6.668209816232e-08</div><div> 28 KSP preconditioned resid norm 2.719053601907e-03 true resid norm 4.199959208195e-01 ||r(i)||/||b|| 2.618674564719e-08</div><div> 29 KSP preconditioned resid norm 2.165577279425e-03 true resid norm 3.210144228918e-01 ||r(i)||/||b|| 2.001524925514e-08</div><div> 30 KSP preconditioned resid norm 7.988525722643e-04 true resid norm 1.420960576866e-01 ||r(i)||/||b|| 8.859689191379e-09</div><div> 31 KSP preconditioned resid norm 6.325404656692e-04 true resid norm 8.848430840431e-02 ||r(i)||/||b|| 5.516996625657e-09</div><div> 32 KSP preconditioned resid norm 2.774874251260e-04 true resid norm 4.978943834544e-02 ||r(i)||/||b|| 3.104371478953e-09</div><div> 33 KSP preconditioned resid norm 2.189482639986e-04 true resid norm 2.363450483074e-02 ||r(i)||/||b|| 1.473611375302e-09</div><div> 34 KSP preconditioned resid norm 1.083040043835e-04 true resid norm 1.640956513288e-02 ||r(i)||/||b|| 1.023136385414e-09</div><div> 35 KSP preconditioned resid norm 7.862356661381e-05 true resid norm 6.670818331105e-03 ||r(i)||/||b|| 4.159255226918e-10</div><div> 36 KSP preconditioned resid norm 3.874849522187e-05 true resid norm 5.033219998314e-03 ||r(i)||/||b|| 3.138212667043e-10</div><div> 37 KSP preconditioned resid norm 2.528412836894e-05 true resid norm 2.108237735582e-03 ||r(i)||/||b|| 1.314486227337e-10</div><div> 38 KSP preconditioned resid norm 1.267202237267e-05 true resid norm 1.451831066002e-03 ||r(i)||/||b|| 9.052166691026e-11</div><div> 39 KSP preconditioned resid norm 8.210280946453e-06 true resid norm 7.040263504011e-04 ||r(i)||/||b|| 4.389604292084e-11</div><div> 40 KSP preconditioned resid norm 4.663490696194e-06 true resid norm 4.017228546553e-04 ||r(i)||/||b|| 2.504741997254e-11</div><div> 41 KSP preconditioned resid norm 3.031143852348e-06 true resid norm 2.322717593194e-04 ||r(i)||/||b|| 1.448214418476e-11</div><div> 42 KSP preconditioned resid norm 1.849864051869e-06 true resid norm 1.124281997627e-04 ||r(i)||/||b|| 7.009898250945e-12</div><div> 43 KSP preconditioned resid norm 1.124434187023e-06 true resid norm 7.306110293564e-05 ||r(i)||/||b|| 4.555359765270e-12</div><div> 44 KSP preconditioned resid norm 6.544412722416e-07 true resid norm 3.401751796431e-05 ||r(i)||/||b|| 2.120992243786e-12</div><div> 45 KSP preconditioned resid norm 3.793047150173e-07 true resid norm 2.148969752882e-05 ||r(i)||/||b|| 1.339882640108e-12</div><div> 46 KSP preconditioned resid norm 2.171588698514e-07 true resid norm 1.106350941000e-05 ||r(i)||/||b|| 6.898098112943e-13</div><div> 47 KSP preconditioned resid norm 1.296462934907e-07 true resid norm 6.099370095521e-06 ||r(i)||/||b|| 3.802957252247e-13</div><div> 48 KSP preconditioned resid norm 8.025171649527e-08 true resid norm 3.573262429072e-06 ||r(i)||/||b|| 2.227929123173e-13</div><div> 49 KSP preconditioned resid norm 4.871794377896e-08 true resid norm 1.812080394338e-06 ||r(i)||/||b|| 1.129832125183e-13</div><div> 50 KSP preconditioned resid norm 3.113615807350e-08 true resid norm 1.077814343384e-06 ||r(i)||/||b|| 6.720172426917e-14</div><div> 51 KSP preconditioned resid norm 1.796713291999e-08 true resid norm 5.820635497903e-07 ||r(i)||/||b|| 3.629166230738e-14</div><div> 52 KSP preconditioned resid norm 1.101194810402e-08 true resid norm 3.130702427551e-07 ||r(i)||/||b|| 1.951992962392e-14</div><div> 53 KSP preconditioned resid norm 6.328675584656e-09 true resid norm 1.886022841038e-07 ||r(i)||/||b|| 1.175935240673e-14</div><div> 54 KSP preconditioned resid norm 3.753197413786e-09 true resid norm 9.249216284944e-08 ||r(i)||/||b|| 5.766886350159e-15</div><div> 55 KSP preconditioned resid norm 2.289205545523e-09 true resid norm 5.644941358874e-08 ||r(i)||/||b|| 3.519620935120e-15</div><div> 56 KSP preconditioned resid norm 1.398041051045e-09 true resid norm 2.841582922959e-08 ||r(i)||/||b|| 1.771726951389e-15</div><div> 57 KSP preconditioned resid norm 8.587888866230e-10 true resid norm 1.829052851330e-08 ||r(i)||/||b|| 1.140414452112e-15</div><div> 58 KSP preconditioned resid norm 5.353939794444e-10 true resid norm 1.100004853784e-08 ||r(i)||/||b|| 6.858530259177e-16</div><div> 59 KSP preconditioned resid norm 3.152419669065e-10 true resid norm 6.833334353224e-09 ||r(i)||/||b|| 4.260583966647e-16</div><div> 60 KSP preconditioned resid norm 1.930837697706e-10 true resid norm 3.532215487724e-09 ||r(i)||/||b|| 2.202336355258e-16</div><div> 61 KSP preconditioned resid norm 1.138921366053e-10 true resid norm 2.879312701518e-09 ||r(i)||/||b|| 1.795251468306e-16</div><div> 62 KSP preconditioned resid norm 6.820698934300e-11 true resid norm 2.528012115752e-09 ||r(i)||/||b|| 1.576215553214e-16</div><div> 63 KSP preconditioned resid norm 4.141390392052e-11 true resid norm 3.265136945688e-09 ||r(i)||/||b|| 2.035812884400e-16</div><div> 64 KSP preconditioned resid norm 2.447449492240e-11 true resid norm 3.548082053472e-09 ||r(i)||/||b|| 2.212229158996e-16</div><div> 65 KSP preconditioned resid norm 1.530621705437e-11 true resid norm 2.329307411648e-09 ||r(i)||/||b|| 1.452323170280e-16</div><div> 66 KSP preconditioned resid norm 1.110145418759e-11 true resid norm 2.794373041066e-09 ||r(i)||/||b|| 1.742291590046e-16</div></div><div>Linear solve converged due to CONVERGED_RTOL iterations 67</div><div><br></div><div>Looks like neither of these ksp/pc combos are good? I also tried -pc_gamg_agg_nsmooths 0 but it didn't improve the solver at all. Here's the GAMG info I was able to grep from the out-of-box params:</div><div><br></div><div><div>[0] PCSetUp_GAMG(): level 0) N=8541, n data rows=1, n data cols=1, nnz/row (ave)=5, np=1</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">        </span> 99.9114% nnz after filtering, with threshold 0., 5.42079 nnz ave. (N=8541)</div><div>[0] PCGAMGCoarsen_AGG(): Square Graph on level 1 of 1 to square</div><div>[0] PCGAMGProlongator_AGG(): New grid 1541 nodes</div><div>[0] PCGAMGOptProlongator_AGG(): Smooth P0: max eigen=2.587728e+00 min=2.394056e-02 PC=jacobi</div><div>[0] PCSetUp_GAMG(): 1) N=1541, n data cols=1, nnz/row (ave)=5, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap"> </span> 100.% nnz after filtering, with threshold 0., 5.21674 nnz ave. (N=1541)</div><div>[0] PCGAMGProlongator_AGG(): New grid 537 nodes</div><div>[0] PCGAMGOptProlongator_AGG(): Smooth P0: max eigen=1.939736e+00 min=6.783380e-02 PC=jacobi</div><div>[0] PCSetUp_GAMG(): 2) N=537, n data cols=1, nnz/row (ave)=9, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">    </span> 100.% nnz after filtering, with threshold 0., 9.85289 nnz ave. (N=537)</div><div>[0] PCGAMGProlongator_AGG(): New grid 100 nodes</div><div>[0] PCGAMGOptProlongator_AGG(): Smooth P0: max eigen=2.521731e+00 min=5.974776e-02 PC=jacobi</div><div>[0] PCSetUp_GAMG(): 3) N=100, n data cols=1, nnz/row (ave)=12, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">    </span> 100.% nnz after filtering, with threshold 0., 12.4 nnz ave. (N=100)</div><div>[0] PCGAMGProlongator_AGG(): New grid 17 nodes</div><div>[0] PCGAMGOptProlongator_AGG(): Smooth P0: max eigen=1.560264e+00 min=4.842076e-01 PC=jacobi</div><div>[0] PCSetUp_GAMG(): 4) N=17, n data cols=1, nnz/row (ave)=9, 1 active pes</div><div>[0] PCSetUp_GAMG(): 5 levels, grid complexity = 1.31821</div></div><div><br></div><div>And the one with pc_gamg_agg_nsmooths 0</div><div><br></div><div><div>[0] PCSetUp_GAMG(): level 0) N=8541, n data rows=1, n data cols=1, nnz/row (ave)=5, np=1</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">      </span> 99.9114% nnz after filtering, with threshold 0., 5.42079 nnz ave. (N=8541)</div><div>[0] PCGAMGCoarsen_AGG(): Square Graph on level 1 of 1 to square</div><div>[0] PCGAMGProlongator_AGG(): New grid 1541 nodes</div><div>[0] PCSetUp_GAMG(): 1) N=1541, n data cols=1, nnz/row (ave)=3, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">    </span> 99.7467% nnz after filtering, with threshold 0., 3.07398 nnz ave. (N=1541)</div><div>[0] PCGAMGProlongator_AGG(): New grid 814 nodes</div><div>[0] PCSetUp_GAMG(): 2) N=814, n data cols=1, nnz/row (ave)=3, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">    </span> 100.% nnz after filtering, with threshold 0., 3.02211 nnz ave. (N=814)</div><div>[0] PCGAMGProlongator_AGG(): New grid 461 nodes</div><div>[0] PCSetUp_GAMG(): 3) N=461, n data cols=1, nnz/row (ave)=3, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">        </span> 100.% nnz after filtering, with threshold 0., 3.00434 nnz ave. (N=461)</div><div>[0] PCGAMGProlongator_AGG(): New grid 290 nodes</div><div>[0] PCSetUp_GAMG(): 4) N=290, n data cols=1, nnz/row (ave)=3, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">        </span> 100.% nnz after filtering, with threshold 0., 3. nnz ave. (N=290)</div><div>[0] PCGAMGProlongator_AGG(): New grid 197 nodes</div><div>[0] PCSetUp_GAMG(): 5) N=197, n data cols=1, nnz/row (ave)=3, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">     </span> 100.% nnz after filtering, with threshold 0., 3. nnz ave. (N=197)</div><div>[0] PCGAMGProlongator_AGG(): New grid 127 nodes</div><div>[0] PCSetUp_GAMG(): 6) N=127, n data cols=1, nnz/row (ave)=2, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">     </span> 100.% nnz after filtering, with threshold 0., 2.98425 nnz ave. (N=127)</div><div>[0] PCGAMGProlongator_AGG(): New grid 82 nodes</div><div>[0] PCSetUp_GAMG(): 7) N=82, n data cols=1, nnz/row (ave)=2, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">  </span> 100.% nnz after filtering, with threshold 0., 2.97561 nnz ave. (N=82)</div><div>[0] PCGAMGProlongator_AGG(): New grid 66 nodes</div><div>[0] PCSetUp_GAMG(): 8) N=66, n data cols=1, nnz/row (ave)=2, 1 active pes</div><div>[0] PCGAMGFilterGraph(): <span class="gmail-m_2287262086646419034gmail-Apple-tab-span" style="white-space:pre-wrap">   </span> 100.% nnz after filtering, with threshold 0., 2.9697 nnz ave. (N=66)</div><div>[0] PCGAMGProlongator_AGG(): New grid 36 nodes</div><div>[0] PCSetUp_GAMG(): 9) N=36, n data cols=1, nnz/row (ave)=2, 1 active pes</div><div>[0] PCSetUp_GAMG(): 10 levels, grid complexity = 1.23689</div></div><div><br></div><div><br></div><div>Thanks,</div><div>Justin</div></div></div></div></div></div></div></div></div></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, Feb 1, 2019 at 7:13 AM Mark Adams <<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div><br></div><div>Both GAMG and ILU are nice and dandy for this, </div></div></div></div></blockquote><div><br></div><div>I would test Richardson/SOR and Chebyshev/Jacobi on the tiny system and converge it way down, say rtol = 1.e-12. See which one is better in the early iteration and pick it. It would be nice to check that it solves the problem ...</div><div><br></div><div>The residual drops about 5 orders in the first iteration and then flatlines. That is very bad. Check that the smoother can actually solve the problem.  </div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>but as soon as I look at a bigger system, like a network with 8500 buses, the out-of-box gamg craps out. I am not sure where to start when it comes to tuning GAMG. </div></div></div></div></blockquote><div><br></div><div>First try -pc_gamg_nsmooths 0</div><div><br></div><div>You can run with -info and grep on GAMG to see some diagnostic output. Eigen estimates are fragile in practice and with this parameter and SOR there are no eigen estimates needed. The max eigen values for all levels should be between say 2 (or less) and say 3-4. Much higher is a sign of a problem.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>Attached is the ksp monitor/view output for gamg on the unsuccessful solve</div><div><br></div><div>I'm also attaching a zip file which contains the simple PETSc script that loads the binary matrix/vector as well as two test cases, if you guys are interested in trying it out. It only works if you have PETSc configured with complex numbers.</div><div><br></div><div>Thanks</div><div><br></div><div>Justin</div><div><br></div><div>PS - A couple years ago I had asked if there was a paper/tutorial on using/tuning GAMG. Does such a thing exist today?</div></div></div></div></blockquote><div><br></div><div>There is a write up in the manual that is tutorial like.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 31, 2019 at 5:00 PM Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Thu, Jan 31, 2019 at 6:22 PM Justin Chang <<a href="mailto:jychang48@gmail.com" target="_blank">jychang48@gmail.com</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">Here's IMHO the simplest explanation of the equations I'm trying to solve:<div><br></div><div><a href="http://home.eng.iastate.edu/~jdm/ee458_2011/PowerFlowEquations.pdf" target="_blank">http://home.eng.iastate.edu/~jdm/ee458_2011/PowerFlowEquations.pdf</a><br></div><div><br></div><div>Right now we're just trying to solve eq(5) (in section 1), inverting the linear Y-bus matrix. Eventually we have to be able to solve equations like those in the next section.</div></div></div></blockquote><div><br></div><div>Maybe I am reading this wrong, but the Y-bus matrix looks like an M-matrix to me (if all the y's are positive). This means</div><div>that it should be really easy to solve, and I think GAMG should do it. You can start out just doing relaxation, like SOR, on</div><div>small examples.</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jan 31, 2019 at 1:47 PM Matthew Knepley <<a href="mailto:knepley@gmail.com" target="_blank">knepley@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div dir="ltr">On Thu, Jan 31, 2019 at 3:20 PM Justin Chang via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Hi all,<div><br></div><div>I'm working with some folks to extract a linear system of equations from an external software package that solves power flow equations in complex form. Since that external package uses serial direct solvers like KLU from suitesparse, I want a proof-of-concept where the same matrix can be solved in PETSc using its parallel solvers. </div><div><br></div><div>I got mumps to achieve a very minor speedup across two MPI processes on a single node (went from solving a 300k dog system in 1.8 seconds to 1.5 seconds). However I want to use iterative solvers and preconditioners but I have never worked with complex numbers so I am not sure what the "best" options are given PETSc's capabilities.</div><div><br></div><div>So far I tried GMRES/BJACOBI and it craps out (unsurprisingly). I believe I also tried BICG with BJACOBI and while it did converge it converged slowly. Does anyone have recommendations on how one would go about preconditioning PETSc matrices with complex numbers? I was originally thinking about converting it to cartesian form: Declaring all voltages = sqrt(real^2+imaginary^2) and all angles to be something like a conditional arctan(imaginary/real) because all the papers I've seen in literature that claim to successfully precondition power flow equations operate in this form.</div></div></blockquote><div><br></div><div>1) We really need to see the (simplified) equations</div><div><br></div><div>2) All complex equations can be converted to a system of real equations twice as large, but this is not necessarily the best way to go</div><div><br></div><div> Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div>Justin</div></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_2287262086646419034gmail-m_8662562789153056947gmail-m_-7895652953510261891gmail-m_-5927997594778934562gmail-m_4182101500591969802gmail-m_-7596872824010350421gmail-m_8922927719976317655gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail-m_2287262086646419034gmail-m_8662562789153056947gmail-m_-7895652953510261891gmail-m_-5927997594778934562gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>
</blockquote></div>
</blockquote></div></div>
</blockquote></div>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>