Peano
Loading...
Searching...
No Matches
BSplinesStencilFactory.h
Go to the documentation of this file.
1
// This file is part of the Peano project. For conditions of distribution and
2
// use, please see the copyright notice at www.peano-framework.org
3
#pragma once
4
5
6
#include "
tarch/la/Vector.h
"
7
#include "
tarch/la/Matrix.h
"
8
#include "
peano4/utils/Globals.h
"
9
10
11
namespace
toolbox
{
12
namespace
finiteelements {
13
class
BSplinesStencilFactory
;
14
}
15
}
16
17
28
class
toolbox::finiteelements::BSplinesStencilFactory
{
29
public
:
33
static
tarch::la::Vector<3,double>
get1DMassStencilP1
();
34
static
tarch::la::Vector<5,double>
get1DMassStencilP2
();
35
static
tarch::la::Vector<7,double>
get1DMassStencilP3
();
36
static
tarch::la::Vector<9,double>
get1DMassStencilP4
();
37
static
tarch::la::Vector<11,double>
get1DMassStencilP5
();
38
static
tarch::la::Vector<13,double>
get1DMassStencilP6
();
39
static
tarch::la::Vector<15,double>
get1DMassStencilP7
();
40
static
tarch::la::Vector<17,double>
get1DMassStencilP8
();
41
46
static
tarch::la::Vector<3,double>
get1DMassStencilP1
(
int
elementOfSupport);
47
51
static
tarch::la::Vector<5,double>
get1DMassStencilP2
(
int
elementOfSupport);
52
56
static
tarch::la::Vector<7,double>
get1DMassStencilP3
(
int
elementOfSupport);
57
61
static
tarch::la::Vector<9,double>
get1DMassStencilP4
(
int
elementOfSupport);
62
68
static
tarch::la::Vector<3,double>
get1DLaplaceStencilP1
();
69
static
tarch::la::Vector<5,double>
get1DLaplaceStencilP2
();
70
static
tarch::la::Vector<7,double>
get1DLaplaceStencilP3
();
71
static
tarch::la::Vector<9,double>
get1DLaplaceStencilP4
();
72
static
tarch::la::Vector<11,double>
get1DLaplaceStencilP5
();
73
static
tarch::la::Vector<13,double>
get1DLaplaceStencilP6
();
74
static
tarch::la::Vector<15,double>
get1DLaplaceStencilP7
();
75
static
tarch::la::Vector<17,double>
get1DLaplaceStencilP8
();
76
77
static
tarch::la::Vector<3,double>
get1DLaplaceStencilP1
(
int
elementOfSupport);
78
static
tarch::la::Vector<5,double>
get1DLaplaceStencilP2
(
int
elementOfSupport);
79
static
tarch::la::Vector<7,double>
get1DLaplaceStencilP3
(
int
elementOfSupport);
80
static
tarch::la::Vector<9,double>
get1DLaplaceStencilP4
(
int
elementOfSupport);
81
82
static
tarch::la::Vector<ThreePowerD,double>
getLaplacianStencilP1
(
const
tarch::la::Vector<Dimensions,double>
& scaling = 1.0 );
83
static
tarch::la::Vector<FivePowerD,double>
getLaplacianStencilP2
(
const
tarch::la::Vector<Dimensions,double>
& scaling = 1.0 );
84
static
tarch::la::Vector<SevenPowerD,double>
getLaplacianStencilP3
(
const
tarch::la::Vector<Dimensions,double>
& scaling = 1.0 );
85
static
tarch::la::Vector<NinePowerD,double>
getLaplacianStencilP4
(
const
tarch::la::Vector<Dimensions,double>
& scaling = 1.0 );
86
87
static
tarch::la::Vector<ThreePowerD,double>
getMassStencilP1
();
88
static
tarch::la::Vector<FivePowerD,double>
getMassStencilP2
();
89
static
tarch::la::Vector<SevenPowerD,double>
getMassStencilP3
();
90
static
tarch::la::Vector<NinePowerD,double>
getMassStencilP4
();
91
102
template
<
int
p,
int
N>
103
static
tarch::la::Matrix<N*N,N*N,double>
getElementWiseAssemblyMatrix
(
104
tarch::la::Vector<2*p+1,double>
stencilX[N],
105
tarch::la::Vector<2*p+1,double>
stencilY[N]
106
);
107
108
109
template
<
int
p,
int
N>
110
static
tarch::la::Matrix<N*N*N,N*N*N,double>
getElementWiseAssemblyMatrix
(
111
tarch::la::Vector<2*p+1,double>
stencilX[N],
112
tarch::la::Vector<2*p+1,double>
stencilY[N],
113
tarch::la::Vector<2*p+1,double>
stencilZ[N]
114
);
115
};
116
117
118
#include "BSplinesStencilFactory.cpph"
119
120
Globals.h
Matrix.h
Vector.h
tarch::la::Matrix
Static (i.e.
Definition
Matrix.h:42
toolbox::finiteelements::BSplinesStencilFactory
Stencil Factory.
Definition
BSplinesStencilFactory.h:28
toolbox::finiteelements::BSplinesStencilFactory::getElementWiseAssemblyMatrix
static tarch::la::Matrix< N *N, N *N, double > getElementWiseAssemblyMatrix(tarch::la::Vector< 2 *p+1, double > stencilX[N], tarch::la::Vector< 2 *p+1, double > stencilY[N])
N means NumberOfInfluencingVerticesAroundCurrentElementAlongEachAxis.
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP5
static tarch::la::Vector< 11, double > get1DMassStencilP5()
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP7
static tarch::la::Vector< 15, double > get1DLaplaceStencilP7()
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP1
static tarch::la::Vector< 3, double > get1DLaplaceStencilP1(int elementOfSupport)
toolbox::finiteelements::BSplinesStencilFactory::getElementWiseAssemblyMatrix
static tarch::la::Matrix< N *N *N, N *N *N, double > getElementWiseAssemblyMatrix(tarch::la::Vector< 2 *p+1, double > stencilX[N], tarch::la::Vector< 2 *p+1, double > stencilY[N], tarch::la::Vector< 2 *p+1, double > stencilZ[N])
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP6
static tarch::la::Vector< 13, double > get1DMassStencilP6()
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP3
static tarch::la::Vector< 7, double > get1DMassStencilP3(int elementOfSupport)
Spans 2 elements in each direction.
toolbox::finiteelements::BSplinesStencilFactory::getMassStencilP3
static tarch::la::Vector< SevenPowerD, double > getMassStencilP3()
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP2
static tarch::la::Vector< 5, double > get1DMassStencilP2(int elementOfSupport)
Spans 1.5 elements in each direction, i.e.
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP4
static tarch::la::Vector< 9, double > get1DLaplaceStencilP4()
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP8
static tarch::la::Vector< 17, double > get1DLaplaceStencilP8()
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP1
static tarch::la::Vector< 3, double > get1DMassStencilP1()
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP2
static tarch::la::Vector< 5, double > get1DLaplaceStencilP2(int elementOfSupport)
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP2
static tarch::la::Vector< 5, double > get1DMassStencilP2()
toolbox::finiteelements::BSplinesStencilFactory::getMassStencilP4
static tarch::la::Vector< NinePowerD, double > getMassStencilP4()
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP1
static tarch::la::Vector< 3, double > get1DLaplaceStencilP1()
Stencil is not scaled at all with any mesh width.
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP2
static tarch::la::Vector< 5, double > get1DLaplaceStencilP2()
toolbox::finiteelements::BSplinesStencilFactory::getMassStencilP1
static tarch::la::Vector< ThreePowerD, double > getMassStencilP1()
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP4
static tarch::la::Vector< 9, double > get1DMassStencilP4(int elementOfSupport)
Spans 2.5 elements in each direction, i.e.
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP5
static tarch::la::Vector< 11, double > get1DLaplaceStencilP5()
toolbox::finiteelements::BSplinesStencilFactory::getLaplacianStencilP1
static tarch::la::Vector< ThreePowerD, double > getLaplacianStencilP1(const tarch::la::Vector< Dimensions, double > &scaling=1.0)
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP3
static tarch::la::Vector< 7, double > get1DMassStencilP3()
toolbox::finiteelements::BSplinesStencilFactory::getLaplacianStencilP4
static tarch::la::Vector< NinePowerD, double > getLaplacianStencilP4(const tarch::la::Vector< Dimensions, double > &scaling=1.0)
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP4
static tarch::la::Vector< 9, double > get1DLaplaceStencilP4(int elementOfSupport)
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP4
static tarch::la::Vector< 9, double > get1DMassStencilP4()
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP7
static tarch::la::Vector< 15, double > get1DMassStencilP7()
toolbox::finiteelements::BSplinesStencilFactory::getLaplacianStencilP2
static tarch::la::Vector< FivePowerD, double > getLaplacianStencilP2(const tarch::la::Vector< Dimensions, double > &scaling=1.0)
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP8
static tarch::la::Vector< 17, double > get1DMassStencilP8()
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP3
static tarch::la::Vector< 7, double > get1DLaplaceStencilP3()
toolbox::finiteelements::BSplinesStencilFactory::get1DMassStencilP1
static tarch::la::Vector< 3, double > get1DMassStencilP1(int elementOfSupport)
A stencil of order p decomposes into 2p stencils among its support.
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP3
static tarch::la::Vector< 7, double > get1DLaplaceStencilP3(int elementOfSupport)
toolbox::finiteelements::BSplinesStencilFactory::get1DLaplaceStencilP6
static tarch::la::Vector< 13, double > get1DLaplaceStencilP6()
toolbox::finiteelements::BSplinesStencilFactory::getLaplacianStencilP3
static tarch::la::Vector< SevenPowerD, double > getLaplacianStencilP3(const tarch::la::Vector< Dimensions, double > &scaling=1.0)
toolbox::finiteelements::BSplinesStencilFactory::getMassStencilP2
static tarch::la::Vector< FivePowerD, double > getMassStencilP2()
toolbox
Definition
InterpolationRestriction.h:10
tarch::la::Vector
Simple vector class.
Definition
Vector.h:159
src
toolbox
finiteelements
BSplinesStencilFactory.h
Generated on Tue Nov 3 2026 16:05:42 for Peano by
1.9.8