Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Fixed `local_views(::BlockPMatrix, rows, cols)` indexing 1D block-range vectors with a 2D `CartesianIndex`, causing `BoundsError` for any multi-field problem with ≥2 fields. Since PR[#194](https://github.com/gridap/GridapDistributed.jl/pull/194/).
- Fixed `mul!(y::BlockPVector, A::BlockPMatrix, x::BlockPVector, α, β)` computing `α*β*(A*x)` instead of `α*(A*x) + β*y`; the 3-arg `mul!` was also updated to correctly zero `y` before accumulating. Since PR[#194](https://github.com/gridap/GridapDistributed.jl/pull/194/).
- Replaced fragile closure side-effect in `DistributedVisualizationData.filebase` with `getany(map(...))` for correct and idiomatic behaviour in both debug and MPI modes. Since PR[#195](https://github.com/gridap/GridapDistributed.jl/pull/195/).
- Changes required to generalize Nedelec Hexahedral elements for meshes beyond Cartesian Meshes. Since PR[#198](https://github.com/gridap/GridapDistributed.jl/pull/198/).

## [0.4.11] - 2026-02-20

Expand Down
2 changes: 1 addition & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ BlockArrays = "1"
CircularArrays = "1.4.0"
FillArrays = "1"
ForwardDiff = "0.10, 1"
Gridap = "0.19.8"
Gridap = "0.19.9"
LinearAlgebra = "1"
MPI = "0.16, 0.17, 0.18, 0.19, 0.20"
PartitionedArrays = "0.3.3"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
const RTorNedelec = Union{RaviartThomas,Nedelec}

function FESpaces.FESpace(model::DistributedDiscreteModel,
reffe::Tuple{RaviartThomas,Any,Any};
reffe::Tuple{<:RTorNedelec,Any,Any};
conformity=nothing,
split_own_and_ghost=false,
constraint=nothing,
Expand All @@ -13,7 +15,7 @@ function FESpaces.FESpace(model::DistributedDiscreteModel,
end

function FESpaces.FESpace(model::DistributedDiscreteModel,
reffe::GenericRefFE{RaviartThomas};
reffe::GenericRefFE{<:RTorNedelec};
conformity=nothing,
split_own_and_ghost=false,
constraint=nothing,
Expand All @@ -34,7 +36,7 @@ end

function FESpaces.FESpace(
_trian::DistributedTriangulation,
reffe::Tuple{RaviartThomas,Any,Any};
reffe::Tuple{<:RTorNedelec,Any,Any};
conformity=nothing,
split_own_and_ghost=false,
constraint=nothing,kwargs...
Expand All @@ -48,7 +50,7 @@ function FESpaces.FESpace(
end

function FESpaces.FESpace(_trian::DistributedTriangulation,
reffe::GenericRefFE{RaviartThomas};
reffe::GenericRefFE{<:RTorNedelec};
conformity=nothing,
split_own_and_ghost=false,
constraint=nothing,
Expand Down
2 changes: 1 addition & 1 deletion src/GridapDistributed.jl
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ include("Visualization.jl")

include("FESpaces.jl")

include("DivConformingFESpaces.jl")
include("DivAndCurlConformingFESpaces.jl")

include("MultiField.jl")

Expand Down
14 changes: 12 additions & 2 deletions test/DivConformingTests.jl → test/DivAndCurlConformingTests.jl
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
module DivConformingTests
module DivAndCurlConformingTests
using SparseMatricesCSR
import Gridap: ∇, divergence, DIV
using Gridap
Expand Down Expand Up @@ -60,7 +60,7 @@ function setup_p2_model()
end

function f(model,reffe,trian,das)
V = FESpace(model,reffe,conformity=:Hdiv)
V = FESpace(model,reffe)
U = TrialFESpace(V)

degree = 2
Expand Down Expand Up @@ -133,6 +133,16 @@ function main(distribute,nranks)
f(model,reffe,trian,das)
f(trian,reffe,trian,das)
f(Triangulation(model),reffe,trian,das)

reffe=ReferenceFE(nedelec,Float64,0)
f(model,reffe,trian,das)
f(trian,reffe,trian,das)
f(Triangulation(model),reffe,trian,das)

reffe=ReferenceFE(QUAD, nedelec, 0)
f(model,reffe,trian,das)
f(trian,reffe,trian,das)
f(Triangulation(model),reffe,trian,das)
end

end # module
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
module DivConformingTestsSeq
using PartitionedArrays
include("../DivConformingTests.jl")
include("../DivAndCurlConformingTests.jl")

with_debug() do distribute
DivConformingTests.main(distribute,2)
DivAndCurlConformingTests.main(distribute,2)
end

end # module
12 changes: 6 additions & 6 deletions test/sequential/runtests.jl
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ if TESTCASE ∈ ("all", "seq-fespaces")
end

if TESTCASE ∈ ("all", "seq-physics")
@time @testset "Poisson" begin include("PoissonTests.jl") end
@time @testset "PLaplacian" begin include("PLaplacianTests.jl") end
@time @testset "DivConformingTests" begin include("DivConformingTests.jl") end
@time @testset "SurfaceCouplingTests" begin include("SurfaceCouplingTests.jl") end
@time @testset "StokesHdivDGTests" begin include("StokesHdivDGTests.jl") end
@time @testset "StokesOpenBoundary" begin include("StokesOpenBoundaryTests.jl") end
@time @testset "Poisson" begin include("PoissonTests.jl") end
@time @testset "PLaplacian" begin include("PLaplacianTests.jl") end
@time @testset "DivAndCurlConformingTests" begin include("DivAndCurlConformingTests.jl") end
@time @testset "SurfaceCouplingTests" begin include("SurfaceCouplingTests.jl") end
@time @testset "StokesHdivDGTests" begin include("StokesHdivDGTests.jl") end
@time @testset "StokesOpenBoundary" begin include("StokesOpenBoundaryTests.jl") end
end

if TESTCASE ∈ ("all", "seq-transient")
Expand Down
Loading