Skip to content

Commit a7f22f5

Browse files
committed
Added binary operations between Function and FEFunction
1 parent 1fd6b74 commit a7f22f5

File tree

2 files changed

+21
-0
lines changed

2 files changed

+21
-0
lines changed

src/FESpaces/FEFunctions.jl

+15
Original file line numberDiff line numberDiff line change
@@ -100,16 +100,31 @@ end
100100

101101
for op in (:+, :-, :*)
102102
@eval begin
103+
103104
function ($op)(a::FEFunction,b::CellField)
104105
trian = Triangulation(a)
105106
g = $op(a.cellfield,b)
106107
_attach_triangulation(g,trian)
107108
end
109+
108110
function ($op)(a::CellField,b::FEFunction)
109111
trian = Triangulation(b)
110112
g = $op(a,b.cellfield)
111113
_attach_triangulation(g,trian)
112114
end
115+
116+
function ($op)(a::FEFunction,b::Function)
117+
trian = Triangulation(a)
118+
cf = CellField(trian,b)
119+
$op(a,cf)
120+
end
121+
122+
function ($op)(a::Function,b::FEFunction)
123+
trian = Triangulation(b)
124+
cf = CellField(trian,a)
125+
$op(cf,b)
126+
end
127+
113128
end
114129
end
115130

test/FESpacesTests/FEFunctionsTests.jl

+6
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,12 @@ u = CellField(trian,ufun)
5151
e = u - uh
5252
@test isa(e,IndexCellFieldWithTriangulation)
5353

54+
e = ufun - uh
55+
@test isa(e,IndexCellFieldWithTriangulation)
56+
57+
e = uh - ufun
58+
@test isa(e,IndexCellFieldWithTriangulation)
59+
5460
T = VectorValue{2,Float64}
5561
fespace = ConformingFESpace(T,model,order,diritag)
5662
ufun(x) = VectorValue(x[2],x[1])

0 commit comments

Comments
 (0)