From 1128fbe39b111c202307dbb76129a132e27f6c17 Mon Sep 17 00:00:00 2001 From: Dave Marchant Date: Sat, 15 Feb 2014 14:16:48 -0800 Subject: [PATCH] Added adjoint test for projection. --- simpegEM/Tests/test_forward_EMproblem.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/simpegEM/Tests/test_forward_EMproblem.py b/simpegEM/Tests/test_forward_EMproblem.py index 5ec65518..1f5750d8 100644 --- a/simpegEM/Tests/test_forward_EMproblem.py +++ b/simpegEM/Tests/test_forward_EMproblem.py @@ -234,6 +234,23 @@ class TDEM_bDerivTests(unittest.TestCase): self.assertTrue(passed) + def test_projectAdjoint(self): + prb = self.prb + dat = self.dat + mesh = self.mesh + + # Generate random fields and data + f = EM.TDEM.FieldsTDEM(prb.mesh, 1, prb.times.size, 'b') + for i in range(f.nTimes): + f.set_b(np.random.rand(mesh.nF, 1), i) + f.set_e(np.random.rand(mesh.nE, 1), i) + d = np.random.rand(dat.prob.nTimes, dat.nTx) + + # Check that d.T*Q*f = f.T*Q.T*d + V1 = d.T.dot(dat.projectFields(f)) + V2 = f.fieldVec().dot(dat.projectFieldsAdjoint(d).fieldVec()) + + self.assertTrue((V1-V2)/V1<1e-12) if __name__ == '__main__':