Пример #1
0
 def costfct(self, uin, udin):
     """Compute cost functional from observed fwd and data, i.e.,
     return .5*||uin - udin||^2.
     uin & udin are np.arrays"""
     arearrays(uin, udin)
     diff = uin - udin
     return 0.5*np.dot(diff, diff)
Пример #2
0
 def assemble_rhsadj(self, uin, udin, outp, bc):
     """Compute rhs term for adjoint equation and store it in outp, i.e.,
     outp = - B^T( uin - udin), where uin = obs(fwd solution)
     uin & udin = np.arrays
     outp = Function(self.V)
     bc = fenics' boundary conditons"""
     arearrays(uin, udin)
     isFunction(outp)
     diff = uin - udin
     outp.vector()[:] = -1.0 * self.BTdot(diff)
     bc.apply(outp.vector())
Пример #3
0
 def assemble_rhsadj(self, uin, udin, outp, bc):
     arearrays(uin, udin)
     isFunction(outp)
     self.diffv[:] = uin - udin
     outp.vector()[:] = - (self.W * self.diffv).array()
     bc.apply(outp.vector())
Пример #4
0
 def costfct(self, uin, udin):
     arearrays(uin, udin)
     self.diffv[:] = uin - udin
     return 0.5 * (self.W*self.diffv).inner(self.diffv)