Skip to content

Commit d1cadf6

Browse files
authored
Merge pull request #616 from gridap/issue_614
Issue 614
2 parents a5d2ce3 + 0dc39c3 commit d1cadf6

File tree

3 files changed

+47
-7
lines changed

3 files changed

+47
-7
lines changed

src/Fields/ApplyOptimizations.jl

+11-7
Original file line numberDiff line numberDiff line change
@@ -349,13 +349,17 @@ function lazy_map(k::typeof(axes),a::MemoArray)
349349
end
350350

351351
function lazy_map(k::Reindex{<:MemoArray},::Type{T}, j_to_i::AbstractArray) where T
352-
key = (:reindex,objectid(j_to_i))
353-
if ! haskey(k.values.memo,key)
354-
i_to_v = k.values.parent
355-
j_to_v = lazy_map(Reindex(i_to_v),T,j_to_i)
356-
k.values.memo[key] = MemoArray(j_to_v)
357-
end
358-
k.values.memo[key]
352+
# Commenting in order to fix issue #614
353+
#key = (:reindex,objectid(j_to_i))
354+
#if ! haskey(k.values.memo,key)
355+
# i_to_v = k.values.parent
356+
# j_to_v = lazy_map(Reindex(i_to_v),T,j_to_i)
357+
# k.values.memo[key] = MemoArray(j_to_v)
358+
#end
359+
#k.values.memo[key]
360+
i_to_v = k.values.parent
361+
j_to_v = lazy_map(Reindex(i_to_v),T,j_to_i)
362+
MemoArray(j_to_v)
359363
end
360364

361365
function lazy_map(k::PosNegReindex{<:MemoArray,<:MemoArray},::Type{T},i_to_iposneg::AbstractArray) where T

test/GridapTests/issue_614.jl

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
module Issue614
2+
3+
using Gridap
4+
using Gridap.CellData
5+
6+
domain = (0,2,0,1)
7+
partition = (2,2)
8+
model = CartesianDiscreteModel(domain,partition)
9+
const k = 2
10+
reffeᵤ = ReferenceFE(lagrangian,VectorValue{2,Float64},k)
11+
reffe_p = ReferenceFE(lagrangian,Float64,k-1)
12+
V₀ = TestFESpace(model, reffeᵤ, conformity=:H1)
13+
U = TrialFESpace(V₀)
14+
Q = TestFESpace(model, reffe_p, conformity=:C0)
15+
P = TrialFESpace(Q)
16+
Y = MultiFieldFESpace([V₀,Q])
17+
X = MultiFieldFESpace([U,P])
18+
19+
Ω = Triangulation(model)
20+
21+
degree = 1
22+
xh = interpolate_everywhere([VectorValue(0.0,1.0),x->x[1]],X)
23+
24+
Γc = BoundaryTriangulation(model)
25+
dΓc = Measure(Γc, degree)
26+
nΓc = get_normal_vector(Γc)
27+
28+
for i in 0:1000
29+
uh, ph = xh
30+
α = ph*nΓc
31+
CD, CL = ( ( α )dΓc )
32+
end
33+
34+
end # module

test/GridapTests/runtests.jl

+2
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,6 @@ using Test
2828

2929
@time @testset "PoissonLagrangeMultiplier" begin include("PoissonLagrangeMultiplierTests.jl") end
3030

31+
@time @testset "Issue614" begin include("issue_614.jl") end
32+
3133
end # module

0 commit comments

Comments
 (0)