From b1f41c14a50aeb979c3e460df40829a49a679a60 Mon Sep 17 00:00:00 2001 From: Rowan Cockett Date: Fri, 19 Jul 2013 15:51:53 -0700 Subject: [PATCH] Mass Matrices. Merged eldad's code. --- SimPEG/DiffOperators.py | 31 +++++++++++++------------------ 1 file changed, 13 insertions(+), 18 deletions(-) diff --git a/SimPEG/DiffOperators.py b/SimPEG/DiffOperators.py index 7c194e76..bec2492e 100644 --- a/SimPEG/DiffOperators.py +++ b/SimPEG/DiffOperators.py @@ -1,6 +1,7 @@ import numpy as np from scipy import sparse as sp from sputils import sdiag, speye, kron3, spzeros +from utils import mkvc def ddx(n): @@ -240,22 +241,16 @@ class DiffOperators(object): _edgeAve = None edgeAve = property(**edgeAve()) + def getEdgeMass(self, materialProp=None): + """mass matix for products of edge functions w'*M(materialProp)*e""" + if(materialProp is None): + materialProp = np.ones(self.nC) + Av = self.edgeAve + return sdiag(Av.T * (self.vol * mkvc(materialProp))) - -def getEdgeMassMatrix(h,sigma): - # mass matix for products of edge functions w'*M(sigma)*e - - Av = getEdgeToCellAverge(h) - v = getVol(h) - sigma = mkvc(sigma) - - return sdiag(Av.T*(v*sigma)) - -def getFaceMassMatrix(h,sigma): - # mass matix for products of edge functions w'*M(sigma)*e - - Av = getFaceToCellAverge(h) - v = getVol(h) - sigma = mkvc(sigma) - - return sdiag(Av.T*(v*sigma)) + def getFaceMass(self, materialProp=None): + """mass matix for products of edge functions w'*M(materialProp)*e""" + if(materialProp is None): + materialProp = np.ones(self.nC) + Av = self.faceAve + return sdiag(Av.T*(self.vol*mkvc(materialProp)))