diff --git a/src/core_types.jl b/src/core_types.jl index 31bf687..286306c 100644 --- a/src/core_types.jl +++ b/src/core_types.jl @@ -5,11 +5,12 @@ const Node = Vector{Float64} abstract type AbstractPoint end -mutable struct Point{P<:AbstractPoint} - id::UInt # Changed from Int to match Gmsh (Issue #267) +# Immutable Point - Dict is a reference type so this is safe +struct Point{P<:AbstractPoint} + id::UInt weight::Float64 coords::Tuple{Vararg{Float64}} - fields::Dict{String,AbstractField} + fields::Dict{String,AbstractField} # Reference type, can still be modified properties::P end diff --git a/src/elements/elements.jl b/src/elements/elements.jl index e49dd8a..e29a5e4 100644 --- a/src/elements/elements.jl +++ b/src/elements/elements.jl @@ -513,7 +513,7 @@ this returns a new instance with updated integration points. """ function with_integration_points(element::Element{N,NIP,M,B}, ips::NTuple{NNEW,IP}) where {N,NIP,M,B,NNEW} return Element{N,NNEW,M,B}(element.id, element.connectivity, ips, - element.dfields, element.sfields, element.properties) + element.dfields, element.sfields, element.properties) end """ Find inverse isoparametric mapping of element. """