diff --git a/Energy_GeneratedImage.py b/Energy_GeneratedImage.py index d22e75058906ad08963f1eaac8cc7e426f42f2c4..de900ef348ce9b52dc726f77e58e756cf4ee9813 100644 --- a/Energy_GeneratedImage.py +++ b/Energy_GeneratedImage.py @@ -144,10 +144,19 @@ class WarpedImageEnergy(Energy): element=self.fe) self.Phi_Iref.init_image(self.ref_image_filename) + # Phi_def + self.Phi_Idef = dolfin.Expression( + cppcode=ddic.get_ExprCharFuncIm_cpp( + im_dim=self.image_series.dimension, + im_is_def=1), + element=self.fe) + self.Phi_Idef.init_image(self.ref_image_filename) + self.Phi_Idef.init_disp(self.problem.U) + # Psi_c - self.Psi_c = self.Phi_Iref * (self.Igen - self.Idef)**2/2 - self.DPsi_c = self.Phi_Iref * (self.Igen - self.Idef) * dolfin.dot(self.DIgen - self.DIdef, self.problem.dU_test) - self.DDPsi_c = self.Phi_Iref * dolfin.dot(self.DIgen - self.DIdef, self.problem.dU_trial) * dolfin.dot(self.DIgen - self.DIdef, self.problem.dU_test) + self.Psi_c = self.Phi_Idef * self.Phi_Iref * (self.Igen - self.Idef)**2/2 + self.DPsi_c = self.Phi_Idef * self.Phi_Iref * (self.Igen - self.Idef) * dolfin.dot(self.DIgen - self.DIdef, self.problem.dU_test) + self.DDPsi_c = self.Phi_Idef * self.Phi_Iref * dolfin.dot(self.DIgen - self.DIdef, self.problem.dU_trial) * dolfin.dot(self.DIgen - self.DIdef, self.problem.dU_test) # forms self.ener_form = self.Psi_c * self.dV @@ -165,7 +174,7 @@ class WarpedImageEnergy(Energy): def call_before_assembly(self): - + self.Igen.generate_image() self.DIgen.generate_image()