def ePrimary(self, problem): # Get primary fields for both polarizations if self.sigma1d is None: # Set the sigma1d as the 1st column in the background model if len(problem._sigmaPrimary) == problem.mesh.nC: if problem.mesh.dim == 1: self.sigma1d = problem.mesh.r(problem._sigmaPrimary, "CC", "CC", "M")[:] elif problem.mesh.dim == 3: self.sigma1d = problem.mesh.r(problem._sigmaPrimary, "CC", "CC", "M")[0, 0, :] # Or as the 1D model that matches the vertical cell number elif len(problem._sigmaPrimary) == problem.mesh.nCz: self.sigma1d = problem._sigmaPrimary if self._ePrimary is None: self._ePrimary = homo1DModelSource(problem.mesh, self.freq, self.sigma1d) return self._ePrimary
def ePrimary(self,problem): # Get primary fields for both polarizations if self.sigma1d is None: # Set the sigma1d as the 1st column in the background model if len(problem._sigmaPrimary) == problem.mesh.nC: if problem.mesh.dim == 1: self.sigma1d = problem.mesh.r(problem._sigmaPrimary,'CC','CC','M')[:] elif problem.mesh.dim == 3: self.sigma1d = problem.mesh.r(problem._sigmaPrimary,'CC','CC','M')[0,0,:] # Or as the 1D model that matches the vertical cell number elif len(problem._sigmaPrimary) == problem.mesh.nCz: self.sigma1d = problem._sigmaPrimary if self._ePrimary is None: self._ePrimary = homo1DModelSource(problem.mesh,self.freq,self.sigma1d) return self._ePrimary
def getRHS(self, freq, backSigma): """ Function to return the right hand side for the system. :param float freq: Frequency :param numpy.ndarray (nC,) backSigma: Background conductivity model :rtype: numpy.ndarray (nE, 2) :return: one RHS for both polarizations """ # Get sources for the frequency src = self.survey.getSources(freq) # Make sure that there is 2 polarizations. # assert len() # Get the background electric fields from simpegMT.Sources import homo1DModelSource eBG_bp = homo1DModelSource(self.mesh, freq, backSigma) MeBack = self.MeSigmaBack # Set up the A system mui = self.MfMui C = self.mesh.edgeCurl Abg = C.T * mui * C + 1j * omega(freq) * MeBack return Abg * eBG_bp, eBG_bp