comparison DiffOps/src/laplace.jl @ 252:9405c19b76bc boundary_conditions

Move boundary_value and similar methods of laplce
author Jonatan Werpers <jonatan@werpers.com>
date Thu, 27 Jun 2019 14:43:57 +0200
parents 89a101a63e7a
children e960b877e07e
comparison
equal deleted inserted replaced
251:89a101a63e7a 252:9405c19b76bc
1 struct Laplace{Dim,T<:Real,N,M,K} <: DiffOpCartesian{Dim} 1 struct Laplace{Dim,T<:Real,N,M,K} <: DiffOpCartesian{Dim}
2 grid::EquidistantGrid{Dim,T} 2 grid::EquidistantGrid{Dim,T}
3 a::T 3 a::T
4 op::D2{Float64,N,M,K} 4 op::D2{Float64,N,M,K}
5 end 5 end
6
7 boundary_value(L::Laplace, bId::CartesianBoundary) = BoundaryValue(L.op, L.grid, bId)
8 normal_derivative(L::Laplace, bId::CartesianBoundary) = NormalDerivative(L.op, L.grid, bId)
9 boundary_quadrature(L::Laplace, bId::CartesianBoundary) = throw(MethodError) # TODO: Implement this
10 6
11 function apply(L::Laplace{Dim}, v::AbstractArray{T,Dim} where T, I::CartesianIndex{Dim}) where Dim 7 function apply(L::Laplace{Dim}, v::AbstractArray{T,Dim} where T, I::CartesianIndex{Dim}) where Dim
12 error("not implemented") 8 error("not implemented")
13 end 9 end
14 10
33 function apply(L::Laplace{2}, v::AbstractArray{T,2} where T, i::CartesianIndex{2}) 29 function apply(L::Laplace{2}, v::AbstractArray{T,2} where T, i::CartesianIndex{2})
34 I = Index{Unknown}.(Tuple(i)) 30 I = Index{Unknown}.(Tuple(i))
35 apply(L, v, I) 31 apply(L, v, I)
36 end 32 end
37 33
34 boundary_value(L::Laplace, bId::CartesianBoundary) = BoundaryValue(L.op, L.grid, bId)
35 normal_derivative(L::Laplace, bId::CartesianBoundary) = NormalDerivative(L.op, L.grid, bId)
36 boundary_quadrature(L::Laplace, bId::CartesianBoundary) = throw(MethodError) # TODO: Implement this
38 37
39 38
40 """ 39 """
41 BoundaryValue{T,N,M,K} <: TensorMapping{T,2,1} 40 BoundaryValue{T,N,M,K} <: TensorMapping{T,2,1}
42 41