Mercurial > repos > public > sbplib_julia
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 |