annotate src/SbpOperators/volumeops/quadratures/quadrature.jl @ 640:0e20bfef5cee feature/volume_and_boundary_operators

remove extra space
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Mon, 04 Jan 2021 16:59:11 +0100
parents 08b2c7a2d063
children 2a95beb9ef1d e14627e79a54
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
328
9cc5d1498b2d Refactor 1D diagonal inner product in quadrature.jl to separate file. Write tests for quadratures. Clean up laplace and secondderivative
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
1 """
638
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
2 Quadrature(grid::EquidistantGrid, inner_stencil, closure_stencils)
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
3
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
4 Creates the quadrature operator `H` as a `TensorMapping`
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
5
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
6 The quadrature approximates the integral operator on the grid using
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
7 `inner_stencil` in the interior and a set of stencils `closure_stencils`
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
8 for the points in the closure regions.
328
9cc5d1498b2d Refactor 1D diagonal inner product in quadrature.jl to separate file. Write tests for quadratures. Clean up laplace and secondderivative
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
9
638
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
10 On a one-dimensional `grid`, `H` is a `VolumeOperator`. On a multi-dimensional
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
11 `grid`, `H` is the outer product of the 1-dimensional quadrature operators in
640
0e20bfef5cee remove extra space
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 638
diff changeset
12 each coordinate direction. Also see the documentation of
638
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
13 `SbpOperators.volume_operator(...)` for more details.
328
9cc5d1498b2d Refactor 1D diagonal inner product in quadrature.jl to separate file. Write tests for quadratures. Clean up laplace and secondderivative
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
14 """
638
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
15 function Quadrature(grid::EquidistantGrid{Dim}, inner_stencil, closure_stencils) where Dim
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
16 h = spacing(grid)
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
17 H = SbpOperators.volume_operator(grid, scale(inner_stencil,h[1]), scale.(closure_stencils,h[1]), even, 1)
504
21fba50cb5b0 Use LazyOuterProduct to construct multi-dimensional quadratures. This change allwed to:
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 362
diff changeset
18 for i ∈ 2:Dim
638
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
19 Hᵢ = SbpOperators.volume_operator(grid, scale(inner_stencil,h[i]), scale.(closure_stencils,h[i]), even, i)
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
20 H = H∘Hᵢ
504
21fba50cb5b0 Use LazyOuterProduct to construct multi-dimensional quadratures. This change allwed to:
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 362
diff changeset
21 end
21fba50cb5b0 Use LazyOuterProduct to construct multi-dimensional quadratures. This change allwed to:
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 362
diff changeset
22 return H
21fba50cb5b0 Use LazyOuterProduct to construct multi-dimensional quadratures. This change allwed to:
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 362
diff changeset
23 end
638
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
24 export Quadrature
558
9b5710ae6587 Update documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 557
diff changeset
25
9b5710ae6587 Update documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 557
diff changeset
26 """
638
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
27 DiagonalQuadrature(grid::EquidistantGrid, closure_stencils)
328
9cc5d1498b2d Refactor 1D diagonal inner product in quadrature.jl to separate file. Write tests for quadratures. Clean up laplace and secondderivative
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents:
diff changeset
28
638
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
29 Creates the quadrature operator with the inner stencil 1/h and 1-element sized
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
30 closure stencils (i.e the operator is diagonal)
546
09ae5b519b4c Update documentation
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 507
diff changeset
31 """
638
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
32 function DiagonalQuadrature(grid::EquidistantGrid, closure_stencils::NTuple{M,Stencil{T,1}}) where {M,T}
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
33 inner_stencil = Stencil(Tuple{T}(1),center=1)
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
34 return Quadrature(grid, inner_stencil, closure_stencils)
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
35 end
08b2c7a2d063 Implement the Quadrature operator as a VolumeOperator. Make DiagonalQuadrature a special case of the general Quadrature operator. Update tests.
Vidar Stiernström <vidar.stiernstrom@it.uu.se>
parents: 636
diff changeset
36 export DiagonalQuadrature