Mercurial > repos > public > sbplib_julia
comparison src/SbpOperators/boundaryops/boundary_restriction.jl @ 582:aa44edea36fc feature/boundary_ops
Merge
| author | Jonatan Werpers <jonatan@werpers.com> |
|---|---|
| date | Tue, 01 Dec 2020 19:41:16 +0100 |
| parents | ea4176a5dfc5 0779713f95a2 |
| children | 6db96ef13a29 |
comparison
equal
deleted
inserted
replaced
| 581:ea4176a5dfc5 | 582:aa44edea36fc |
|---|---|
| 29 stencil::Stencil{T,N} | 29 stencil::Stencil{T,N} |
| 30 size::Int | 30 size::Int |
| 31 end | 31 end |
| 32 export BoundaryRestriction | 32 export BoundaryRestriction |
| 33 | 33 |
| 34 BoundaryRestriction{R}(stencil::Stencil{T,N}, size::Int) where {T,R,N} = BoundaryRestriction{T,R,N}(stencil, size) | |
| 35 | |
| 34 function BoundaryRestriction(grid::EquidistantGrid{1}, closureStencil::Stencil{T,N}, region::Region) where {T,N} | 36 function BoundaryRestriction(grid::EquidistantGrid{1}, closureStencil::Stencil{T,N}, region::Region) where {T,N} |
| 35 return BoundaryRestriction{T,typeof(region),N}(closureStencil,size(grid)[1]) | 37 return BoundaryRestriction{T,typeof(region),N}(closureStencil,size(grid)[1]) |
| 36 end | 38 end |
| 37 | 39 |
| 38 closuresize(::BoundaryRestriction{T,R,N}) where {T,R,N} = N | 40 closure_size(::BoundaryRestriction{T,R,N}) where {T,R,N} = N |
| 39 | 41 |
| 40 LazyTensors.range_size(e::BoundaryRestriction) = () | 42 LazyTensors.range_size(e::BoundaryRestriction) = () |
| 41 LazyTensors.domain_size(e::BoundaryRestriction) = (e.size,) | 43 LazyTensors.domain_size(e::BoundaryRestriction) = (e.size,) |
| 42 | 44 |
| 43 function LazyTensors.apply(e::BoundaryRestriction{T,Lower}, v::AbstractVector{T}) where T | 45 function LazyTensors.apply(e::BoundaryRestriction{T,Lower}, v::AbstractVector{T}) where T |
| 60 function LazyTensors.apply_transpose(e::BoundaryRestriction{T}, v::AbstractArray{T,0}, i::Index) where T | 62 function LazyTensors.apply_transpose(e::BoundaryRestriction{T}, v::AbstractArray{T,0}, i::Index) where T |
| 61 return zero(T) | 63 return zero(T) |
| 62 end | 64 end |
| 63 | 65 |
| 64 function LazyTensors.apply_transpose(e::BoundaryRestriction{T}, v::AbstractArray{T,0}, i) where T | 66 function LazyTensors.apply_transpose(e::BoundaryRestriction{T}, v::AbstractArray{T,0}, i) where T |
| 65 r = getregion(i, closuresize(e), e.size) | 67 r = getregion(i, closure_size(e), e.size) |
| 66 apply_transpose(e, v, Index(i,r)) | 68 apply_transpose(e, v, Index(i,r)) |
| 67 end | 69 end |
