mirror of
https://github.com/wassname/simpeg.git
synced 2026-09-10 12:37:30 +08:00
@@ -37,12 +37,20 @@ def SolverWrapD(fun, factorize=True, checkAccuracy=True, accuracyTol=1e-6):
|
||||
if len(b.shape) == 1 or b.shape[1] == 1:
|
||||
b = b.flatten()
|
||||
# Just one RHS
|
||||
|
||||
if b.dtype is np.dtype('O'):
|
||||
b = b.astype(type(b[0]))
|
||||
|
||||
if factorize:
|
||||
X = self.solver.solve(b, **self.kwargs)
|
||||
else:
|
||||
X = fun(self.A, b, **self.kwargs)
|
||||
else: # Multiple RHSs
|
||||
if b.dtype is np.dtype('O'):
|
||||
b = b.astype(type(b[0,0]))
|
||||
|
||||
X = np.empty_like(b)
|
||||
|
||||
for i in range(b.shape[1]):
|
||||
if factorize:
|
||||
X[:,i] = self.solver.solve(b[:,i])
|
||||
|
||||
@@ -399,8 +399,10 @@ def diagEst(matFun, n, k=None, approach='Probing'):
|
||||
class Zero(object):
|
||||
def __add__(self, v):return v
|
||||
def __radd__(self, v):return v
|
||||
def __iadd__(self, v):return v
|
||||
def __sub__(self, v):return -v
|
||||
def __rsub__(self, v):return v
|
||||
def __isub__(self, v):return v
|
||||
def __mul__(self, v):return self
|
||||
def __rmul__(self, v):return self
|
||||
def __div__(self, v): return self
|
||||
|
||||
Reference in New Issue
Block a user