Mercurial > repos > public > sbplib_julia
comparison src/SbpOperators/volumeops/laplace/laplace.jl @ 751:f94feb005e7d feature/laplace_opset
Change from Dict to StaticDict in Laplace
author | Vidar Stiernström <vidar.stiernstrom@it.uu.se> |
---|---|
date | Fri, 19 Mar 2021 16:56:58 +0100 |
parents | c16abc564b82 |
children | fc83d672be36 |
comparison
equal
deleted
inserted
replaced
750:f88b2117dc69 | 751:f94feb005e7d |
---|---|
16 TMbqop<:TensorMapping{T,Rb,Rb}, # Boundary quadrature | 16 TMbqop<:TensorMapping{T,Rb,Rb}, # Boundary quadrature |
17 BID<:BoundaryIdentifier} <: TensorMapping{T,Dim,Dim} | 17 BID<:BoundaryIdentifier} <: TensorMapping{T,Dim,Dim} |
18 D::TMdiffop # Differential operator | 18 D::TMdiffop # Differential operator |
19 H::TMipop # Inner product operator | 19 H::TMipop # Inner product operator |
20 H_inv::TMipop # Inverse inner product operator | 20 H_inv::TMipop # Inverse inner product operator |
21 e::Dict{BID,TMbop} # Boundary restriction operators | 21 e::StaticDict{BID,TMbop} # Boundary restriction operators |
22 d::Dict{BID,TMbop} # Normal derivative operators | 22 d::StaticDict{BID,TMbop} # Normal derivative operators |
23 H_boundary::Dict{BID,TMbqop} # Boundary quadrature operators | 23 H_boundary::StaticDict{BID,TMbqop} # Boundary quadrature operators |
24 end | 24 end |
25 export Laplace | 25 export Laplace |
26 | 26 |
27 function Laplace(grid::AbstractGrid, fn; order) | 27 function Laplace(grid::AbstractGrid, fn; order) |
28 # TODO: Removed once we can construct the volume and | 28 # TODO: Removed once we can construct the volume and |
45 n_ids = length(ids) | 45 n_ids = length(ids) |
46 e_pairs = ntuple(i -> Pair(ids[i],boundary_restriction(grid,e_closure_stencil,ids[i])),n_ids) | 46 e_pairs = ntuple(i -> Pair(ids[i],boundary_restriction(grid,e_closure_stencil,ids[i])),n_ids) |
47 d_pairs = ntuple(i -> Pair(ids[i],normal_derivative(grid,d_closure_stencil,ids[i])),n_ids) | 47 d_pairs = ntuple(i -> Pair(ids[i],normal_derivative(grid,d_closure_stencil,ids[i])),n_ids) |
48 Hᵧ_pairs = ntuple(i -> Pair(ids[i],inner_product(boundary_grid(grid,ids[i]),H_closure_stencils)),n_ids) | 48 Hᵧ_pairs = ntuple(i -> Pair(ids[i],inner_product(boundary_grid(grid,ids[i]),H_closure_stencils)),n_ids) |
49 | 49 |
50 return Laplace(Δ, H, H⁻¹, Dict(e_pairs), Dict(d_pairs), Dict(Hᵧ_pairs)) | 50 return Laplace(Δ, H, H⁻¹, StaticDict(e_pairs), StaticDict(d_pairs), StaticDict(Hᵧ_pairs)) |
51 end | 51 end |
52 | 52 |
53 LazyTensors.range_size(L::Laplace) = LazyTensors.range_size(L.D) | 53 LazyTensors.range_size(L::Laplace) = LazyTensors.range_size(L.D) |
54 LazyTensors.domain_size(L::Laplace) = LazyTensors.domain_size(L.D) | 54 LazyTensors.domain_size(L::Laplace) = LazyTensors.domain_size(L.D) |
55 LazyTensors.apply(L::Laplace, v::AbstractArray, I...) = LazyTensors.apply(L.D,v,I...) | 55 LazyTensors.apply(L::Laplace, v::AbstractArray, I...) = LazyTensors.apply(L.D,v,I...) |