diff --git a/NEWS.md b/NEWS.md index de1701d..7b2810b 100644 --- a/NEWS.md +++ b/NEWS.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.3.3] - 2023-11-22 + +### Added + +- Added missing methods for `DistributedTransientFESpace`s. Since [PR 135](https://github.com/gridap/GridapDistributed.jl/pull/135). + ## [0.3.2] - 2023-11-01 ### Added diff --git a/Project.toml b/Project.toml index a0335d8..57f9a3b 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ name = "GridapDistributed" uuid = "f9701e48-63b3-45aa-9a63-9bc6c271f355" authors = ["S. Badia ", "A. F. Martin ", "F. Verdugo "] -version = "0.3.2" +version = "0.3.3" [deps] BlockArrays = "8e7c35d0-a365-5155-bbbb-fb81a777f24e" diff --git a/src/FESpaces.jl b/src/FESpaces.jl index 21aedf4..cd922dd 100644 --- a/src/FESpaces.jl +++ b/src/FESpaces.jl @@ -293,6 +293,17 @@ function FESpaces.get_free_dof_ids(fs::DistributedSingleFieldFESpace) fs.gids end +function FESpaces.get_dof_value_type(cell_shapefuns::DistributedCellField,cell_dof_basis::DistributedCellDof) + vt = map(local_views(cell_shapefuns),local_views(cell_dof_basis)) do cell_shapefuns, cell_dof_basis + FESpaces.get_dof_value_type(cell_shapefuns,cell_dof_basis) + end + return PartitionedArrays.getany(vt) +end + +function FESpaces.ConstraintStyle(::Type{<:DistributedSingleFieldFESpace{A}}) where A + return FESpaces.ConstraintStyle(eltype(A)) +end + function FESpaces.get_dirichlet_dof_values(U::DistributedSingleFieldFESpace) map(get_dirichlet_dof_values,U.spaces) end diff --git a/src/TransientDistributedCellField.jl b/src/TransientDistributedCellField.jl index 9f0d3ef..8934f40 100644 --- a/src/TransientDistributedCellField.jl +++ b/src/TransientDistributedCellField.jl @@ -70,6 +70,12 @@ outer(::typeof(∇),f::TransientDistributedCellField) = outer(∇,f.cellfield) outer(f::TransientDistributedCellField,::typeof(∇)) = outer(f.cellfield,∇) cross(::typeof(∇),f::TransientDistributedCellField) = cross(∇,f.cellfield) +Gridap.Arrays.evaluate!(cache,k::Operation,a::TransientDistributedCellField,b::DistributedCellField) = evaluate!(cache,k,a.cellfield,b) +Gridap.Arrays.evaluate!(cache,k::Operation,a::DistributedCellField,b::TransientDistributedCellField) = evaluate!(cache,k,a,b.cellfield) + +Base.:(∘)(f::Function,g::Tuple{TransientDistributedCellField,DistributedCellField}) = Operation(f)(g[1],g[2]) +Base.:(∘)(f::Function,g::Tuple{DistributedCellField,TransientDistributedCellField}) = Operation(f)(g[1],g[2]) + # Skeleton related function Base.getproperty(f::TransientDistributedCellField, sym::Symbol) if sym in (:⁺,:plus,:⁻, :minus)