@@ -1889,10 +1889,10 @@ function psparse_consistent_impl(A::PSparseMatrix{V,B,C,D,Tv} where {V,B,C,D},
1889
1889
# global_to_ghost_col = global_to_ghost(cols_co)
1890
1890
is_own_condition = k -> global_to_own_col[k]!= 0
1891
1891
is_own = is_own_condition .(J_rcv_data)
1892
+ is_ghost = map (! ,is_own) # inverse is_own bitvector to effectively represent is_ghost mask
1892
1893
I_rcv_own = I_rcv_data[is_own]
1893
1894
J_rcv_own = J_rcv_data[is_own]
1894
1895
V_rcv_own = V_rcv_data[is_own]
1895
- is_ghost = map! (! ,is_own, is_own) # inverse is_own bitvector to effectively represent is_ghost mask
1896
1896
I_rcv_ghost = I_rcv_data[is_ghost]
1897
1897
J_rcv_ghost = J_rcv_data[is_ghost]
1898
1898
V_rcv_ghost = V_rcv_data[is_ghost]
@@ -1921,7 +1921,7 @@ function psparse_consistent_impl(A::PSparseMatrix{V,B,C,D,Tv} where {V,B,C,D},
1921
1921
V_rcv = cache_rcv. V_rcv
1922
1922
parts_snd = cache_snd. parts_snd
1923
1923
parts_rcv = cache_rcv. parts_rcv
1924
- cache = (;parts_snd,parts_rcv,k_snd,V_snd,V_rcv,V_rcv_own,V_rcv_ghost,K_own,K_ghost)
1924
+ cache = (;parts_snd,parts_rcv,k_snd,V_snd,V_rcv,is_own,is_ghost, V_rcv_own,V_rcv_ghost,K_own,K_ghost)
1925
1925
values,cache
1926
1926
end
1927
1927
@@ -1962,6 +1962,7 @@ function psparse_consistent_impl(A::PSparseMatrix{V,B,C,D,Tv} where {V,B,C,D},
1962
1962
end
1963
1963
_psparse_consistent_impl (A,T,rows_co;reuse)
1964
1964
end
1965
+
1965
1966
# End new consistent
1966
1967
# ###################
1967
1968
@@ -1982,10 +1983,14 @@ function psparse_consistent_impl!(B,A,::Type{<:AbstractSplitMatrix},cache)
1982
1983
end
1983
1984
end
1984
1985
function setup_rcv (B,cache)
1986
+ is_own = cache. is_own
1987
+ is_ghost = cache. is_ghost
1988
+ V_rcv_data = cache. V_rcv. data
1985
1989
K_own = cache. K_own
1986
1990
K_ghost = cache. K_ghost
1987
- V_rcv_own = cache. V_rcv_own
1988
- V_rcv_ghost = cache. V_rcv_ghost
1991
+ # Allocates memory, while cache.V_rcv_own/ghost could be reused.
1992
+ V_rcv_own = V_rcv_data[is_own]
1993
+ V_rcv_ghost = V_rcv_data[is_ghost]
1989
1994
setcoofast! (B. blocks. ghost_own,V_rcv_own,K_own)
1990
1995
setcoofast! (B. blocks. ghost_ghost,V_rcv_ghost,K_ghost)
1991
1996
B
0 commit comments