play with fwd

This commit is contained in:
seogi_macbook
2015-11-26 15:06:22 -08:00
parent fc0a413b3c
commit 898215222a
7 changed files with 2105 additions and 534 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+201 -27
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+16 -14
View File
@@ -15,29 +15,31 @@ class FieldsDC_CC(Problem.Fields):
def startup(self):
self._cellGrad = self.survey.prob.mesh.cellGrad
self._Mfinv = self.survey.prob.mesh.getFaceInnerProduct(invMat=True)
def _phi(self, phi_sol, srcList):
phi = phi_sol
for i, src in enumerate(srcList):
phi_p = src.phi_p(self.survey.prob)
if phi_p is not None:
phi[:,i] += phi_p
# for i, src in enumerate(srcList):
# phi_p = src.phi_p(self.survey.prob)
# if phi_p is not None:
# phi[:,i] += phi_p
return phi
def _e(self, phi_sol, srcList):
e = -self._cellGrad*phi_sol
for i, src in enumerate(srcList):
e_p = src.e_p(self.survey.prob)
if e_p is not None:
e[:,i] += e_p
# for i, src in enumerate(srcList):
# e_p = src.e_p(self.survey.prob)
# if e_p is not None:
# e[:,i] += e_p
return e
def _j(self, phi_sol, srcList):
j = -self.survey.prob.Msig*self._cellGrad*phi_sol
for i, src in enumerate(srcList):
j_p = src.j_p(self.survey.prob)
if j_p is not None:
j[:,i] += j_p
j = -self._Mfinv*self.survey.prob.Msig*self._cellGrad*phi_sol
# for i, src in enumerate(srcList):
# j_p = src.j_p(self.survey.prob)
# if j_p is not None:
# j[:,i] += j_p
return j
@@ -176,7 +178,7 @@ class ProblemDC_CC(Problem.BaseProblem):
G = self.mesh.cellGrad
self._A = D*self.Msig*G
# Remove the null space from the matrix.
self._A[-1,-1] /= self.mesh.vol[-1]
self._A[0,0] /= self.mesh.vol[0]
self._A = self._A.tocsc()
return self._A