From 4b073e92fe419757dd03c8d21678f355d7a718de Mon Sep 17 00:00:00 2001 From: carlodev Date: Mon, 27 Jun 2022 13:45:53 +0200 Subject: [PATCH 1/4] Extent evaluate function for multiple fields --- src/CellData.jl | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/CellData.jl b/src/CellData.jl index d88933d6..aeadff4c 100644 --- a/src/CellData.jl +++ b/src/CellData.jl @@ -81,6 +81,22 @@ function Arrays.evaluate!( DistributedCellField(fields) end +function Arrays.evaluate!( + cache,k::Operation,a::DistributedCellField,b::DistributedCellField,c::DistributedCellField) + fields = map_parts(a.fields,b.fields,c.fields) do f,g,h + evaluate!(nothing,k,f,g,h) + end + DistributedCellField(fields) +end + +function Arrays.evaluate!( + cache,k::Operation,a::DistributedCellField,b::DistributedCellField,c::DistributedCellField,d::DistributedCellField) + fields = map_parts(a.fields,b.fields,c.fields,d.fields) do f,g,h,j + evaluate!(nothing,k,f,g,h,j) + end + DistributedCellField(fields) +end + function Arrays.evaluate!(cache,k::Operation,a::DistributedCellField,b::Number) fields = map_parts(a.fields) do f evaluate!(nothing,k,f,b) From b1cd61091e6d6312b24d9aa99e24a3383c676337 Mon Sep 17 00:00:00 2001 From: carlodev Date: Mon, 4 Jul 2022 08:49:47 +0200 Subject: [PATCH 2/4] add more cases case --- src/CellData.jl | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/CellData.jl b/src/CellData.jl index aeadff4c..a1ea5d6d 100644 --- a/src/CellData.jl +++ b/src/CellData.jl @@ -97,6 +97,25 @@ function Arrays.evaluate!( DistributedCellField(fields) end + +function Arrays.evaluate!( + cache,k::Operation,n1::Number, n2::Number, a::DistributedCellField,b::DistributedCellField,c::DistributedCellField) + fields = map_parts(a.fields,b.fields,c.fields) do f,g,h + evaluate!(nothing,k,f,g,h,n1,n2) + end + DistributedCellField(fields) +end + +function Arrays.evaluate!( + cache,k::Operation, n1::Number, n2::Number, a::DistributedCellField,b::DistributedCellField,c::DistributedCellField,d::DistributedCellField) + fields = map_parts(a.fields,b.fields,c.fields,d.fields) do f,g,h,j + evaluate!(nothing,k,f,g,h,j,n1,n2) + end + DistributedCellField(fields) +end + + + function Arrays.evaluate!(cache,k::Operation,a::DistributedCellField,b::Number) fields = map_parts(a.fields) do f evaluate!(nothing,k,f,b) From 7508d23da0b9b1f3f0c0c70e6b5b6bd7cfb74296 Mon Sep 17 00:00:00 2001 From: carlodev Date: Wed, 6 Jul 2022 08:11:40 +0200 Subject: [PATCH 3/4] export DistributedTriangulation --- src/GridapDistributed.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/GridapDistributed.jl b/src/GridapDistributed.jl index e72ea172..2444d2c0 100644 --- a/src/GridapDistributed.jl +++ b/src/GridapDistributed.jl @@ -32,7 +32,7 @@ export SubAssembledRows export get_cell_gids export get_face_gids - +export DistributedTriangulation include("Algebra.jl") include("Geometry.jl") From 0bc5069bfc3e952b35afb5c3951dc7b61402a508 Mon Sep 17 00:00:00 2001 From: carlodev Date: Tue, 12 Jul 2022 11:35:56 +0200 Subject: [PATCH 4/4] add CellData function --- src/CellData.jl | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/CellData.jl b/src/CellData.jl index a1ea5d6d..6c1180e6 100644 --- a/src/CellData.jl +++ b/src/CellData.jl @@ -355,3 +355,14 @@ end CellData.jump(a::DistributedCellField) = DistributedCellField(map_parts(jump,a.fields)) CellData.jump(a::SkeletonPair{<:DistributedCellField}) = a.⁺ + a.⁻ CellData.mean(a::DistributedCellField) = DistributedCellField(map_parts(mean,a.fields)) + + +#Custom Operation +function get_node_model(a::GridapDistributed.DistributedDiscreteModel) + DistributedCellPoint(map_parts(get_node_model,a.models)) +end + +function get_node_model(model) + node_model = Gridap.ReferenceFEs.get_node_coordinates(model) + return node_model +end