comparison src/Grids/mapped_grid.jl @ 1743:49bd573ab07f feature/grids/curvilinear

Implement checking of sizes for inputs to MappedGrid
author Jonatan Werpers <jonatan@werpers.com>
date Wed, 11 Sep 2024 13:46:33 +0200
parents 248304f88e49
children c38eead8be17
comparison
equal deleted inserted replaced
1742:c9c601678a14 1743:49bd573ab07f
1 struct MappedGrid{T,D, GT<:Grid{<:Any,D}, CT<:AbstractArray{T,D}, JT<:AbstractArray{<:AbstractArray{<:Any, 2}, D}} <: Grid{T,D} 1 struct MappedGrid{T,D, GT<:Grid{<:Any,D}, CT<:AbstractArray{T,D}, JT<:AbstractArray{<:AbstractArray{<:Any, 2}, D}} <: Grid{T,D}
2 logicalgrid::GT 2 logicalgrid::GT
3 physicalcoordinates::CT 3 physicalcoordinates::CT
4 jacobian::JT 4 jacobian::JT
5
6 function MappedGrid(logicalgrid::GT, physicalcoordinates::CT, jacobian::JT) where {T,D, GT<:Grid{<:Any,D}, CT<:AbstractArray{T,D}, JT<:AbstractArray{<:AbstractArray{<:Any, 2}, D}}
7 if !(size(logicalgrid) == size(physicalcoordinates) == size(jacobian))
8 throw(ArgumentError("Sizes must match"))
9 end
10
11 return new{T,D,GT,CT,JT}(logicalgrid, physicalcoordinates, jacobian)
12 end
5 end 13 end
6 14
7 function Base.:(==)(a::MappedGrid, b::MappedGrid) 15 function Base.:(==)(a::MappedGrid, b::MappedGrid)
8 same_logicalgrid = logicalgrid(a) == logicalgrid(b) 16 same_logicalgrid = logicalgrid(a) == logicalgrid(b)
9 same_coordinates = collect(a) == collect(b) 17 same_coordinates = collect(a) == collect(b)