diff --git a/SimPEG/forward/DCProblem.py b/SimPEG/forward/DCProblem.py index 34046a52..074cdb8b 100644 --- a/SimPEG/forward/DCProblem.py +++ b/SimPEG/forward/DCProblem.py @@ -1,5 +1,5 @@ from SimPEG.mesh import TensorMesh -from SimPEG.forward import Problem, SyntheticProblem, ModelTransforms +from SimPEG.forward import Problem, ModelTransforms from SimPEG.tests import checkDerivative from SimPEG.utils import ModelBuilder, sdiag, mkvc from SimPEG import Solver @@ -201,23 +201,17 @@ if __name__ == '__main__': P = Q.T # Create some data - class syntheticDCProblem(DCProblem, SyntheticProblem): - pass + problem = DCProblem(mesh) + problem.P = P + problem.RHS = q + dobs, Wd = problem.createSyntheticData(mSynth, std=0.05) - synthetic = syntheticDCProblem(mesh); - synthetic.P = P - synthetic.RHS = q - dobs, Wd = synthetic.createData(mSynth, std=0.05) - - u = synthetic.field(mSynth) - u = synthetic.reshapeFields(u) + u = problem.field(mSynth) + u = problem.reshapeFields(u) mesh.plotImage(u[:,10]) # plt.show() # Now set up the problem to do some minimization - problem = DCProblem(mesh) - problem.P = P - problem.RHS = q problem.dobs = dobs problem.std = dobs*0 + 0.05 m0 = mesh.gridCC[:,0]*0+sig2 diff --git a/SimPEG/forward/Problem.py b/SimPEG/forward/Problem.py index b444df90..304f3912 100644 --- a/SimPEG/forward/Problem.py +++ b/SimPEG/forward/Problem.py @@ -226,27 +226,15 @@ class Problem(object): """ return sp.eye(m.size) - - - -class SyntheticProblem(object): - """ - Has helpful functions when dealing with synthetic problems - - To use this class, inherit to your problem:: - - class mySyntheticExample(Problem, SyntheticProblem): - pass - """ - def createData(self, m, std=0.05): + def createSyntheticData(self, m, std=0.05): """ + Create synthetic data given a model, and a standard deviation. + :param numpy.array m: geophysical model :param numpy.array std: standard deviation :rtype: numpy.array, numpy.array :return: dobs, Wd - Create synthetic data given a model, and a standard deviation. - Returns the observed data with random Gaussian noise and Wd which is the same size as data, and can be used to weight the inversion. """ diff --git a/SimPEG/inverse/Inversion.py b/SimPEG/inverse/Inversion.py index aca82a58..5a71f6ec 100644 --- a/SimPEG/inverse/Inversion.py +++ b/SimPEG/inverse/Inversion.py @@ -31,6 +31,11 @@ class BaseInversion(object): self.opt.printers.insert(3,SimPEG.inverse.IterationPrinters.phi_m) self.opt.stoppers.append(SimPEG.inverse.StoppingCriteria.phi_d_target_Minimize) + if not hasattr(opt, '_bfgsH0'): # Check if it has been set by the user and the default is not being used. + print 'Setting bfgsH0 to the inverse of the modelObj2Deriv.' + opt.bfgsH0 = SimPEG.Solver(reg.modelObj2Deriv(),doDirect=True,options={'factorize':True}) # False, options={'M':'GS','maxIter':15} + + @property def Wd(self): """ @@ -40,6 +45,9 @@ class BaseInversion(object): eps = np.linalg.norm(mkvc(self.prob.dobs),2)*1e-5 self._Wd = 1/(abs(self.prob.dobs)*self.prob.std+eps) return self._Wd + @Wd.setter + def Wd(self, value): + self._Wd = value @property def phi_d_target(self): @@ -90,9 +98,15 @@ class BaseInversion(object): if self.debug: print 'startup is calling self.'+method getattr(self,method)(m0) + if not hasattr(self.reg, '_mref'): + print 'Regularization has not set mref. SimPEG will set it to m0.' + self.reg.mref = m0 + self.m = m0 self._iter = 0 self._beta = None + self.phi_d_last = np.nan + self.phi_m_last = np.nan def doEndIteration(self): """ @@ -157,7 +171,7 @@ class BaseInversion(object): if return_H: def H_fun(v): phi_d2Deriv = self.dataObj2Deriv(m, v, u=u) - phi_m2Deriv = self.reg.modelObj2Deriv(m)*v + phi_m2Deriv = self.reg.modelObj2Deriv()*v return phi_d2Deriv + self._beta * phi_m2Deriv diff --git a/SimPEG/inverse/Optimize.py b/SimPEG/inverse/Optimize.py index 6756b376..75209dc6 100644 --- a/SimPEG/inverse/Optimize.py +++ b/SimPEG/inverse/Optimize.py @@ -76,7 +76,7 @@ class IterationPrinters(object): itType = {"title": "itType", "value": lambda M: M._itType, "width": 8, "format": "%s"} aSet = {"title": "aSet", "value": lambda M: np.sum(M.activeSet(M.xc)), "width": 8, "format": "%d"} bSet = {"title": "bSet", "value": lambda M: np.sum(M.bindingSet(M.xc)), "width": 8, "format": "%d"} - comment = {"title": "Comment", "value": lambda M: M.projComment, "width": 7, "format": "%s"} + comment = {"title": "Comment", "value": lambda M: M.comment, "width": 12, "format": "%s"} beta = {"title": "beta", "value": lambda M: M.parent._beta, "width": 10, "format": "%1.2e"} phi_d = {"title": "phi_d", "value": lambda M: M.parent.phi_d, "width": 10, "format": "%1.2e"} @@ -106,6 +106,7 @@ class Minimize(object): debug = False debugLS = False + comment = '' counter = None def __init__(self, **kwargs): @@ -275,6 +276,11 @@ class Minimize(object): parent.printIter function and call that. """ + + for method in [posible for posible in dir(self) if '_printIter' in posible]: + if self.debug: print 'printIter is calling self.'+method + getattr(self,method)(inLS) + if doPub and not inLS: pub.sendMessage('Minimize.printIter', minimize=self) pad = ' '*10 if inLS else '' printLine(self, self.printers if not inLS else self.printersLS, pad=pad) @@ -534,7 +540,7 @@ class ProjectedGradient(Minimize, Remember): self.stopDoingPG = False self._itType = 'SD' - self.projComment = '' + self.comment = '' self.aSet_prev = self.activeSet(x0) @@ -600,7 +606,7 @@ class ProjectedGradient(Minimize, Remember): def reduceHess(v): # Z is tall and skinny return Z.T*(self.H*(Z*v)) - operator = sp.linalg.LinearOperator( (shape[1], shape[1]), reduceHess, dtype=float ) + operator = sp.linalg.LinearOperator( (shape[1], shape[1]), reduceHess, dtype=self.xc.dtype ) p, info = sp.linalg.cg(operator, -Z.T*self.g, tol=self.tolCG, maxiter=self.maxIterCG) p = Z*p # bring up to full size # aSet_after = self.activeSet(self.xc+p) @@ -615,7 +621,7 @@ class ProjectedGradient(Minimize, Remember): self.exploreCG = np.all(aSet == bSet) # explore conjugate gradient f_current_decrease = self.f_last - self.f - self.projComment = '' + self.comment = '' if self._iter < 1: # Note that this is reset on every CG iteration. self.f_decrease_max = -np.inf @@ -623,7 +629,7 @@ class ProjectedGradient(Minimize, Remember): self.f_decrease_max = max(self.f_decrease_max, f_current_decrease) self.stopDoingPG = f_current_decrease < 0.25 * self.f_decrease_max if self.stopDoingPG: - self.projComment = 'Stop SD' + self.comment = 'Stop SD' self.explorePG = False self.exploreCG = True # implement 3.8, MoreToraldo91 @@ -635,6 +641,74 @@ class ProjectedGradient(Minimize, Remember): if self.debug: print 'doEndIteration.ProjGrad, f_decrease_max: ', self.f_decrease_max if self.debug: print 'doEndIteration.ProjGrad, stopDoingSD: ', self.stopDoingSD + + +class BFGS(Minimize, Remember): + name = 'BFGS' + nbfgs = 10 + + @property + def bfgsH0(self): + """ + Approximate Hessian used in preconditioning the problem. + + Must be a SimPEG.Solver + """ + _bfgsH0 = getattr(self,'_bfgsH0',None) + if _bfgsH0 is None: + return Solver(sp.identity(self.xc.size).tocsc(), flag='D') + return _bfgsH0 + @bfgsH0.setter + def bfgsH0(self, value): + assert type(value) is Solver, 'bfgsH0 must be a SimPEG.Solver' + self._bfgsH0 = value + + def _startup_BFGS(self,x0): + self._bfgscnt = -1 + self._bfgsY = np.zeros((x0.size, self.nbfgs)) + self._bfgsS = np.zeros((x0.size, self.nbfgs)) + if not np.any([p is IterationPrinters.comment for p in self.printers]): + self.printers.append(IterationPrinters.comment) + + def bfgs(self, d): + n = self._bfgscnt + nn = ktop = min(self._bfgsS.shape[1],n) + return self.bfgsrec(ktop,n,nn,self._bfgsS,self._bfgsY,d) + + def bfgsrec(self,k,n,nn,S,Y,d): + """BFGS recursion""" + if k < 0: + d = self.bfgsH0.solve(d) + else: + khat = 0 if nn is 0 else np.mod(n-nn+k,nn) + gamma = np.vdot(S[:,khat],d)/np.vdot(Y[:,khat],S[:,khat]) + d = d - gamma*Y[:,khat] + d = self.bfgsrec(k-1,n,nn,S,Y,d) + d = d + (gamma - np.vdot(Y[:,khat],d)/np.vdot(Y[:,khat],S[:,khat]))*S[:,khat] + return d + + def findSearchDirection(self): + return self.bfgs(-self.g) + + def _doEndIteration_BFGS(self, xt): + if self._iter is 0: + self.g_last = self.g + return + + yy = self.g - self.g_last; + ss = self.xc - xt; + self.g_last = self.g + + if yy.dot(ss) > 0: + self._bfgscnt += 1 + ktop = np.mod(self._bfgscnt,self.nbfgs) + self._bfgsY[:,ktop] = yy + self._bfgsS[:,ktop] = ss + self.comment = '' + else: + self.comment = 'Skip BFGS' + + class GaussNewton(Minimize, Remember): name = 'Gauss Newton' @@ -643,16 +717,52 @@ class GaussNewton(Minimize, Remember): return Solver(self.H).solve(-self.g) -class InexactGaussNewton(Minimize, Remember): +class InexactGaussNewton(BFGS, Minimize, Remember): + """ + Minimizes using CG as the inexact solver of + + .. math:: + + \mathbf{H p = -g} + + By default BFGS is used as the preconditioner. + + Use *nbfgs* to set the memory limitation of BFGS. + + To set the initial H0 to be used in BFGS, set *bfgsH0* to be a SimPEG.Solver + + """ + + def __init__(self, **kwargs): + Minimize.__init__(self, **kwargs) + name = 'Inexact Gauss Newton' maxIterCG = 10 - tolCG = 1e-5 + tolCG = 1e-3 + + @property + def approxHinv(self): + """ + The approximate Hessian inverse is used to precondition CG. + + Default uses BFGS, with an initial H0 of *bfgsH0*. + + Must be a scipy.sparse.linalg.LinearOperator + """ + _approxHinv = getattr(self,'_approxHinv',None) + if _approxHinv is None: + M = sp.linalg.LinearOperator( (self.xc.size, self.xc.size), self.bfgs, dtype=self.xc.dtype ) + return M + return _approxHinv + @approxHinv.setter + def approxHinv(self, value): + self._approxHinv = value @timeIt def findSearchDirection(self): - # TODO: use BFGS as a preconditioner or gauss sidel of the WtW or solve WtW directly - p, info = sp.linalg.cg(self.H, -self.g, tol=self.tolCG, maxiter=self.maxIterCG) + Hinv = Solver(self.H, doDirect=False, options={'iterSolver': 'CG', 'M': self.approxHinv, 'tol': self.tolCG, 'maxIter': self.maxIterCG}) + p = Hinv.solve(-self.g) return p @@ -663,6 +773,84 @@ class SteepestDescent(Minimize, Remember): def findSearchDirection(self): return -self.g + +class NewtonRoot(object): + """ + Newton Method - Root Finding + + root = newtonRoot(fun,x); + + Where fun is the function that returns the function value as well as the + gradient. + + For iterative solving of dh = -J\\r, use O.solveTol = TOL. For direct + solves, use SOLVETOL = 0 (default) + + Rowan Cockett + 16-May-2013 16:29:51 + University of British Columbia + rcockett@eos.ubc.ca + + """ + + tol = 1.000e-06 + solveTol = 0 # Default direct solve. + maxIter = 20 + stepDcr = 0.5 + maxLS = 30 + comments = False + doLS = True + + def __init__(self, **kwargs): + setKwargs(self, **kwargs) + + def root(self, fun, x): + if self.comments: print 'Newton Method:\n' + + self._iter = 0 + while True: + + [r,J] = fun(x); + if self.solveTol == 0: + Jinv = Solver(J) + dh = - Jinv.solve(r) + else: + raise NotImplementedError('Iterative solve on NewtonRoot is not yet implemented.') + # M = @(x) tril(J)\(diag(J).*(triu(J)\x)); + # [dh, ~] = bicgstab(J,-r,O.solveTol,500,M); + + muLS = 1. + LScnt = 1 + xt = x + dh + rt, Jt = fun(xt) # TODO: get rid of Jt + + if self.comments: print '\tLinesearch:\n' + # Enter Linesearch + while True and self.doLS: + if self.comments: + print '\t\tResid: %e\n'%norm(rt) + if norm(rt) <= norm(r) or norm(rt) < self.tol: + break + + muLS = muLS*self.stepDcr + LScnt = LScnt + 1 + print '.' + if LScnt > self.maxLS: + print 'Newton Method: Line search break.' + root = NaN + return + xt = x + muLS*dh + rt, Jt = fun(xt) # TODO: get rid of Jt + + x = xt + self._iter += 1 + if norm(rt) < self.tol or self._iter > self.maxIter: + break + + return x + + + if __name__ == '__main__': from SimPEG.tests import Rosenbrock, checkDerivative import matplotlib.pyplot as plt @@ -677,3 +865,10 @@ if __name__ == '__main__': print "xOpt=[%f, %f]" % (xOpt[0], xOpt[1]) xOpt = SteepestDescent(maxIter=30, maxIterLS=15,tolF=1e-10,tolX=1e-10,tolG=1e-10).minimize(Rosenbrock, x0) print "xOpt=[%f, %f]" % (xOpt[0], xOpt[1]) + + + print 'test the newtonRoot finding.' + fun = lambda x: (np.sin(x), sdiag(np.cos(x))) + x = np.array([np.pi-0.3, np.pi+0.1, 0]) + pnt = NewtonRoot(comments=False).root(fun,x) + print pnt diff --git a/SimPEG/regularization/Regularization.py b/SimPEG/regularization/Regularization.py index ff3f2f7d..3e429324 100644 --- a/SimPEG/regularization/Regularization.py +++ b/SimPEG/regularization/Regularization.py @@ -7,7 +7,7 @@ class Regularization(object): @property def mref(self): if getattr(self, '_mref', None) is None: - self._mref = np.zeros(self.mesh.nC); + return np.zeros(self.mesh.nC); return self._mref @mref.setter def mref(self, value): @@ -105,8 +105,7 @@ class Regularization(object): @timeIt - def modelObj2Deriv(self, m): - mresid = m - self.mref + def modelObj2Deriv(self): mobj2Deriv = self.alpha_s * self.Ws.T * self.Ws diff --git a/SimPEG/tests/HTMLTestRunner.py b/SimPEG/tests/HTMLTestRunner.py index af384971..05ae09df 100644 --- a/SimPEG/tests/HTMLTestRunner.py +++ b/SimPEG/tests/HTMLTestRunner.py @@ -241,7 +241,8 @@ function showClassDetail(cid, count) { for (var i = 0; i < count; i++) { tid = id_list[i]; if (toHide) { - document.getElementById('div_'+tid).style.display = 'none' + var divTid = document.getElementById('div_'+tid); + if(divTid !== null){divTid.style.display = 'none';} document.getElementById(tid).className = 'hiddenRow'; } else { diff --git a/SimPEG/tests/TestUtils.py b/SimPEG/tests/TestUtils.py index 1cc2bbae..2723b0b7 100644 --- a/SimPEG/tests/TestUtils.py +++ b/SimPEG/tests/TestUtils.py @@ -189,7 +189,7 @@ def Rosenbrock(x, return_g=True, return_H=True): out += (H,) return out if len(out) > 1 else out[0] -def checkDerivative(fctn, x0, num=7, plotIt=True, dx=None): +def checkDerivative(fctn, x0, num=7, plotIt=True, dx=None, expectedOrder=2, tolerance=0.85, eps=1e-10): """ Basic derivative check @@ -201,6 +201,9 @@ def checkDerivative(fctn, x0, num=7, plotIt=True, dx=None): :param int num: number of times to reduce step length, h :param bool plotIt: if you would like to plot :param numpy.array dx: step direction + :param int expectedOrder: The order that you expect the derivative to yield. + :param float tolerance: The tolerance on the expected order. + :param float eps: What is zero? :rtype: bool :return: did you pass the test?! @@ -243,9 +246,6 @@ def checkDerivative(fctn, x0, num=7, plotIt=True, dx=None): order1 = np.log10(E1[:-1]/E1[1:]) print "%d\t%1.2e\t%1.3e\t\t%1.3e\t\t%1.3f" % (i, t[i], E0[i], E1[i], np.nan if i == 0 else order1[i-1]) - tolerance = 0.9 - expectedOrder = 2 - eps = 1e-10 order0 = order0[E0[1:] > eps] order1 = order1[E1[1:] > eps] belowTol = order1.size == 0 and order0.size > 0 @@ -276,16 +276,16 @@ def checkDerivative(fctn, x0, num=7, plotIt=True, dx=None): -def getQuadratic(A, b): +def getQuadratic(A, b, c=0): """ - Given A and b, this returns a quadratic, Q + Given A, b and c, this returns a quadratic, Q .. math:: - \mathbf{Q( x ) = 0.5 x A x + b x} + \mathbf{Q( x ) = 0.5 x A x + b x} + c """ def Quadratic(x, return_g=True, return_H=True): - f = 0.5 * x.dot( A.dot(x)) + b.dot( x ) + f = 0.5 * x.dot( A.dot(x)) + b.dot( x ) + c out = (f,) if return_g: g = A.dot(x) + b diff --git a/SimPEG/tests/test_forward_DCproblem.py b/SimPEG/tests/test_forward_DCproblem.py index c6e6f9c2..847d1055 100644 --- a/SimPEG/tests/test_forward_DCproblem.py +++ b/SimPEG/tests/test_forward_DCproblem.py @@ -2,7 +2,7 @@ import numpy as np import unittest from SimPEG.mesh import TensorMesh from SimPEG.utils import ModelBuilder, sdiag -from SimPEG.forward import Problem, SyntheticProblem +from SimPEG.forward import Problem from SimPEG.forward.DCProblem import * from TestUtils import checkDerivative from scipy.sparse.linalg import dsolve @@ -40,18 +40,13 @@ class DCProblemTests(unittest.TestCase): P = Q.T # Create some data - class syntheticDCProblem(DCProblem, SyntheticProblem): - pass - synthetic = syntheticDCProblem(mesh); - synthetic.P = P - synthetic.RHS = q - dobs, Wd = synthetic.createData(mSynth, std=0.05) - - # Now set up the problem to do some minimization problem = DCProblem(mesh) problem.P = P problem.RHS = q + dobs, Wd = problem.createSyntheticData(mSynth, std=0.05) + + # Now set up the problem to do some minimization problem.W = Wd problem.dobs = dobs problem.std = dobs*0 + 0.05 diff --git a/SimPEG/utils/Solver.py b/SimPEG/utils/Solver.py index a1194487..16db872f 100644 --- a/SimPEG/utils/Solver.py +++ b/SimPEG/utils/Solver.py @@ -1,9 +1,10 @@ import numpy as np -import scipy.sparse as sparse +import scipy.sparse as sp import scipy.sparse.linalg as linalg -from SimPEG.utils import mkvc +from SimPEG.utils import mkvc, sdiag +import warnings -DEFAULTS = {'direct':'scipy', 'forward':'fortran', 'backward':'fortran', 'diagonal':'python'} +DEFAULTS = {'direct':'scipy', 'iter':'scipy', 'forward':'fortran', 'backward':'fortran', 'diagonal':'python'} try: import TriSolve @@ -45,13 +46,44 @@ class Solver(object): def __init__(self, A, doDirect=True, flag=None, options={}): assert type(doDirect) is bool, 'doDirect must be a boolean' assert flag in [None, 'L', 'U', 'D'], "flag must be set to None, 'L', 'U', or 'D'" - + assert type(options) is dict, 'options must be a dictionary object' self.A = A self.dsolve = None self.doDirect = doDirect self.flag = flag self.options = options + if doDirect: return + + # Now deal with iterative stuff only + if 'M' not in options: + warnings.warn("You should provide a preconditioner, M.", UserWarning) + return + M = options['M'] + if type(M) is sp.linalg.LinearOperator: + return + PreconditionerList = ['J','GS'] + if type(M) is str: + assert M in PreconditionerList, "M must be in the known preconditioner list. ['J','GS']" + M = (M,A) # use A as the base for the preconditioner. + if type(M) is tuple: + assert type(M[0]) is str and M[0] in PreconditionerList, "M as a tuple must be (str, Matrix) where str is in ['J','GS']: e.g. ('J', WtW) where J stands for Jacobi, and WtW is a sparse matrix." + if M[0] is 'J': + Jacobi = sdiag(1.0/M[1].diagonal()) + options['M'] = Jacobi + elif M[0] is 'GS': + LL = sp.tril(M[1]) + UU = sp.triu(M[1]) + DD = sdiag(M[1].diagonal()) + Uinv = Solver(UU, flag='U') + Linv = Solver(LL, flag='L') + def GS(f): + return Uinv.solve(DD*Linv.solve(f)) + options['M'] = sp.linalg.LinearOperator( A.shape, GS, dtype=A.dtype ) + + else: + raise Exception('M must be a LinearOperator or a tuple') + def solve(self, b): """ @@ -118,8 +150,20 @@ class Solver(object): return X - def solveIter(self, b, M=None, iterSolver='CG'): - pass + def solveIter(self, b, backend=None, M=None, iterSolver='CG', tol=1e-6, maxIter=50): + if backend is None: backend = DEFAULTS['iter'] + + algorithms = {'CG':sp.linalg.cg} + assert iterSolver in algorithms, "iterSolver must be 'CG', or implement it yourself and add it here!" + alg = algorithms[iterSolver] + + if len(b.shape) == 1 or b.shape[1] == 1: + x, self.info = alg(self.A, b, M=M, tol=tol, maxiter=maxIter) + else: + x = np.empty_like(b) + for i in range(b.shape[1]): + x[:,i], self.info = alg(self.A, b[:,i], M=M, tol=tol, maxiter=maxIter) + return x def solveBackward(self, b, backend=None): """ @@ -132,9 +176,8 @@ class Solver(object): :return: x """ if backend is None: backend = DEFAULTS['backward'] - if type(self.A) is not sparse.csr.csr_matrix: - from scipy.sparse import csr_matrix - self.A = csr_matrix(self.A) + if type(self.A) is not sp.csr.csr_matrix: + self.A = sp.csr_matrix(self.A) vals = self.A.data rowptr = self.A.indptr colind = self.A.indices @@ -164,7 +207,7 @@ class Solver(object): :return: x """ if backend is None: backend = DEFAULTS['forward'] - if type(self.A) is not sparse.csr.csr_matrix: + if type(self.A) is not sp.csr.csr_matrix: from scipy.sparse import csr_matrix self.A = csr_matrix(self.A) vals = self.A.data @@ -240,13 +283,13 @@ if __name__ == '__main__': print np.linalg.norm(e-x,np.inf) - n = 6000 + n = 600 A_dense = np.random.random((n,n)) L = np.tril(np.dot(A_dense, A_dense)) # Positive definite is better conditioned. e = np.ones(n) b = np.dot(L, e) - A = sparse.csr_matrix(L) + A = sp.csr_matrix(L) pSolve = Solver(A,flag='L',options={'backend':'python'}); fSolve = Solver(A,flag='L',options={'backend':'fortran'}) tic = time() @@ -257,3 +300,17 @@ if __name__ == '__main__': x = fSolve.solve(b) toc = time() - tic print 'Error Forward Fortran = ', np.linalg.norm(x-e, np.inf), 'Time: ', toc + + + + A = -D*D.T + A[0,0] *= 10 # remove the constant null space from the matrix + e = np.ones(M.nC) + b = A.dot(e) + + iSolve = Solver(A, doDirect=False,options={'M':('GS',A)}) + tic = time() + x = iSolve.solve(b) + toc = time() - tic + print x + print 'Error CG = ', np.linalg.norm(x-e, np.inf), 'Time: ', toc, 'Info: ', iSolve.info diff --git a/docs/api_Problem.rst b/docs/api_Problem.rst index 068e30da..3d5a6d2c 100644 --- a/docs/api_Problem.rst +++ b/docs/api_Problem.rst @@ -26,3 +26,4 @@ Linear Problem :members: :undoc-members: + diff --git a/docs/api_Solver.rst b/docs/api_Solver.rst deleted file mode 100644 index db75860b..00000000 --- a/docs/api_Solver.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _api_Solver: - -Solver -****** - -.. automodule:: SimPEG.utils.Solver - :members: - :undoc-members: - diff --git a/docs/api_TestResults.rst b/docs/api_TestResults.rst index 9e8b2df3..fed77e4c 100644 --- a/docs/api_TestResults.rst +++ b/docs/api_TestResults.rst @@ -137,7 +137,8 @@ Test Results for (var i = 0; i < count; i++) { tid = id_list[i]; if (toHide) { - document.getElementById('div_'+tid).style.display = 'none' + var divTid = document.getElementById('div_'+tid); + if(divTid !== null){divTid.style.display = 'none';} document.getElementById(tid).className = 'hiddenRow'; } else { @@ -185,9 +186,9 @@ Test Results -->
Start Time: 2013-11-12 13:34:53
-Duration: 0:00:31.732498
-Status: Pass 117
+Start Time: 2013-11-21 11:59:36
+Duration: 0:00:32.074343
+Status: Pass 124
SimPEG Test Report was automatically generated.
+ + pt3.1: Setting bfgsH0 to the inverse of the modelObj2Deriv. + + ++
- pt3.2: ==================== checkDerivative ====================
+ pt3.2: Setting bfgsH0 to the inverse of the modelObj2Deriv.
+ ==================== checkDerivative ====================
iter h |J0-Jt| |J0+h*dJ'*dx-Jt| Order
---------------------------------------------------------
- 0 1.00e-01 5.517e+01 4.463e+01 nan
- 1 1.00e-02 1.516e+00 4.609e-01 1.986
- 2 1.00e-03 1.101e-01 4.624e-03 1.999
- 3 1.00e-04 1.059e-02 4.626e-05 2.000
- 4 1.00e-05 1.055e-03 4.626e-07 2.000
- 5 1.00e-06 1.055e-04 4.623e-09 2.000
- 6 1.00e-07 1.055e-05 4.504e-11 2.011
+ 0 1.00e-01 6.680e+01 6.164e+01 nan
+ 1 1.00e-02 1.154e+00 6.381e-01 1.985
+ 2 1.00e-03 5.798e-02 6.401e-03 1.999
+ 3 1.00e-04 5.222e-03 6.403e-05 2.000
+ 4 1.00e-05 5.164e-04 6.403e-07 2.000
+ 5 1.00e-06 5.159e-05 6.403e-09 2.000
+ 6 1.00e-07 5.158e-06 6.377e-11 2.002
========================= PASS! =========================
- Awesome, Rowan, just awesome.
+ You get a gold star!
@@ -411,18 +433,19 @@ Test Results
- pt3.3: ==================== checkDerivative ====================
+ pt3.3: Setting bfgsH0 to the inverse of the modelObj2Deriv.
+ ==================== checkDerivative ====================
iter h |J0-Jt| |J0+h*dJ'*dx-Jt| Order
---------------------------------------------------------
- 0 1.00e-01 1.180e-01 6.488e-03 nan
- 1 1.00e-02 1.175e-02 6.401e-05 2.006
- 2 1.00e-03 1.175e-03 6.390e-07 2.001
- 3 1.00e-04 1.175e-04 6.389e-09 2.000
- 4 1.00e-05 1.175e-05 6.389e-11 2.000
- 5 1.00e-06 1.175e-06 6.392e-13 2.000
- 6 1.00e-07 1.175e-07 7.710e-15 1.919
+ 0 1.00e-01 1.203e-01 1.785e-02 nan
+ 1 1.00e-02 1.175e-02 1.805e-04 1.995
+ 2 1.00e-03 1.173e-03 1.805e-06 2.000
+ 3 1.00e-04 1.173e-04 1.805e-08 2.000
+ 4 1.00e-05 1.173e-05 1.805e-10 2.000
+ 5 1.00e-06 1.173e-06 1.805e-12 2.000
+ 6 1.00e-07 1.173e-07 1.915e-14 1.975
========================= PASS! =========================
- Go Test Go!
+ The test be workin!
@@ -448,18 +471,19 @@ Test Results
- pt3.4: ==================== checkDerivative ====================
+ pt3.4: Setting bfgsH0 to the inverse of the modelObj2Deriv.
+ ==================== checkDerivative ====================
iter h |J0-Jt| |J0+h*dJ'*dx-Jt| Order
---------------------------------------------------------
- 0 1.00e-01 6.898e+00 7.074e+00 nan
- 1 1.00e-02 5.316e-02 7.074e-02 2.000
- 2 1.00e-03 1.051e-03 7.074e-04 2.000
- 3 1.00e-04 1.688e-04 7.074e-06 2.000
- 4 1.00e-05 1.752e-05 7.074e-08 2.000
- 5 1.00e-06 1.758e-06 7.074e-10 2.000
- 6 1.00e-07 1.759e-07 7.076e-12 2.000
+ 0 1.00e-01 6.895e+00 6.894e+00 nan
+ 1 1.00e-02 6.903e-02 6.894e-02 2.000
+ 2 1.00e-03 6.982e-04 6.894e-04 2.000
+ 3 1.00e-04 7.769e-06 6.894e-06 2.000
+ 4 1.00e-05 1.564e-07 6.894e-08 2.000
+ 5 1.00e-06 9.431e-09 6.894e-10 2.000
+ 6 1.00e-07 8.810e-10 6.895e-12 2.000
========================= PASS! =========================
- Testing is important.
+ Go Test Go!
@@ -498,15 +522,15 @@ Test Results
==================== checkDerivative ====================
iter h |J0-Jt| |J0+h*dJ'*dx-Jt| Order
---------------------------------------------------------
- 0 1.00e-01 2.762e-01 4.105e-17 nan
- 1 1.00e-02 2.762e-02 2.532e-17 0.210
- 2 1.00e-03 2.762e-03 4.066e-17 -0.206
- 3 1.00e-04 2.762e-04 4.297e-17 -0.024
- 4 1.00e-05 2.762e-05 5.494e-17 -0.107
- 5 1.00e-06 2.762e-06 4.696e-17 0.068
- 6 1.00e-07 2.762e-07 2.834e-17 0.219
+ 0 1.00e-01 1.936e-01 7.633e-17 nan
+ 1 1.00e-02 1.936e-02 7.268e-17 0.021
+ 2 1.00e-03 1.936e-03 6.545e-17 0.046
+ 3 1.00e-04 1.936e-04 8.778e-17 -0.127
+ 4 1.00e-05 1.936e-05 6.714e-17 0.116
+ 5 1.00e-06 1.936e-06 5.514e-17 0.086
+ 6 1.00e-07 1.936e-07 8.359e-17 -0.181
========================= PASS! =========================
- You deserve a pat on the back!
+ The test be workin!
@@ -535,15 +559,15 @@ Test Results
pt4.2: ==================== checkDerivative ====================
iter h |J0-Jt| |J0+h*dJ'*dx-Jt| Order
---------------------------------------------------------
- 0 1.00e-01 5.835e-01 2.875e-01 nan
- 1 1.00e-02 3.247e-02 2.875e-03 2.000
- 2 1.00e-03 2.989e-03 2.875e-05 2.000
- 3 1.00e-04 2.963e-04 2.875e-07 2.000
- 4 1.00e-05 2.960e-05 2.875e-09 2.000
- 5 1.00e-06 2.960e-06 2.875e-11 2.000
- 6 1.00e-07 2.960e-07 2.879e-13 1.999
+ 0 1.00e-01 3.925e-01 6.586e-02 nan
+ 1 1.00e-02 4.517e-02 6.586e-04 2.000
+ 2 1.00e-03 4.577e-03 6.586e-06 2.000
+ 3 1.00e-04 4.582e-04 6.586e-08 2.000
+ 4 1.00e-05 4.583e-05 6.586e-10 2.000
+ 5 1.00e-06 4.583e-06 6.587e-12 2.000
+ 6 1.00e-07 4.583e-07 6.827e-14 1.984
========================= PASS! =========================
- Awesome, Rowan, just awesome.
+ Not just a pretty face Rowan
@@ -583,22 +607,22 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 2.14e-01 |
- 16 | 6.31e-02 | 3.3843 | 1.7589
- 32 | 1.72e-02 | 3.6712 | 1.8763
+ 8 | 2.91e-01 |
+ 16 | 6.70e-02 | 4.3512 | 2.1214
+ 32 | 1.48e-02 | 4.5346 | 2.1810
---------------------------------------------
- Well done Rowan!
+ Not just a pretty face Rowan
randomTensorMesh: Interpolation 1D: CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 3.35e-01 |
- 16 | 1.18e-01 | 2.8469 | 1.8016
- 32 | 2.27e-02 | 5.1806 | 3.9741
+ 8 | 4.81e-01 |
+ 16 | 9.23e-02 | 5.2190 | 1.9811
+ 32 | 1.61e-02 | 5.7473 | 3.1176
---------------------------------------------
- Happy little convergence test!
+ You get a gold star!
@@ -629,22 +653,22 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 2.98e-01 |
- 16 | 6.69e-02 | 4.4487 | 2.1534
- 32 | 1.55e-02 | 4.3044 | 2.1058
+ 8 | 2.46e-01 |
+ 16 | 6.96e-02 | 3.5355 | 1.8219
+ 32 | 1.88e-02 | 3.6930 | 1.8848
---------------------------------------------
- Well done Rowan!
+ Awesome, Rowan, just awesome.
randomTensorMesh: Interpolation 1D: N
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.16e-01 |
- 16 | 1.60e-01 | 4.4731 | 1.8851
- 32 | 3.72e-02 | 4.3056 | 2.5981
+ 8 | 6.95e-01 |
+ 16 | 1.12e-01 | 6.2065 | 2.7830
+ 32 | 4.60e-02 | 2.4348 | 2.0359
---------------------------------------------
- Not just a pretty face Rowan
+ The test be workin!
@@ -684,22 +708,22 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.48e-02 |
- 16 | 1.79e-02 | 4.1840 | 2.0649
- 32 | 4.38e-03 | 4.0830 | 2.0296
- 64 | 1.16e-03 | 3.7604 | 1.9109
+ 8 | 7.59e-02 |
+ 16 | 1.90e-02 | 3.9894 | 1.9962
+ 32 | 4.72e-03 | 4.0321 | 2.0115
+ 64 | 1.20e-03 | 3.9485 | 1.9813
---------------------------------------------
- Testing is important.
+ Happy little convergence test!
randomTensorMesh: Interpolation 2D: CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 4.76e-02 |
- 16 | 6.08e-02 | 0.7830 | -1.0896
- 32 | 1.14e-02 | 5.3162 | 1.7097
- 64 | 1.19e-03 | 9.6340 | 3.5674
+ 8 | 1.52e-01 |
+ 16 | 2.90e-02 | 5.2472 | 1.9020
+ 32 | 9.09e-03 | 3.1868 | 1.4098
+ 64 | 2.68e-03 | 3.3935 | 2.1529
---------------------------------------------
Well done Rowan!
@@ -732,24 +756,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 6.98e-02 |
- 16 | 1.85e-02 | 3.7771 | 1.9173
- 32 | 4.76e-03 | 3.8827 | 1.9571
- 64 | 1.20e-03 | 3.9676 | 1.9883
+ 8 | 6.57e-02 |
+ 16 | 1.88e-02 | 3.4893 | 1.8030
+ 32 | 4.79e-03 | 3.9343 | 1.9761
+ 64 | 1.17e-03 | 4.1029 | 2.0366
---------------------------------------------
- That was easy!
+ Go Test Go!
randomTensorMesh: Interpolation 2D: Ex
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 2.61e-01 |
- 16 | 3.89e-02 | 6.7177 | 2.4144
- 32 | 1.41e-02 | 2.7587 | 1.3921
- 64 | 4.59e-03 | 3.0696 | 1.9255
+ 8 | 1.16e-01 |
+ 16 | 3.68e-02 | 3.1394 | 1.5218
+ 32 | 8.77e-03 | 4.1974 | 3.1728
+ 64 | 3.14e-03 | 2.7963 | 1.7619
---------------------------------------------
- That was easy!
+ Testing is important.
@@ -780,24 +804,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 6.97e-02 |
- 16 | 1.87e-02 | 3.7164 | 1.8939
- 32 | 4.74e-03 | 3.9516 | 1.9825
- 64 | 1.14e-03 | 4.1658 | 2.0586
+ 8 | 7.04e-02 |
+ 16 | 1.88e-02 | 3.7494 | 1.9067
+ 32 | 4.55e-03 | 4.1251 | 2.0444
+ 64 | 1.16e-03 | 3.9315 | 1.9751
---------------------------------------------
- That was easy!
+ You get a gold star!
randomTensorMesh: Interpolation 2D: Ey
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 1.82e-01 |
- 16 | 3.85e-02 | 4.7305 | 2.2574
- 32 | 9.33e-03 | 4.1268 | 2.3056
- 64 | 3.29e-03 | 2.8348 | 1.1080
+ 8 | 1.99e-01 |
+ 16 | 8.02e-02 | 2.4773 | 4.5721
+ 32 | 1.30e-02 | 6.1949 | 1.7850
+ 64 | 3.95e-03 | 3.2812 | 1.9890
---------------------------------------------
- Happy little convergence test!
+ Once upon a time, a happy little test passed.
@@ -828,24 +852,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.48e-02 |
- 16 | 1.79e-02 | 4.1840 | 2.0649
- 32 | 4.38e-03 | 4.0830 | 2.0296
- 64 | 1.16e-03 | 3.7604 | 1.9109
+ 8 | 7.59e-02 |
+ 16 | 1.90e-02 | 3.9894 | 1.9962
+ 32 | 4.72e-03 | 4.0321 | 2.0115
+ 64 | 1.20e-03 | 3.9485 | 1.9813
---------------------------------------------
- You are awesome.
+ Yay passed!
randomTensorMesh: Interpolation 2D: Fx
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 9.78e-02 |
- 16 | 4.87e-02 | 2.0098 | 1.1486
- 32 | 6.39e-03 | 7.6229 | 2.5269
- 64 | 3.06e-03 | 2.0873 | 1.0490
+ 8 | 5.31e-02 |
+ 16 | 4.42e-02 | 1.2007 | 0.2070
+ 32 | 1.05e-02 | 4.2086 | 2.5806
+ 64 | 1.80e-03 | 5.8391 | 2.4462
---------------------------------------------
- You are awesome.
+ The test be workin!
@@ -876,24 +900,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.59e-02 |
- 16 | 1.90e-02 | 3.9914 | 1.9969
- 32 | 4.62e-03 | 4.1142 | 2.0406
- 64 | 1.15e-03 | 4.0248 | 2.0089
+ 8 | 7.61e-02 |
+ 16 | 1.92e-02 | 3.9697 | 1.9890
+ 32 | 4.76e-03 | 4.0235 | 2.0084
+ 64 | 1.15e-03 | 4.1348 | 2.0478
---------------------------------------------
- Happy little convergence test!
+ Not just a pretty face Rowan
randomTensorMesh: Interpolation 2D: Fy
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 1.34e-01 |
- 16 | 2.73e-02 | 4.9171 | 2.4681
- 32 | 1.10e-02 | 2.4900 | 1.2825
- 64 | 3.06e-03 | 3.5774 | 1.9074
+ 8 | 1.37e-01 |
+ 16 | 3.12e-02 | 4.3873 | 2.7317
+ 32 | 7.83e-03 | 3.9895 | 2.3562
+ 64 | 2.26e-03 | 3.4691 | 1.3948
---------------------------------------------
- Testing is important.
+ Happy little convergence test!
@@ -924,24 +948,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 6.98e-02 |
- 16 | 1.85e-02 | 3.7771 | 1.9173
- 32 | 4.76e-03 | 3.8827 | 1.9571
- 64 | 1.20e-03 | 3.9676 | 1.9883
+ 8 | 6.57e-02 |
+ 16 | 1.88e-02 | 3.4893 | 1.8030
+ 32 | 4.79e-03 | 3.9343 | 1.9761
+ 64 | 1.17e-03 | 4.1029 | 2.0366
---------------------------------------------
- You deserve a pat on the back!
+ Well done Rowan!
randomTensorMesh: Interpolation 2D: N
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 2.05e-01 |
- 16 | 4.37e-02 | 4.6889 | 2.7894
- 32 | 1.30e-02 | 3.3576 | 1.7086
- 64 | 3.69e-03 | 3.5290 | 1.8138
+ 8 | 2.16e-01 |
+ 16 | 3.36e-02 | 6.4220 | 1.9825
+ 32 | 2.07e-02 | 1.6177 | 1.1560
+ 64 | 3.05e-03 | 6.8009 | 2.5482
---------------------------------------------
- Go Test Go!
+ The test be workin!
@@ -981,24 +1005,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.56e-02 |
- 16 | 1.87e-02 | 4.0396 | 2.0142
- 32 | 4.52e-03 | 4.1409 | 2.0499
- 64 | 1.19e-03 | 3.8144 | 1.9315
+ 8 | 7.38e-02 |
+ 16 | 1.70e-02 | 4.3363 | 2.1165
+ 32 | 4.67e-03 | 3.6472 | 1.8668
+ 64 | 1.12e-03 | 4.1563 | 2.0553
---------------------------------------------
- Not just a pretty face Rowan
+ Well done Rowan!
randomTensorMesh: Interpolation CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 1.03e-01 |
- 16 | 5.43e-02 | 1.8919 | 1.5786
- 32 | 1.33e-02 | 4.0699 | 1.4626
- 64 | 3.40e-03 | 3.9265 | 2.7539
+ 8 | 2.39e-01 |
+ 16 | 2.83e-02 | 8.4410 | 3.3650
+ 32 | 8.35e-03 | 3.3902 | 1.4106
+ 64 | 2.59e-03 | 3.2260 | 1.7120
---------------------------------------------
- Awesome, Rowan, just awesome.
+ You are awesome.
@@ -1029,24 +1053,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.04e-02 |
- 16 | 1.86e-02 | 3.7784 | 1.9178
- 32 | 4.78e-03 | 3.8981 | 1.9628
- 64 | 1.20e-03 | 3.9741 | 1.9906
+ 8 | 6.97e-02 |
+ 16 | 1.88e-02 | 3.7094 | 1.8912
+ 32 | 4.68e-03 | 4.0208 | 2.0075
+ 64 | 1.17e-03 | 3.9957 | 1.9985
---------------------------------------------
- Well done Rowan!
+ You deserve a pat on the back!
randomTensorMesh: Interpolation Ex
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 2.52e-01 |
- 16 | 2.58e-02 | 9.7516 | 5.3251
- 32 | 1.69e-02 | 1.5285 | 0.4736
- 64 | 3.83e-03 | 4.4134 | 2.6664
+ 8 | 2.13e-01 |
+ 16 | 5.12e-02 | 4.1677 | 1.3954
+ 32 | 1.99e-02 | 2.5661 | 1.5524
+ 64 | 3.48e-03 | 5.7313 | 2.1382
---------------------------------------------
- You deserve a pat on the back!
+ You get a gold star!
@@ -1077,24 +1101,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.03e-02 |
- 16 | 1.83e-02 | 3.8430 | 1.9422
- 32 | 4.72e-03 | 3.8783 | 1.9554
- 64 | 1.17e-03 | 4.0244 | 2.0088
+ 8 | 7.04e-02 |
+ 16 | 1.86e-02 | 3.7826 | 1.9194
+ 32 | 4.79e-03 | 3.8833 | 1.9573
+ 64 | 1.17e-03 | 4.1003 | 2.0357
---------------------------------------------
- Yay passed!
+ That was easy!
randomTensorMesh: Interpolation Ey
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.70e-02 |
- 16 | 2.92e-02 | 2.6359 | 2.0836
- 32 | 1.66e-02 | 1.7612 | 0.7062
- 64 | 3.79e-03 | 4.3764 | 2.5121
+ 8 | 2.43e-01 |
+ 16 | 5.66e-02 | 4.2904 | 1.4531
+ 32 | 1.55e-02 | 3.6614 | 2.1536
+ 64 | 3.27e-03 | 4.7300 | 2.2808
---------------------------------------------
- Well done Rowan!
+ That was easy!
@@ -1125,24 +1149,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.04e-02 |
- 16 | 1.87e-02 | 3.7587 | 1.9102
- 32 | 4.79e-03 | 3.9106 | 1.9674
- 64 | 1.17e-03 | 4.1061 | 2.0378
+ 8 | 6.98e-02 |
+ 16 | 1.81e-02 | 3.8612 | 1.9491
+ 32 | 4.70e-03 | 3.8479 | 1.9441
+ 64 | 1.20e-03 | 3.9268 | 1.9733
---------------------------------------------
- You are awesome.
+ And then everyone was happy.
randomTensorMesh: Interpolation Ez
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 1.56e-01 |
- 16 | 3.70e-02 | 4.2142 | 1.7123
- 32 | 1.16e-02 | 3.1865 | 1.2409
- 64 | 4.18e-03 | 2.7767 | 1.8503
+ 8 | 9.77e-02 |
+ 16 | 4.93e-02 | 1.9820 | 2.0322
+ 32 | 1.34e-02 | 3.6656 | 1.4108
+ 64 | 4.90e-03 | 2.7436 | 1.4520
---------------------------------------------
- That was easy!
+ Yay passed!
@@ -1173,22 +1197,22 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.56e-02 |
- 16 | 1.87e-02 | 4.0396 | 2.0142
- 32 | 4.52e-03 | 4.1409 | 2.0499
- 64 | 1.19e-03 | 3.8144 | 1.9315
+ 8 | 7.38e-02 |
+ 16 | 1.70e-02 | 4.3363 | 2.1165
+ 32 | 4.67e-03 | 3.6472 | 1.8668
+ 64 | 1.12e-03 | 4.1563 | 2.0553
---------------------------------------------
- The test be workin!
+ Yay passed!
randomTensorMesh: Interpolation Fx
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 4.85e-02 |
- 16 | 3.26e-02 | 1.4891 | 0.4457
- 32 | 7.59e-03 | 4.2884 | 2.0210
- 64 | 2.21e-03 | 3.4371 | 2.3960
+ 8 | 1.51e-01 |
+ 16 | 2.31e-02 | 6.5343 | 3.0196
+ 32 | 1.32e-02 | 1.7456 | 0.8096
+ 64 | 2.24e-03 | 5.8991 | 2.1039
---------------------------------------------
Go Test Go!
@@ -1221,24 +1245,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.55e-02 |
- 16 | 1.86e-02 | 4.0668 | 2.0239
- 32 | 4.25e-03 | 4.3625 | 2.1252
- 64 | 1.12e-03 | 3.7855 | 1.9205
+ 8 | 7.61e-02 |
+ 16 | 1.92e-02 | 3.9630 | 1.9866
+ 32 | 4.81e-03 | 3.9962 | 1.9986
+ 64 | 1.20e-03 | 4.0135 | 2.0049
---------------------------------------------
- Once upon a time, a happy little test passed.
+ Well done Rowan!
randomTensorMesh: Interpolation Fy
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 1.26e-01 |
- 16 | 5.43e-02 | 2.3127 | 1.1973
- 32 | 6.95e-03 | 7.8090 | 3.7839
- 64 | 2.07e-03 | 3.3670 | 1.4675
+ 8 | 1.80e-01 |
+ 16 | 4.05e-02 | 4.4477 | 1.4993
+ 32 | 1.59e-02 | 2.5460 | 1.1426
+ 64 | 2.54e-03 | 6.2522 | 2.3141
---------------------------------------------
- You get a gold star!
+ Not just a pretty face Rowan
@@ -1269,24 +1293,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.56e-02 |
- 16 | 1.87e-02 | 4.0457 | 2.0164
- 32 | 4.58e-03 | 4.0787 | 2.0281
- 64 | 1.19e-03 | 3.8390 | 1.9407
+ 8 | 7.51e-02 |
+ 16 | 1.82e-02 | 4.1301 | 2.0462
+ 32 | 4.16e-03 | 4.3667 | 2.1266
+ 64 | 1.13e-03 | 3.6758 | 1.8781
---------------------------------------------
- You are awesome.
+ And then everyone was happy.
randomTensorMesh: Interpolation Fz
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 1.17e-01 |
- 16 | 2.69e-02 | 4.3374 | 2.1585
- 32 | 1.64e-02 | 1.6402 | 0.8257
- 64 | 3.86e-03 | 4.2449 | 1.7674
+ 8 | 1.32e-01 |
+ 16 | 5.78e-02 | 2.2902 | 1.6547
+ 32 | 9.69e-03 | 5.9708 | 2.9133
+ 64 | 4.41e-03 | 2.1983 | 1.1867
---------------------------------------------
- Happy little convergence test!
+ Well done Rowan!
@@ -1317,24 +1341,24 @@ Test Results
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 7.04e-02 |
- 16 | 1.86e-02 | 3.7784 | 1.9178
- 32 | 4.78e-03 | 3.8981 | 1.9628
- 64 | 1.20e-03 | 3.9741 | 1.9906
+ 8 | 6.97e-02 |
+ 16 | 1.88e-02 | 3.7094 | 1.8912
+ 32 | 4.68e-03 | 4.0208 | 2.0075
+ 64 | 1.17e-03 | 3.9957 | 1.9985
---------------------------------------------
- The test be workin!
+ Yay passed!
randomTensorMesh: Interpolation N
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 1.78e-01 |
- 16 | 3.66e-02 | 4.8776 | 3.1782
- 32 | 1.61e-02 | 2.2707 | 1.1549
- 64 | 3.17e-03 | 5.0740 | 2.0894
+ 8 | 7.50e-02 |
+ 16 | 7.65e-02 | 0.9805 | -0.0299
+ 32 | 1.75e-02 | 4.3794 | 2.0088
+ 64 | 4.46e-03 | 3.9163 | 1.9951
---------------------------------------------
- Happy little convergence test!
+ And then everyone was happy.
@@ -1426,7 +1450,7 @@ Test Results
16 | 2.42e-03 |
32 | 6.06e-04 | 4.0001 | 2.0000
---------------------------------------------
- Happy little convergence test!
+ Testing is important.
uniformLOM: Edge Inner Product - Isotropic
@@ -1446,7 +1470,7 @@ Test Results
16 | 2.81e-03 |
32 | 7.11e-04 | 3.9432 | 1.9794
---------------------------------------------
- You deserve a pat on the back!
+ Not just a pretty face Rowan
@@ -1480,7 +1504,7 @@ Test Results
16 | 6.29e-04 |
32 | 1.57e-04 | 3.9978 | 1.9992
---------------------------------------------
- Testing is important.
+ And then everyone was happy.
uniformLOM: Face Inner Product - Isotropic
@@ -1490,7 +1514,7 @@ Test Results
16 | 6.29e-04 |
32 | 1.57e-04 | 3.9978 | 1.9992
---------------------------------------------
- And then everyone was happy.
+ Not just a pretty face Rowan
rotateLOM: Face Inner Product - Isotropic
@@ -1500,7 +1524,7 @@ Test Results
16 | 3.08e-04 |
32 | 7.07e-05 | 4.3564 | 2.1231
---------------------------------------------
- Not just a pretty face Rowan
+ Well done Rowan!
@@ -1534,7 +1558,7 @@ Test Results
16 | 6.99e-03 |
32 | 1.75e-03 | 3.9996 | 1.9998
---------------------------------------------
- That was easy!
+ And then everyone was happy.
uniformLOM: Edge Inner Product - Anisotropic
@@ -1544,7 +1568,7 @@ Test Results
16 | 6.99e-03 |
32 | 1.75e-03 | 3.9996 | 1.9998
---------------------------------------------
- You get a gold star!
+ Go Test Go!
rotateLOM: Edge Inner Product - Anisotropic
@@ -1554,7 +1578,7 @@ Test Results
16 | 7.70e-03 |
32 | 1.94e-03 | 3.9622 | 1.9863
---------------------------------------------
- Happy little convergence test!
+ Go Test Go!
@@ -1588,7 +1612,7 @@ Test Results
16 | 2.68e-03 |
32 | 6.69e-04 | 3.9982 | 1.9993
---------------------------------------------
- And then everyone was happy.
+ You deserve a pat on the back!
uniformLOM: Face Inner Product - Anisotropic
@@ -1598,7 +1622,7 @@ Test Results
16 | 2.68e-03 |
32 | 6.69e-04 | 3.9982 | 1.9993
---------------------------------------------
- Yay passed!
+ You are awesome.
rotateLOM: Face Inner Product - Anisotropic
@@ -1608,7 +1632,7 @@ Test Results
16 | 2.15e-03 |
32 | 5.25e-04 | 4.0845 | 2.0302
---------------------------------------------
- Yay passed!
+ The test be workin!
@@ -1642,7 +1666,7 @@ Test Results
16 | 6.79e-03 |
32 | 1.70e-03 | 3.9996 | 1.9998
---------------------------------------------
- The test be workin!
+ Not just a pretty face Rowan
uniformLOM: Edge Inner Product - Full Tensor
@@ -1652,7 +1676,7 @@ Test Results
16 | 6.79e-03 |
32 | 1.70e-03 | 3.9996 | 1.9998
---------------------------------------------
- And then everyone was happy.
+ Go Test Go!
rotateLOM: Edge Inner Product - Full Tensor
@@ -1662,7 +1686,7 @@ Test Results
16 | 7.49e-03 |
32 | 1.89e-03 | 3.9617 | 1.9861
---------------------------------------------
- The test be workin!
+ Not just a pretty face Rowan
@@ -1696,7 +1720,7 @@ Test Results
16 | 3.10e-03 |
32 | 7.74e-04 | 3.9981 | 1.9993
---------------------------------------------
- You get a gold star!
+ You are awesome.
uniformLOM: Face Inner Product - Full Tensor
@@ -1706,7 +1730,7 @@ Test Results
16 | 3.10e-03 |
32 | 7.74e-04 | 3.9981 | 1.9993
---------------------------------------------
- The test be workin!
+ You are awesome.
rotateLOM: Face Inner Product - Full Tensor
@@ -1716,7 +1740,7 @@ Test Results
16 | 2.54e-03 |
32 | 6.23e-04 | 4.0741 | 2.0265
---------------------------------------------
- You deserve a pat on the back!
+ Testing is important.
@@ -1763,7 +1787,7 @@ Test Results
64 | 2.18e-02 | 4.0001 | 2.0000
128 | 5.46e-03 | 4.0000 | 2.0000
---------------------------------------------
- The test be workin!
+ Happy little convergence test!
uniformLOM: 2D Edge Inner Product - Isotropic
@@ -1777,7 +1801,7 @@ Test Results
64 | 2.18e-02 | 4.0001 | 2.0000
128 | 5.46e-03 | 4.0000 | 2.0000
---------------------------------------------
- You get a gold star!
+ You deserve a pat on the back!
rotateLOM: 2D Edge Inner Product - Isotropic
@@ -1791,7 +1815,7 @@ Test Results
64 | 2.00e-02 | 4.0155 | 2.0056
128 | 5.00e-03 | 4.0038 | 2.0014
---------------------------------------------
- You are awesome.
+ Go Test Go!
@@ -1829,7 +1853,7 @@ Test Results
64 | 2.53e-02 | 4.0000 | 2.0000
128 | 6.32e-03 | 4.0000 | 2.0000
---------------------------------------------
- Happy little convergence test!
+ You get a gold star!
uniformLOM: 2D Face Inner Product - Isotropic
@@ -1843,7 +1867,7 @@ Test Results
64 | 2.53e-02 | 4.0000 | 2.0000
128 | 6.32e-03 | 4.0000 | 2.0000
---------------------------------------------
- Not just a pretty face Rowan
+ Yay passed!
rotateLOM: 2D Face Inner Product - Isotropic
@@ -1857,7 +1881,7 @@ Test Results
64 | 2.30e-02 | 4.0132 | 2.0048
128 | 5.74e-03 | 4.0009 | 2.0003
---------------------------------------------
- That was easy!
+ Well done Rowan!
@@ -1895,7 +1919,7 @@ Test Results
64 | 1.30e-01 | 4.0000 | 2.0000
128 | 3.24e-02 | 4.0000 | 2.0000
---------------------------------------------
- That was easy!
+ And then everyone was happy.
uniformLOM: 2D Face Inner Product - Anisotropic
@@ -1909,7 +1933,7 @@ Test Results
64 | 1.30e-01 | 4.0000 | 2.0000
128 | 3.24e-02 | 4.0000 | 2.0000
---------------------------------------------
- Go Test Go!
+ Awesome, Rowan, just awesome.
rotateLOM: 2D Face Inner Product - Anisotropic
@@ -1961,7 +1985,7 @@ Test Results
64 | 3.66e-02 | 4.0000 | 2.0000
128 | 9.14e-03 | 4.0000 | 2.0000
---------------------------------------------
- Not just a pretty face Rowan
+ You get a gold star!
uniformLOM: 2D Edge Inner Product - Anisotropic
@@ -1975,7 +1999,7 @@ Test Results
64 | 3.66e-02 | 4.0000 | 2.0000
128 | 9.14e-03 | 4.0000 | 2.0000
---------------------------------------------
- Well done Rowan!
+ Awesome, Rowan, just awesome.
rotateLOM: 2D Edge Inner Product - Anisotropic
@@ -1989,7 +2013,7 @@ Test Results
64 | 2.23e-02 | 4.0739 | 2.0264
128 | 5.54e-03 | 4.0255 | 2.0092
---------------------------------------------
- Testing is important.
+ Well done Rowan!
@@ -2027,7 +2051,7 @@ Test Results
64 | 1.52e-01 | 4.0000 | 2.0000
128 | 3.80e-02 | 4.0000 | 2.0000
---------------------------------------------
- Testing is important.
+ And then everyone was happy.
uniformLOM: 2D Face Inner Product - Full Tensor
@@ -2041,7 +2065,7 @@ Test Results
64 | 1.52e-01 | 4.0000 | 2.0000
128 | 3.80e-02 | 4.0000 | 2.0000
---------------------------------------------
- Awesome, Rowan, just awesome.
+ Go Test Go!
rotateLOM: 2D Face Inner Product - Full Tensor
@@ -2055,7 +2079,7 @@ Test Results
64 | 1.45e-01 | 4.0074 | 2.0027
128 | 3.62e-02 | 3.9984 | 1.9994
---------------------------------------------
- You deserve a pat on the back!
+ Once upon a time, a happy little test passed.
@@ -2093,7 +2117,7 @@ Test Results
64 | 3.78e-03 | 4.0001 | 2.0000
128 | 9.46e-04 | 4.0000 | 2.0000
---------------------------------------------
- Not just a pretty face Rowan
+ Go Test Go!
uniformLOM: 2D Edge Inner Product - Full Tensor
@@ -2107,7 +2131,7 @@ Test Results
64 | 3.78e-03 | 4.0001 | 2.0000
128 | 9.46e-04 | 4.0000 | 2.0000
---------------------------------------------
- Testing is important.
+ You get a gold star!
rotateLOM: 2D Edge Inner Product - Full Tensor
@@ -2121,7 +2145,7 @@ Test Results
64 | 1.98e-02 | 3.8708 | 1.9526
128 | 5.03e-03 | 3.9418 | 1.9789
---------------------------------------------
- Happy little convergence test!
+ Testing is important.
@@ -2134,15 +2158,15 @@ Test Results
test_operators.TestAveraging2D
- 5
- 5
+ 6
+ 6
0
0
- Detail
+ Detail
- test_orderE2CC
+ test_orderCC2F
@@ -2157,38 +2181,38 @@ Test Results
pt11.1:
- uniformTensorMesh: Averaging 2D: E2CC
+ uniformTensorMesh: Averaging 2D: CC2F
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 6.87e-03 |
- 8 | 1.76e-03 | 3.8978 | 1.9627
- 16 | 4.45e-04 | 3.9561 | 1.9841
- 32 | 1.12e-04 | 3.9799 | 1.9927
+ 4 | 1.25e-01 |
+ 8 | 6.25e-02 | 1.9961 | 0.9972
+ 16 | 3.12e-02 | 1.9990 | 0.9993
+ 32 | 1.56e-02 | 1.9998 | 0.9998
---------------------------------------------
- Yay passed!
+ You are awesome.
- uniformLOM: Averaging 2D: E2CC
+ uniformLOM: Averaging 2D: CC2F
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 6.87e-03 |
- 8 | 1.76e-03 | 3.8978 | 1.9627
- 16 | 4.45e-04 | 3.9561 | 1.9841
- 32 | 1.12e-04 | 3.9799 | 1.9927
+ 4 | 1.25e-01 |
+ 8 | 6.25e-02 | 1.9961 | 0.9972
+ 16 | 3.12e-02 | 1.9990 | 0.9993
+ 32 | 1.56e-02 | 1.9998 | 0.9998
---------------------------------------------
- That was easy!
+ And then everyone was happy.
- rotateLOM: Averaging 2D: E2CC
+ rotateLOM: Averaging 2D: CC2F
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 6.88e-03 |
- 8 | 1.82e-03 | 3.7846 | 1.9202
- 16 | 4.66e-04 | 3.8970 | 1.9624
- 32 | 1.18e-04 | 3.9552 | 1.9837
+ 4 | 1.28e-01 |
+ 8 | 7.22e-02 | 1.7667 | 0.8210
+ 16 | 3.81e-02 | 1.8958 | 0.9228
+ 32 | 1.95e-02 | 1.9507 | 0.9640
---------------------------------------------
Go Test Go!
@@ -2202,7 +2226,7 @@ Test Results
- test_orderF2CC
+ test_orderE2CC
@@ -2217,6 +2241,66 @@ Test Results
pt11.2:
+ uniformTensorMesh: Averaging 2D: E2CC
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 6.87e-03 |
+ 8 | 1.76e-03 | 3.8978 | 1.9627
+ 16 | 4.45e-04 | 3.9561 | 1.9841
+ 32 | 1.12e-04 | 3.9799 | 1.9927
+ ---------------------------------------------
+ That was easy!
+
+
+ uniformLOM: Averaging 2D: E2CC
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 6.87e-03 |
+ 8 | 1.76e-03 | 3.8978 | 1.9627
+ 16 | 4.45e-04 | 3.9561 | 1.9841
+ 32 | 1.12e-04 | 3.9799 | 1.9927
+ ---------------------------------------------
+ And then everyone was happy.
+
+
+ rotateLOM: Averaging 2D: E2CC
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 6.88e-03 |
+ 8 | 1.82e-03 | 3.7846 | 1.9202
+ 16 | 4.66e-04 | 3.8970 | 1.9624
+ 32 | 1.18e-04 | 3.9552 | 1.9837
+ ---------------------------------------------
+ That was easy!
+
+
+
+
+
+
+
+
+
+
+
+ test_orderF2CC
+
+
+
+
+ pass
+
+
+
+
+ [x]
+
+
+
+ pt11.3:
uniformTensorMesh: Averaging 2D: F2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
@@ -2226,7 +2310,7 @@ Test Results
16 | 4.45e-04 | 3.9561 | 1.9841
32 | 1.12e-04 | 3.9799 | 1.9927
---------------------------------------------
- Once upon a time, a happy little test passed.
+ You are awesome.
uniformLOM: Averaging 2D: F2CC
@@ -2250,67 +2334,7 @@ Test Results
16 | 4.66e-04 | 3.8970 | 1.9624
32 | 1.18e-04 | 3.9552 | 1.9837
---------------------------------------------
- The test be workin!
-
-
-
-
-
-
-
-
-
-
-
- test_orderN2CC
-
-
-
-
- pass
-
-
-
-
- [x]
-
-
-
- pt11.3:
- uniformTensorMesh: Averaging 2D: N2CC
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 1.37e-02 |
- 8 | 3.52e-03 | 3.8978 | 1.9627
- 16 | 8.90e-04 | 3.9561 | 1.9841
- 32 | 2.24e-04 | 3.9799 | 1.9927
- ---------------------------------------------
- Well done Rowan!
-
-
- uniformLOM: Averaging 2D: N2CC
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 1.37e-02 |
- 8 | 3.52e-03 | 3.8978 | 1.9627
- 16 | 8.90e-04 | 3.9561 | 1.9841
- 32 | 2.24e-04 | 3.9799 | 1.9927
- ---------------------------------------------
- That was easy!
-
-
- rotateLOM: Averaging 2D: N2CC
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 1.38e-02 |
- 8 | 3.64e-03 | 3.7900 | 1.9222
- 16 | 9.33e-04 | 3.8980 | 1.9627
- 32 | 2.36e-04 | 3.9577 | 1.9847
- ---------------------------------------------
- That was easy!
+ Happy little convergence test!
@@ -2322,7 +2346,7 @@ Test Results
- test_orderN2E
+ test_orderN2CC
@@ -2337,40 +2361,40 @@ Test Results
pt11.4:
- uniformTensorMesh: Averaging 2D: N2E
+ uniformTensorMesh: Averaging 2D: N2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 7.74e-03 |
- 8 | 1.95e-03 | 3.9727 | 1.9901
- 16 | 4.88e-04 | 3.9932 | 1.9975
- 32 | 1.22e-04 | 3.9983 | 1.9994
- ---------------------------------------------
- Happy little convergence test!
-
-
- uniformLOM: Averaging 2D: N2E
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 7.74e-03 |
- 8 | 1.95e-03 | 3.9727 | 1.9901
- 16 | 4.88e-04 | 3.9932 | 1.9975
- 32 | 1.22e-04 | 3.9983 | 1.9994
+ 4 | 1.37e-02 |
+ 8 | 3.52e-03 | 3.8978 | 1.9627
+ 16 | 8.90e-04 | 3.9561 | 1.9841
+ 32 | 2.24e-04 | 3.9799 | 1.9927
---------------------------------------------
That was easy!
- rotateLOM: Averaging 2D: N2E
+ uniformLOM: Averaging 2D: N2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 1.02e-02 |
- 8 | 2.73e-03 | 3.7288 | 1.8987
- 16 | 7.34e-04 | 3.7229 | 1.8964
- 32 | 1.86e-04 | 3.9505 | 1.9820
+ 4 | 1.37e-02 |
+ 8 | 3.52e-03 | 3.8978 | 1.9627
+ 16 | 8.90e-04 | 3.9561 | 1.9841
+ 32 | 2.24e-04 | 3.9799 | 1.9927
---------------------------------------------
- You deserve a pat on the back!
+ Happy little convergence test!
+
+
+ rotateLOM: Averaging 2D: N2CC
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 1.38e-02 |
+ 8 | 3.64e-03 | 3.7900 | 1.9222
+ 16 | 9.33e-04 | 3.8980 | 1.9627
+ 32 | 2.36e-04 | 3.9577 | 1.9847
+ ---------------------------------------------
+ Well done Rowan!
@@ -2382,7 +2406,7 @@ Test Results
- test_orderN2F
+ test_orderN2E
@@ -2397,6 +2421,66 @@ Test Results
pt11.5:
+ uniformTensorMesh: Averaging 2D: N2E
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 7.74e-03 |
+ 8 | 1.95e-03 | 3.9727 | 1.9901
+ 16 | 4.88e-04 | 3.9932 | 1.9975
+ 32 | 1.22e-04 | 3.9983 | 1.9994
+ ---------------------------------------------
+ Once upon a time, a happy little test passed.
+
+
+ uniformLOM: Averaging 2D: N2E
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 7.74e-03 |
+ 8 | 1.95e-03 | 3.9727 | 1.9901
+ 16 | 4.88e-04 | 3.9932 | 1.9975
+ 32 | 1.22e-04 | 3.9983 | 1.9994
+ ---------------------------------------------
+ Happy little convergence test!
+
+
+ rotateLOM: Averaging 2D: N2E
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 1.02e-02 |
+ 8 | 2.73e-03 | 3.7288 | 1.8987
+ 16 | 7.34e-04 | 3.7229 | 1.8964
+ 32 | 1.86e-04 | 3.9505 | 1.9820
+ ---------------------------------------------
+ And then everyone was happy.
+
+
+
+
+
+
+
+
+
+
+
+ test_orderN2F
+
+
+
+
+ pass
+
+
+
+
+ [x]
+
+
+
+ pt11.6:
uniformTensorMesh: Averaging 2D: N2F
_____________________________________________
h | error | e(i-1)/e(i) | order
@@ -2406,7 +2490,7 @@ Test Results
16 | 4.88e-04 | 3.9932 | 1.9975
32 | 1.22e-04 | 3.9983 | 1.9994
---------------------------------------------
- Testing is important.
+ Well done Rowan!
uniformLOM: Averaging 2D: N2F
@@ -2418,7 +2502,7 @@ Test Results
16 | 4.88e-04 | 3.9932 | 1.9975
32 | 1.22e-04 | 3.9983 | 1.9994
---------------------------------------------
- And then everyone was happy.
+ Not just a pretty face Rowan
rotateLOM: Averaging 2D: N2F
@@ -2430,7 +2514,7 @@ Test Results
16 | 7.34e-04 | 3.7229 | 1.8964
32 | 1.86e-04 | 3.9505 | 1.9820
---------------------------------------------
- Yay passed!
+ Once upon a time, a happy little test passed.
@@ -2443,15 +2527,15 @@ Test Results
test_operators.TestAveraging3D
- 5
- 5
+ 6
+ 6
0
0
- Detail
+ Detail
- test_orderE2CC
+ test_orderCC2F
@@ -2466,40 +2550,40 @@ Test Results
pt12.1:
- uniformTensorMesh: Averaging 3D: E2CC
+ uniformTensorMesh: Averaging 3D: CC2F
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 8.53e-03 |
- 8 | 2.47e-03 | 3.4463 | 1.7851
- 16 | 6.63e-04 | 3.7311 | 1.8996
- 32 | 1.71e-04 | 3.8674 | 1.9514
+ 4 | 3.19e-01 |
+ 8 | 1.65e-01 | 1.9394 | 0.9556
+ 16 | 8.36e-02 | 1.9692 | 0.9776
+ 32 | 4.21e-02 | 1.9845 | 0.9888
---------------------------------------------
- Go Test Go!
+ Yay passed!
- uniformLOM: Averaging 3D: E2CC
+ uniformLOM: Averaging 3D: CC2F
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 8.53e-03 |
- 8 | 2.47e-03 | 3.4463 | 1.7851
- 16 | 6.63e-04 | 3.7311 | 1.8996
- 32 | 1.71e-04 | 3.8674 | 1.9514
+ 4 | 3.19e-01 |
+ 8 | 1.65e-01 | 1.9394 | 0.9556
+ 16 | 8.36e-02 | 1.9692 | 0.9776
+ 32 | 4.21e-02 | 1.9845 | 0.9888
---------------------------------------------
- Once upon a time, a happy little test passed.
+ Well done Rowan!
- rotateLOM: Averaging 3D: E2CC
+ rotateLOM: Averaging 3D: CC2F
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 9.08e-03 |
- 8 | 2.55e-03 | 3.5588 | 1.8314
- 16 | 7.77e-04 | 3.2852 | 1.7160
- 32 | 2.08e-04 | 3.7415 | 1.9036
+ 4 | 3.57e-01 |
+ 8 | 1.92e-01 | 1.8621 | 0.8969
+ 16 | 9.95e-02 | 1.9268 | 0.9462
+ 32 | 4.98e-02 | 1.9972 | 0.9980
---------------------------------------------
- Happy little convergence test!
+ You get a gold star!
@@ -2511,7 +2595,7 @@ Test Results
- test_orderF2CC
+ test_orderE2CC
@@ -2526,40 +2610,40 @@ Test Results
pt12.2:
- uniformTensorMesh: Averaging 3D: F2CC
+ uniformTensorMesh: Averaging 3D: E2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 4.26e-03 |
- 8 | 1.24e-03 | 3.4463 | 1.7851
- 16 | 3.32e-04 | 3.7311 | 1.8996
- 32 | 8.57e-05 | 3.8674 | 1.9514
+ 4 | 8.53e-03 |
+ 8 | 2.47e-03 | 3.4463 | 1.7851
+ 16 | 6.63e-04 | 3.7311 | 1.8996
+ 32 | 1.71e-04 | 3.8674 | 1.9514
---------------------------------------------
Once upon a time, a happy little test passed.
- uniformLOM: Averaging 3D: F2CC
+ uniformLOM: Averaging 3D: E2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 4.26e-03 |
- 8 | 1.24e-03 | 3.4463 | 1.7851
- 16 | 3.32e-04 | 3.7311 | 1.8996
- 32 | 8.57e-05 | 3.8674 | 1.9514
+ 4 | 8.53e-03 |
+ 8 | 2.47e-03 | 3.4463 | 1.7851
+ 16 | 6.63e-04 | 3.7311 | 1.8996
+ 32 | 1.71e-04 | 3.8674 | 1.9514
---------------------------------------------
- You deserve a pat on the back!
+ Testing is important.
- rotateLOM: Averaging 3D: F2CC
+ rotateLOM: Averaging 3D: E2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 4.54e-03 |
- 8 | 1.28e-03 | 3.5589 | 1.8314
- 16 | 3.88e-04 | 3.2842 | 1.7155
- 32 | 1.04e-04 | 3.7417 | 1.9037
+ 4 | 9.08e-03 |
+ 8 | 2.55e-03 | 3.5588 | 1.8314
+ 16 | 7.77e-04 | 3.2852 | 1.7160
+ 32 | 2.08e-04 | 3.7415 | 1.9036
---------------------------------------------
- You deserve a pat on the back!
+ You are awesome.
@@ -2571,7 +2655,7 @@ Test Results
- test_orderN2CC
+ test_orderF2CC
@@ -2586,40 +2670,40 @@ Test Results
pt12.3:
- uniformTensorMesh: Averaging 3D: N2CC
+ uniformTensorMesh: Averaging 3D: F2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 1.28e-02 |
- 8 | 3.71e-03 | 3.4463 | 1.7851
- 16 | 9.95e-04 | 3.7311 | 1.8996
- 32 | 2.57e-04 | 3.8674 | 1.9514
+ 4 | 4.26e-03 |
+ 8 | 1.24e-03 | 3.4463 | 1.7851
+ 16 | 3.32e-04 | 3.7311 | 1.8996
+ 32 | 8.57e-05 | 3.8674 | 1.9514
---------------------------------------------
- Happy little convergence test!
+ Yay passed!
- uniformLOM: Averaging 3D: N2CC
+ uniformLOM: Averaging 3D: F2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 1.28e-02 |
- 8 | 3.71e-03 | 3.4463 | 1.7851
- 16 | 9.95e-04 | 3.7311 | 1.8996
- 32 | 2.57e-04 | 3.8674 | 1.9514
+ 4 | 4.26e-03 |
+ 8 | 1.24e-03 | 3.4463 | 1.7851
+ 16 | 3.32e-04 | 3.7311 | 1.8996
+ 32 | 8.57e-05 | 3.8674 | 1.9514
---------------------------------------------
- Once upon a time, a happy little test passed.
+ Go Test Go!
- rotateLOM: Averaging 3D: N2CC
+ rotateLOM: Averaging 3D: F2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 1.36e-02 |
- 8 | 3.83e-03 | 3.5589 | 1.8314
- 16 | 1.17e-03 | 3.2862 | 1.7164
- 32 | 3.11e-04 | 3.7413 | 1.9036
+ 4 | 4.54e-03 |
+ 8 | 1.28e-03 | 3.5589 | 1.8314
+ 16 | 3.88e-04 | 3.2842 | 1.7155
+ 32 | 1.04e-04 | 3.7417 | 1.9037
---------------------------------------------
- Well done Rowan!
+ That was easy!
@@ -2631,7 +2715,7 @@ Test Results
- test_orderN2E
+ test_orderN2CC
@@ -2646,42 +2730,42 @@ Test Results
pt12.4:
- uniformTensorMesh: Averaging 3D: N2E
+ uniformTensorMesh: Averaging 3D: N2CC
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 1.88e-02 |
- 8 | 4.99e-03 | 3.7613 | 1.9112
- 16 | 1.29e-03 | 3.8779 | 1.9553
- 32 | 3.27e-04 | 3.9382 | 1.9775
- ---------------------------------------------
- Once upon a time, a happy little test passed.
-
-
- uniformLOM: Averaging 3D: N2E
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 1.88e-02 |
- 8 | 4.99e-03 | 3.7613 | 1.9112
- 16 | 1.29e-03 | 3.8779 | 1.9553
- 32 | 3.27e-04 | 3.9382 | 1.9775
- ---------------------------------------------
- Awesome, Rowan, just awesome.
-
-
- rotateLOM: Averaging 3D: N2E
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 2.41e-02 |
- 8 | 6.11e-03 | 3.9523 | 1.9827
- 16 | 1.70e-03 | 3.5908 | 1.8443
- 32 | 4.41e-04 | 3.8566 | 1.9473
+ 4 | 1.28e-02 |
+ 8 | 3.71e-03 | 3.4463 | 1.7851
+ 16 | 9.95e-04 | 3.7311 | 1.8996
+ 32 | 2.57e-04 | 3.8674 | 1.9514
---------------------------------------------
Well done Rowan!
+ uniformLOM: Averaging 3D: N2CC
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 1.28e-02 |
+ 8 | 3.71e-03 | 3.4463 | 1.7851
+ 16 | 9.95e-04 | 3.7311 | 1.8996
+ 32 | 2.57e-04 | 3.8674 | 1.9514
+ ---------------------------------------------
+ The test be workin!
+
+
+ rotateLOM: Averaging 3D: N2CC
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 1.36e-02 |
+ 8 | 3.83e-03 | 3.5589 | 1.8314
+ 16 | 1.17e-03 | 3.2862 | 1.7164
+ 32 | 3.11e-04 | 3.7413 | 1.9036
+ ---------------------------------------------
+ Awesome, Rowan, just awesome.
+
+
@@ -2691,7 +2775,7 @@ Test Results
- test_orderN2F
+ test_orderN2E
@@ -2706,6 +2790,66 @@ Test Results
pt12.5:
+ uniformTensorMesh: Averaging 3D: N2E
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 1.88e-02 |
+ 8 | 4.99e-03 | 3.7613 | 1.9112
+ 16 | 1.29e-03 | 3.8779 | 1.9553
+ 32 | 3.27e-04 | 3.9382 | 1.9775
+ ---------------------------------------------
+ Yay passed!
+
+
+ uniformLOM: Averaging 3D: N2E
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 1.88e-02 |
+ 8 | 4.99e-03 | 3.7613 | 1.9112
+ 16 | 1.29e-03 | 3.8779 | 1.9553
+ 32 | 3.27e-04 | 3.9382 | 1.9775
+ ---------------------------------------------
+ Yay passed!
+
+
+ rotateLOM: Averaging 3D: N2E
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 2.41e-02 |
+ 8 | 6.11e-03 | 3.9523 | 1.9827
+ 16 | 1.70e-03 | 3.5908 | 1.8443
+ 32 | 4.41e-04 | 3.8566 | 1.9473
+ ---------------------------------------------
+ Go Test Go!
+
+
+
+
+
+
+
+
+
+
+
+ test_orderN2F
+
+
+
+
+ pass
+
+
+
+
+ [x]
+
+
+
+ pt12.6:
uniformTensorMesh: Averaging 3D: N2F
_____________________________________________
h | error | e(i-1)/e(i) | order
@@ -2715,7 +2859,7 @@ Test Results
16 | 1.27e-03 | 3.8285 | 1.9368
32 | 3.25e-04 | 3.9144 | 1.9688
---------------------------------------------
- Well done Rowan!
+ Go Test Go!
uniformLOM: Averaging 3D: N2F
@@ -2727,7 +2871,7 @@ Test Results
16 | 1.27e-03 | 3.8285 | 1.9368
32 | 3.25e-04 | 3.9144 | 1.9688
---------------------------------------------
- The test be workin!
+ Awesome, Rowan, just awesome.
rotateLOM: Averaging 3D: N2F
@@ -2751,7 +2895,7 @@ Test Results
- test_operators.TestCurl
+ test_operators.TestCellGrad1D_InhomogeneousDirichlet
1
1
0
@@ -2775,40 +2919,16 @@ Test Results
pt13.1:
- uniformTensorMesh: Curl
+ uniformTensorMesh: Cell Grad 1D - Dirichlet
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 4.43e-01 |
- 8 | 1.48e-01 | 2.9914 | 1.5808
- 16 | 3.95e-02 | 3.7462 | 1.9054
- 32 | 1.00e-02 | 3.9364 | 1.9769
+ 8 | 1.22e+00 |
+ 16 | 6.15e-01 | 1.9808 | 0.9861
+ 32 | 3.08e-01 | 1.9952 | 0.9965
+ 64 | 1.54e-01 | 1.9988 | 0.9991
---------------------------------------------
- You are awesome.
-
-
- uniformLOM: Curl
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 4.43e-01 |
- 8 | 1.48e-01 | 2.9914 | 1.5808
- 16 | 3.95e-02 | 3.7462 | 1.9054
- 32 | 1.00e-02 | 3.9364 | 1.9769
- ---------------------------------------------
- Go Test Go!
-
-
- rotateLOM: Curl
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 4 | 4.71e-01 |
- 8 | 8.86e-02 | 5.3170 | 2.4106
- 16 | 1.70e-02 | 5.2040 | 2.3796
- 32 | 3.77e-03 | 4.5126 | 2.1740
- ---------------------------------------------
- Happy little convergence test!
+ The test be workin!
@@ -2820,7 +2940,7 @@ Test Results
- test_operators.TestFaceDiv
+ test_operators.TestCellGrad2D_Dirichlet
1
1
0
@@ -2844,37 +2964,16 @@ Test Results
pt14.1:
- uniformTensorMesh: Face Divergence
+ uniformTensorMesh: Cell Grad 2D - Dirichlet
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 4.44e-01 |
- 16 | 1.19e-01 | 3.7462 | 1.9054
- 32 | 3.01e-02 | 3.9364 | 1.9769
+ 8 | 1.48e-01 |
+ 16 | 3.95e-02 | 3.7462 | 1.9054
+ 32 | 1.00e-02 | 3.9364 | 1.9769
+ 64 | 2.52e-03 | 3.9841 | 1.9943
---------------------------------------------
- You deserve a pat on the back!
-
-
- uniformLOM: Face Divergence
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 4.44e-01 |
- 16 | 1.19e-01 | 3.7462 | 1.9054
- 32 | 3.01e-02 | 3.9364 | 1.9769
- ---------------------------------------------
- The test be workin!
-
-
- rotateLOM: Face Divergence
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 9.08e-03 |
- 16 | 9.53e-04 | 9.5374 | 3.2536
- 32 | 2.75e-04 | 3.4594 | 1.7905
- ---------------------------------------------
- Go Test Go!
+ And then everyone was happy.
@@ -2886,7 +2985,7 @@ Test Results
- test_operators.TestFaceDiv2D
+ test_operators.TestCellGrad2D_Neumann
1
1
0
@@ -2910,40 +3009,16 @@ Test Results
pt15.1:
- uniformTensorMesh: Face Divergence 2D
+ uniformTensorMesh: Cell Grad 2D - Neumann
_____________________________________________
h | error | e(i-1)/e(i) | order
~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 2.96e-01 |
- 16 | 7.90e-02 | 3.7462 | 1.9054
- 32 | 2.01e-02 | 3.9364 | 1.9769
- 64 | 5.04e-03 | 3.9841 | 1.9943
+ 8 | 1.48e-01 |
+ 16 | 3.95e-02 | 3.7462 | 1.9054
+ 32 | 1.00e-02 | 3.9364 | 1.9769
+ 64 | 2.52e-03 | 3.9841 | 1.9943
---------------------------------------------
- Yay passed!
-
-
- uniformLOM: Face Divergence 2D
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 2.96e-01 |
- 16 | 7.90e-02 | 3.7462 | 1.9054
- 32 | 2.01e-02 | 3.9364 | 1.9769
- 64 | 5.04e-03 | 3.9841 | 1.9943
- ---------------------------------------------
- Yay passed!
-
-
- rotateLOM: Face Divergence 2D
- _____________________________________________
- h | error | e(i-1)/e(i) | order
- ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
- 8 | 2.96e-01 |
- 16 | 7.90e-02 | 3.7462 | 1.9054
- 32 | 2.01e-02 | 3.9364 | 1.9769
- 64 | 5.57e-03 | 3.6062 | 1.8505
- ---------------------------------------------
- And then everyone was happy.
+ You get a gold star!
@@ -2955,7 +3030,7 @@ Test Results
- test_operators.TestNodalGrad
+ test_operators.TestCellGrad3D_Dirichlet
1
1
0
@@ -2979,6 +3054,298 @@ Test Results
pt16.1:
+ uniformTensorMesh: Cell Grad 3D - Dirichlet
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 8 | 1.37e-01 |
+ 16 | 3.88e-02 | 3.5288 | 1.8192
+ 32 | 9.99e-03 | 3.8795 | 1.9559
+ ---------------------------------------------
+ Well done Rowan!
+
+
+
+
+
+
+
+
+
+
+
+ test_operators.TestCellGrad3D_Neumann
+ 1
+ 1
+ 0
+ 0
+ Detail
+
+
+
+ test_order
+
+
+
+
+ pass
+
+
+
+
+ [x]
+
+
+
+ pt17.1:
+ uniformTensorMesh: Cell Grad 3D - Neumann
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 8 | 1.37e-01 |
+ 16 | 3.88e-02 | 3.5288 | 1.8192
+ 32 | 9.99e-03 | 3.8795 | 1.9559
+ ---------------------------------------------
+ Awesome, Rowan, just awesome.
+
+
+
+
+
+
+
+
+
+
+
+ test_operators.TestCurl
+ 1
+ 1
+ 0
+ 0
+ Detail
+
+
+
+ test_order
+
+
+
+
+ pass
+
+
+
+
+ [x]
+
+
+
+ pt18.1:
+ uniformTensorMesh: Curl
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 4.43e-01 |
+ 8 | 1.48e-01 | 2.9914 | 1.5808
+ 16 | 3.95e-02 | 3.7462 | 1.9054
+ 32 | 1.00e-02 | 3.9364 | 1.9769
+ ---------------------------------------------
+ Once upon a time, a happy little test passed.
+
+
+ uniformLOM: Curl
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 4.43e-01 |
+ 8 | 1.48e-01 | 2.9914 | 1.5808
+ 16 | 3.95e-02 | 3.7462 | 1.9054
+ 32 | 1.00e-02 | 3.9364 | 1.9769
+ ---------------------------------------------
+ The test be workin!
+
+
+ rotateLOM: Curl
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 4 | 4.71e-01 |
+ 8 | 8.86e-02 | 5.3170 | 2.4106
+ 16 | 1.70e-02 | 5.2040 | 2.3796
+ 32 | 3.77e-03 | 4.5126 | 2.1740
+ ---------------------------------------------
+ Awesome, Rowan, just awesome.
+
+
+
+
+
+
+
+
+
+
+
+ test_operators.TestFaceDiv2D
+ 1
+ 1
+ 0
+ 0
+ Detail
+
+
+
+ test_order
+
+
+
+
+ pass
+
+
+
+
+ [x]
+
+
+
+ pt19.1:
+ uniformTensorMesh: Face Divergence 2D
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 8 | 2.96e-01 |
+ 16 | 7.90e-02 | 3.7462 | 1.9054
+ 32 | 2.01e-02 | 3.9364 | 1.9769
+ 64 | 5.04e-03 | 3.9841 | 1.9943
+ ---------------------------------------------
+ You deserve a pat on the back!
+
+
+ uniformLOM: Face Divergence 2D
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 8 | 2.96e-01 |
+ 16 | 7.90e-02 | 3.7462 | 1.9054
+ 32 | 2.01e-02 | 3.9364 | 1.9769
+ 64 | 5.04e-03 | 3.9841 | 1.9943
+ ---------------------------------------------
+ Well done Rowan!
+
+
+ rotateLOM: Face Divergence 2D
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 8 | 2.96e-01 |
+ 16 | 7.90e-02 | 3.7462 | 1.9054
+ 32 | 2.01e-02 | 3.9364 | 1.9769
+ 64 | 5.57e-03 | 3.6062 | 1.8505
+ ---------------------------------------------
+ Go Test Go!
+
+
+
+
+
+
+
+
+
+
+
+ test_operators.TestFaceDiv3D
+ 1
+ 1
+ 0
+ 0
+ Detail
+
+
+
+ test_order
+
+
+
+
+ pass
+
+
+
+
+ [x]
+
+
+
+ pt20.1:
+ uniformTensorMesh: Face Divergence 3D
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 8 | 4.44e-01 |
+ 16 | 1.19e-01 | 3.7462 | 1.9054
+ 32 | 3.01e-02 | 3.9364 | 1.9769
+ ---------------------------------------------
+ Yay passed!
+
+
+ uniformLOM: Face Divergence 3D
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 8 | 4.44e-01 |
+ 16 | 1.19e-01 | 3.7462 | 1.9054
+ 32 | 3.01e-02 | 3.9364 | 1.9769
+ ---------------------------------------------
+ You are awesome.
+
+
+ rotateLOM: Face Divergence 3D
+ _____________________________________________
+ h | error | e(i-1)/e(i) | order
+ ~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~~~~|~~~~~~~~~~
+ 8 | 9.08e-03 |
+ 16 | 9.53e-04 | 9.5374 | 3.2536
+ 32 | 2.75e-04 | 3.4594 | 1.7905
+ ---------------------------------------------
+ You are awesome.
+
+
+
+
+
+
+
+
+
+
+
+ test_operators.TestNodalGrad
+ 1
+ 1
+ 0
+ 0
+ Detail
+
+
+
+ test_order
+
+
+
+
+ pass
+
+
+
+
+ [x]
+
+
+
+ pt21.1:
uniformTensorMesh: Nodal Gradient
_____________________________________________
h | error | e(i-1)/e(i) | order
@@ -2988,7 +3355,7 @@ Test Results
16 | 1.34e-04 | 3.9116 | 1.9678
32 | 3.39e-05 | 3.9578 | 1.9847
---------------------------------------------
- You get a gold star!
+ That was easy!
uniformLOM: Nodal Gradient
@@ -3000,7 +3367,7 @@ Test Results
16 | 1.34e-04 | 3.9116 | 1.9678
32 | 3.39e-05 | 3.9578 | 1.9847
---------------------------------------------
- Testing is important.
+ Not just a pretty face Rowan
rotateLOM: Nodal Gradient
@@ -3029,25 +3396,25 @@ Test Results
1
0
0
- Detail
+ Detail
-
+
test_order
-
+
pass
-
+
- pt17.1:
+ pt22.1:
uniformTensorMesh: Nodal Gradient 2D
_____________________________________________
h | error | e(i-1)/e(i) | order
@@ -3069,7 +3436,7 @@ Test Results
16 | 1.34e-04 | 3.9116 | 1.9678
32 | 3.39e-05 | 3.9578 | 1.9847
---------------------------------------------
- The test be workin!
+ You are awesome.
rotateLOM: Nodal Gradient 2D
@@ -3081,7 +3448,7 @@ Test Results
16 | 1.80e-04 | 3.6343 | 1.8617
32 | 4.64e-05 | 3.8804 | 1.9562
---------------------------------------------
- Not just a pretty face Rowan
+ You deserve a pat on the back!
@@ -3098,25 +3465,25 @@ Test Results
4
0
0
- Detail
+ Detail
-
+
test_GN_Rosenbrock
-
+
pass
-
-
+
test_GN_quadratic
-
+
pass
-
-
+
test_ProjGradient_quadratic1Bound
-
+
pass
-
+
- pt18.3: ======================= Projected Gradient =======================
- # f |proj(x-g)-x| LS itType aSet bSet Comment
- ------------------------------------------------------------------
- 0 0.00e+00 2.24e+00 0 SD 0 0
- 1 -8.50e+00 0.00e+00 0 SD 1 1
+ pt23.3: ========================== Projected Gradient ==========================
+ # f |proj(x-g)-x| LS itType aSet bSet Comment
+ -----------------------------------------------------------------------
+ 0 0.00e+00 2.24e+00 0 SD 0 0
+ 1 -8.50e+00 0.00e+00 0 SD 1 1
------------------------- STOP! -------------------------
0 : |fc-fOld| = 8.5000e+00 <= tolF*(1+|f0|) = 1.0000e-01
0 : |xc-x_last| = 2.2361e+00 <= tolX*(1+|x0|) = 1.0000e-01
@@ -3226,26 +3593,26 @@ Test Results
-
+
test_ProjGradient_quadraticBounded
-
+
pass
-
+
- pt18.4: ======================= Projected Gradient =======================
- # f |proj(x-g)-x| LS itType aSet bSet Comment
- ------------------------------------------------------------------
- 0 0.00e+00 2.83e+00 0 SD 0 0
- 1 -1.60e+01 0.00e+00 0 SD 2 2
+ pt23.4: ========================== Projected Gradient ==========================
+ # f |proj(x-g)-x| LS itType aSet bSet Comment
+ -----------------------------------------------------------------------
+ 0 0.00e+00 2.83e+00 0 SD 0 0
+ 1 -1.60e+01 0.00e+00 0 SD 2 2
------------------------- STOP! -------------------------
0 : |fc-fOld| = 1.6000e+01 <= tolF*(1+|f0|) = 1.0000e-01
0 : |xc-x_last| = 2.8284e+00 <= tolX*(1+|x0|) = 1.0000e-01
@@ -3271,75 +3638,75 @@ Test Results
14
0
0
- Detail
+ Detail
-
+
test_directDiagonal_1
pass
-
+
test_directDiagonal_M
pass
-
+
test_directFactored_1
pass
-
+
test_directFactored_M
pass
-
+
test_directLower_1_fortran
pass
-
+
test_directLower_1_python
pass
-
+
test_directLower_M_fortran
pass
-
+
test_directLower_M_python
pass
-
+
test_directSpsolve_1
pass
-
+
test_directSpsolve_M
pass
-
+
test_directUpper_1_fortran
pass
-
+
test_directUpper_1_python
pass
-
+
test_directUpper_M_fortran
pass
-
+
test_directUpper_M_python
pass
@@ -3350,40 +3717,40 @@ Test Results
7
0
0
- Detail
+ Detail
-
+
test_area_3D
pass
-
+
test_edge_2D
pass
-
+
test_edge_3D
pass
-
+
test_vectorCC_2D
pass
-
+
test_vectorN_2D
pass
-
+
test_vol_2D
pass
-
+
test_vol_3D
pass
@@ -3394,25 +3761,25 @@ Test Results
2
0
0
- Detail
+ Detail
- pt21.1:
+ pt26.1:
uniformTensorMesh: Poisson Equation - Backward
_____________________________________________
h | error | e(i-1)/e(i) | order
@@ -3421,7 +3788,7 @@ Test Results
20 | 7.96e-03 | 1.5342 | 1.9182
24 | 5.59e-03 | 1.4258 | 1.9458
---------------------------------------------
- Awesome, Rowan, just awesome.
+ That was easy!
@@ -3432,22 +3799,22 @@ Test Results
- pt21.2:
+ pt26.2:
uniformTensorMesh: Poisson Equation - Forward
_____________________________________________
h | error | e(i-1)/e(i) | order
@@ -3456,7 +3823,7 @@ Test Results
20 | 9.35e-01 | 1.5271 | 1.8974
24 | 6.58e-01 | 1.4223 | 1.9320
---------------------------------------------
- Not just a pretty face Rowan
+ Once upon a time, a happy little test passed.
@@ -3473,38 +3840,38 @@ Test Results
3
0
0
- Detail
+ Detail
- pt22.1: ==================== checkDerivative ====================
+ pt27.1: ==================== checkDerivative ====================
iter h |J0-Jt| |J0+h*dJ'*dx-Jt| Order
---------------------------------------------------------
- 0 1.00e-01 1.967e-01 3.904e-01 nan
- 1 1.00e-02 1.941e-02 3.880e-02 1.003
- 2 1.00e-03 1.939e-03 3.877e-03 1.000
- 3 1.00e-04 1.938e-04 3.876e-04 1.000
- 4 1.00e-05 1.938e-05 3.876e-05 1.000
- 5 1.00e-06 1.938e-06 3.876e-06 1.000
- 6 1.00e-07 1.938e-07 3.876e-07 1.000
+ 0 1.00e-01 1.813e-01 3.602e-01 nan
+ 1 1.00e-02 1.792e-02 3.581e-02 1.003
+ 2 1.00e-03 1.789e-03 3.578e-03 1.000
+ 3 1.00e-04 1.789e-04 3.578e-04 1.000
+ 4 1.00e-05 1.789e-05 3.578e-05 1.000
+ 5 1.00e-06 1.789e-06 3.578e-06 1.000
+ 6 1.00e-07 1.789e-07 3.578e-07 1.000
*********************************************************
<<<<<<<<<<<<<<<<<<<<<<<<< FAIL! >>>>>>>>>>>>>>>>>>>>>>>>>
*********************************************************
- Coffee break?
+ Thankfully, persistence is a great substitute for talent.
@@ -3515,33 +3882,33 @@ Test Results
- pt22.2: ==================== checkDerivative ====================
+ pt27.2: ==================== checkDerivative ====================
iter h |J0-Jt| |J0+h*dJ'*dx-Jt| Order
---------------------------------------------------------
- 0 1.00e-01 1.210e-01 1.399e-03 nan
- 1 1.00e-02 1.215e-02 1.279e-05 2.039
- 2 1.00e-03 1.216e-03 1.269e-07 2.003
- 3 1.00e-04 1.216e-04 1.268e-09 2.000
- 4 1.00e-05 1.216e-05 1.268e-11 2.000
- 5 1.00e-06 1.216e-06 1.267e-13 2.000
- 6 1.00e-07 1.216e-07 1.249e-15 2.006
+ 0 1.00e-01 2.507e-01 1.960e-02 nan
+ 1 1.00e-02 2.577e-02 1.872e-04 2.020
+ 2 1.00e-03 2.584e-03 1.863e-06 2.002
+ 3 1.00e-04 2.584e-04 1.862e-08 2.000
+ 4 1.00e-05 2.584e-05 1.862e-10 2.000
+ 5 1.00e-06 2.584e-06 1.862e-12 2.000
+ 6 1.00e-07 2.584e-07 1.859e-14 2.001
========================= PASS! =========================
- Well done Rowan!
+ The test be workin!
@@ -3552,33 +3919,33 @@ Test Results
- pt22.3: ==================== checkDerivative ====================
+ pt27.3: ==================== checkDerivative ====================
iter h |J0-Jt| |J0+h*dJ'*dx-Jt| Order
---------------------------------------------------------
- 0 1.00e-01 2.414e-01 4.527e-03 nan
- 1 1.00e-02 2.393e-02 5.089e-05 1.949
- 2 1.00e-03 2.390e-03 5.150e-07 1.995
- 3 1.00e-04 2.390e-04 5.156e-09 1.999
- 4 1.00e-05 2.390e-05 5.157e-11 2.000
- 5 1.00e-06 2.390e-06 5.157e-13 2.000
- 6 1.00e-07 2.390e-07 5.174e-15 1.999
+ 0 1.00e-01 6.038e-02 4.490e-04 nan
+ 1 1.00e-02 6.069e-03 4.327e-06 2.016
+ 2 1.00e-03 6.072e-04 4.311e-08 2.002
+ 3 1.00e-04 6.072e-05 4.310e-10 2.000
+ 4 1.00e-05 6.072e-06 4.309e-12 2.000
+ 5 1.00e-06 6.072e-07 4.307e-14 2.000
+ 6 1.00e-07 6.072e-08 4.903e-16 1.944
========================= PASS! =========================
- Go Test Go!
+ Not just a pretty face Rowan
@@ -3595,53 +3962,53 @@ Test Results
8
0
0
- Detail
+ Detail