add a projection map (for re-arranging models)

use current sigmaModel in src
This commit is contained in:
Lindsey Heagy
2016-05-31 22:44:39 -07:00
parent 1e6ed86135
commit ce88c676d4
2 changed files with 35 additions and 4 deletions
+4 -4
View File
@@ -719,7 +719,7 @@ class PrimSecMappedSigma(BaseSrc):
def _primaryFields(self, prob):
# TODO: cache and check if prob.curModel has changed
return self.primaryProblem.fields(prob.curModel)
return self.primaryProblem.fields(prob.curModel.sigmaModel)
def _primaryFieldsDeriv(self, prob, v, adjoint=False):
if adjoint:
@@ -774,7 +774,7 @@ class PrimSecMappedSigma(BaseSrc):
def s_e(self, prob):
sigmaPrimary = self.map2meshs * prob.curModel
sigmaPrimary = self.map2meshs * prob.curModel.sigmaModel
return (prob.MeSigma - prob.mesh.getEdgeInnerProduct(sigmaPrimary)) * self.ePrimary(prob)
@@ -783,8 +783,8 @@ class PrimSecMappedSigma(BaseSrc):
raise NotImplementedError
return prob.MeSigmaDeriv(self.ePrimary(prob)).T * v
sigmaPrimary = self.map2meshs * prob.curModel
sigmaPrimaryDeriv = self.map2meshs.deriv(prob.curModel)
sigmaPrimary = self.map2meshs * prob.curModel.sigmaModel
sigmaPrimaryDeriv = self.map2meshs.deriv(prob.curModel.sigmaModel)
return (prob.MeSigmaDeriv(self.ePrimary(prob)) * v
- prob.mesh.getEdgeInnerProductDeriv(sigmaPrimary)(self.ePrimary(prob)) * sigmaPrimaryDeriv * v
+ (prob.MeSigma - prob.mesh.getEdgeInnerProduct(sigmaPrimary)) * self.ePrimaryDeriv(prob, v)