Skip to content

Commit

Permalink
annotate FunctionMixin methods _ad_mul and _ad_add (#3841)
Browse files Browse the repository at this point in the history
* annotate FunctionMixin _ad_mul and _ad_add

* FunctionMixin _ad_mul and _ad_add use Function operations not Vector operations
  • Loading branch information
JHopeCollins authored Oct 29, 2024
1 parent fefed5e commit 76d44cf
Showing 1 changed file with 4 additions and 10 deletions.
14 changes: 4 additions & 10 deletions firedrake/adjoint_utils/function.py
Original file line number Diff line number Diff line change
Expand Up @@ -300,7 +300,6 @@ def _ad_will_add_as_dependency(self):
with checkpoint_init_data():
super()._ad_will_add_as_dependency()

@no_annotations
def _ad_mul(self, other):
from firedrake import Function

Expand All @@ -309,7 +308,6 @@ def _ad_mul(self, other):
r.assign(other * self)
return r

@no_annotations
def _ad_add(self, other):
from firedrake import Function

Expand Down Expand Up @@ -363,16 +361,12 @@ def _ad_dim(self):
return self.function_space().dim()

def _ad_imul(self, other):
vec = self.vector()
vec *= other
self *= other
return self

def _ad_iadd(self, other):
vec = self.vector()
ovec = other.vector()
if ovec.dat == vec.dat:
vec *= 2
else:
vec += ovec
self += other
return self

def _ad_function_space(self, mesh):
return self.ufl_function_space()
Expand Down

0 comments on commit 76d44cf

Please sign in to comment.