comparison src/SbpOperators/quadrature/diagonal_quadrature.jl @ 506:c2f991b819fc feature/quadrature_as_outer_product

Update docs
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Sat, 07 Nov 2020 13:28:38 +0100
parents 21fba50cb5b0
children 576c6d1acc28
comparison
equal deleted inserted replaced
505:26485066394a 506:c2f991b819fc
1 """ 1 """
2 diagonal_quadrature(g,quadrature_closure) 2 diagonal_quadrature(g,quadrature_closure)
3 3
4 Constructs the diagonal quadrature operator `H` on a grid of `Dim` dimensions as 4 Constructs the diagonal quadrature operator `H` on a grid of `Dim` dimensions as
5 a `TensorMapping`. The one-dimensional operator is a DiagonalQuadrature, while 5 a `TensorMapping`. The one-dimensional operator is a `DiagonalQuadrature`, while
6 the multi-dimensional operator is the outer-product of the 6 the multi-dimensional operator is the outer-product of the
7 one-dimensional operators in each coordinate direction. 7 one-dimensional operators in each coordinate direction.
8 """ 8 """
9 function diagonal_quadrature(g::EquidistantGrid{Dim}, quadrature_closure) where Dim 9 function diagonal_quadrature(g::EquidistantGrid{Dim}, quadrature_closure) where Dim
10 H = DiagonalQuadrature(restrict(g,1), quadrature_closure) 10 H = DiagonalQuadrature(restrict(g,1), quadrature_closure)
14 return H 14 return H
15 end 15 end
16 export diagonal_quadrature 16 export diagonal_quadrature
17 17
18 """ 18 """
19 DiagonalQuadrature{Dim,T<:Real,N,M,K} <: TensorMapping{T,Dim,Dim} 19 DiagonalQuadrature{T,M} <: TensorMapping{T,1,1}
20 20
21 Implements the diagonal quadrature operator `H` of Dim dimension as a TensorMapping 21 Implements the one-dimensional diagonal quadrature operator as a `TensorMapping
22 TODO: Elaborate on properties
22 """ 23 """
23 struct DiagonalQuadrature{T,M} <: TensorMapping{T,1,1} 24 struct DiagonalQuadrature{T,M} <: TensorMapping{T,1,1}
24 h::T 25 h::T
25 closure::NTuple{M,T} 26 closure::NTuple{M,T}
26 size::Tuple{Int} 27 size::Tuple{Int}
27 end 28 end
28 export DiagonalQuadrature 29 export DiagonalQuadrature
29 30
31 """
32 DiagonalQuadrature(g, quadrature_closure)
33
34 Constructs the `DiagonalQuadrature` defined by the `EquidistantGrid` `g` and
35 closure stencil `quadrature_closure`.
36 """
30 function DiagonalQuadrature(g::EquidistantGrid{1}, quadrature_closure) 37 function DiagonalQuadrature(g::EquidistantGrid{1}, quadrature_closure)
31 return DiagonalQuadrature(spacing(g)[1], quadrature_closure, size(g)) 38 return DiagonalQuadrature(spacing(g)[1], quadrature_closure, size(g))
32 end 39 end
33 40
34 LazyTensors.range_size(H::DiagonalQuadrature) = H.size 41 LazyTensors.range_size(H::DiagonalQuadrature) = H.size
58 return LazyTensors.apply(H, v, i) 65 return LazyTensors.apply(H, v, i)
59 end 66 end
60 67
61 LazyTensors.apply_transpose(H::DiagonalQuadrature{T}, v::AbstractVector{T}, I::Index) where T = LazyTensors.apply(H,v,I) 68 LazyTensors.apply_transpose(H::DiagonalQuadrature{T}, v::AbstractVector{T}, I::Index) where T = LazyTensors.apply(H,v,I)
62 69
70 """
71 closuresize(H)
72 Returns the size of the closure stencil of a DiagonalQuadrature `H`.
73 """
63 closuresize(H::DiagonalQuadrature{T,M}) where {T,M} = M 74 closuresize(H::DiagonalQuadrature{T,M}) where {T,M} = M
64 export closuresize 75 export closuresize