SG++-Doxygen-Documentation
sgpp::pde::UpDownFourOpDims Class Referenceabstract

Implements the Up/Down scheme with four dimensions with special operations: i,j,k,l. More...

#include <UpDownFourOpDims.hpp>

Inheritance diagram for sgpp::pde::UpDownFourOpDims:
sgpp::base::OperationMatrix

Public Member Functions

virtual void mult (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result)
 starts the Multiplication with the matrix More...
 
 UpDownFourOpDims (sgpp::base::GridStorage *storage, double *****coef)
 Constructor. More...
 
 UpDownFourOpDims (sgpp::base::GridStorage *storage)
 Constructor. More...
 
virtual ~UpDownFourOpDims ()
 Destructor. More...
 
- Public Member Functions inherited from sgpp::base::OperationMatrix
 OperationMatrix ()
 Constructor. More...
 
virtual ~OperationMatrix ()
 Destructor. More...
 

Protected Types

typedef sgpp::base::GridStorage::grid_iterator grid_iterator
 
typedef void(sgpp::pde::UpDownFourOpDims::* MFP) (sgpp::base::DataVector &, sgpp::base::DataVector &, size_t, size_t, size_t, size_t, size_t)
 Function pointer type. More...
 

Protected Member Functions

virtual void down (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 Down-step in dimension dim for \((\phi_i(x),\phi_j(x))_{L_2}\). More...
 
virtual void downOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to l. More...
 
virtual void downOpDimOne (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to i. More...
 
virtual void downOpDimOneAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to i and l. More...
 
virtual void downOpDimOneAndOpDimThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to i and k. More...
 
virtual void downOpDimOneAndOpDimThreeAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to i and k and l. More...
 
virtual void downOpDimOneAndOpDimTwo (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to i and j. More...
 
virtual void downOpDimOneAndOpDimTwoAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to i and j and l. More...
 
virtual void downOpDimOneAndOpDimTwoAndOpDimThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to i and j and k. More...
 
virtual void downOpDimOneAndOpDimTwoAndOpDimThreeAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to i and j and k and l. More...
 
virtual void downOpDimThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to k. More...
 
virtual void downOpDimThreeAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to k and l. More...
 
virtual void downOpDimTwo (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to j. More...
 
virtual void downOpDimTwoAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to j and l. More...
 
virtual void downOpDimTwoAndOpDimThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to j and k. More...
 
virtual void downOpDimTwoAndOpDimThreeAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D down if the current dim is equal to j and k and l. More...
 
void generateMap ()
 Utility method to generate the fnMap member for mappings. More...
 
void specialOpFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 
void specialOpOne (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 
void specialOpOneAndOpFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the both special operation dimensions one and four. More...
 
void specialOpOneAndOpThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the both special operation dimensions one and three. More...
 
void specialOpOneAndOpThreeAndOpFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the all special operation dimensions one, three and four. More...
 
void specialOpOneAndOpTwo (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the both special operation dimensions one and two. More...
 
void specialOpOneAndOpTwoAndOpFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the all special operation dimensions one, two and four. More...
 
void specialOpOneAndOpTwoAndOpThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the all special operation dimensions one, two and three. More...
 
void specialOpOneAndOpTwoAndOpThreeAndOpFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the all special operation dimensions one, two, three and four. More...
 
void specialOpThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 
void specialOpThreeAndOpFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the both special operation dimensions three and four. More...
 
void specialOpTwo (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 
void specialOpTwoAndOpFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the both special operation dimensions two and four. More...
 
void specialOpTwoAndOpThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the both special operation dimensions two and three. More...
 
void specialOpTwoAndOpThreeAndOpFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 If the current dimension is equal to the all special operation dimensions two, three and four. More...
 
void specialOpUnidirectional (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 
void specialOpX (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, void(sgpp::pde::UpDownFourOpDims::*pt2UpFunc)(sgpp::base::DataVector &, sgpp::base::DataVector &, size_t), void(sgpp::pde::UpDownFourOpDims::*pt2DownFunc)(sgpp::base::DataVector &, sgpp::base::DataVector &, size_t), size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 
virtual void up (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 Up-step in dimension dim for \((\phi_i(x),\phi_j(x))_{L_2}\). More...
 
void updown (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim, size_t op_dim_one, size_t op_dim_two, size_t op_dim_three, size_t op_dim_four)
 Recursive procedure for updown, parallel version using OpenMP 3. More...
 
virtual void upOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to l. More...
 
virtual void upOpDimOne (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to i. More...
 
virtual void upOpDimOneAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to i and l. More...
 
virtual void upOpDimOneAndOpDimThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to i and k. More...
 
virtual void upOpDimOneAndOpDimThreeAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to i and k and l. More...
 
virtual void upOpDimOneAndOpDimTwo (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to i and j. More...
 
virtual void upOpDimOneAndOpDimTwoAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to i and j and l. More...
 
virtual void upOpDimOneAndOpDimTwoAndOpDimThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to i and j and k. More...
 
virtual void upOpDimOneAndOpDimTwoAndOpDimThreeAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to i and j and k and l. More...
 
virtual void upOpDimThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to k. More...
 
virtual void upOpDimThreeAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to k and l. More...
 
virtual void upOpDimTwo (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to j. More...
 
virtual void upOpDimTwoAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to j and l. More...
 
virtual void upOpDimTwoAndOpDimThree (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to j and k. More...
 
virtual void upOpDimTwoAndOpDimThreeAndOpDimFour (sgpp::base::DataVector &alpha, sgpp::base::DataVector &result, size_t dim)=0
 1D up if the current dim is equal to j and k and l. More...
 

Protected Attributes

const std::vector< size_t > algoDims
 algorithmic dimensions, operator is applied in this dimensions More...
 
double **** coefs
 Pointer to the coefficients of this bilinear form. More...
 
std::map< size_t, MFPfnMap
 Map of integer to function pointer. More...
 
const size_t numAlgoDims_
 number of algorithmic dimensions More...
 
sgpp::base::GridStoragestorage
 Pointer to the grid's storage object. More...
 

Static Protected Attributes

static const size_t maxParallelDims_ = TASKS_PARALLEL_UPDOWN
 max number of parallel stages (dimension recursive calls) More...
 

Detailed Description

Implements the Up/Down scheme with four dimensions with special operations: i,j,k,l.

Member Typedef Documentation

◆ grid_iterator

◆ MFP

typedef void(sgpp::pde::UpDownFourOpDims::* sgpp::pde::UpDownFourOpDims::MFP) (sgpp::base::DataVector &, sgpp::base::DataVector &, size_t, size_t, size_t, size_t, size_t)
protected

Function pointer type.

This is used in fnMap to map the particular dimension situation to the relevant method handler.

Constructor & Destructor Documentation

◆ UpDownFourOpDims() [1/2]

sgpp::pde::UpDownFourOpDims::UpDownFourOpDims ( sgpp::base::GridStorage storage,
double *****  coef 
)

Constructor.

Parameters
storagethe grid's sgpp::base::GridStorage object
coef4d tensor that contains the constant coefficients of this operation

References generateMap().

◆ UpDownFourOpDims() [2/2]

sgpp::pde::UpDownFourOpDims::UpDownFourOpDims ( sgpp::base::GridStorage storage)
explicit

Constructor.

Parameters
storagethe grid's sgpp::base::GridStorage object

References generateMap().

◆ ~UpDownFourOpDims()

sgpp::pde::UpDownFourOpDims::~UpDownFourOpDims ( )
virtual

Destructor.

Member Function Documentation

◆ down()

virtual void sgpp::pde::UpDownFourOpDims::down ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

Down-step in dimension dim for \((\phi_i(x),\phi_j(x))_{L_2}\).

Applies the down-part of the one-dimensional mass matrix in one dimension. Computes

\[\int_{x=0}^1 \phi_i(x) \sum_{j, l_i\geq l_j} \alpha_j \phi_j(x) dx.\]

Parameters
alphavector of coefficients
resultvector to store the results in
dimdimension in which to apply the down-part

Referenced by specialOpUnidirectional().

◆ downOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpFour().

◆ downOpDimOne()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimOne ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to i.

Parameters
alphathe coefficients of the gridpoints
resultvector with the result of this operation
dimthe dimension in that down-Gradient is applied

Referenced by specialOpOne().

◆ downOpDimOneAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimOneAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to i and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpFour().

◆ downOpDimOneAndOpDimThree()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimOneAndOpDimThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to i and k.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpThree().

◆ downOpDimOneAndOpDimThreeAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimOneAndOpDimThreeAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to i and k and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpThreeAndOpFour().

◆ downOpDimOneAndOpDimTwo()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimOneAndOpDimTwo ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to i and j.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpTwo().

◆ downOpDimOneAndOpDimTwoAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimOneAndOpDimTwoAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to i and j and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpTwoAndOpFour().

◆ downOpDimOneAndOpDimTwoAndOpDimThree()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimOneAndOpDimTwoAndOpDimThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to i and j and k.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpTwoAndOpThree().

◆ downOpDimOneAndOpDimTwoAndOpDimThreeAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimOneAndOpDimTwoAndOpDimThreeAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to i and j and k and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpTwoAndOpThreeAndOpFour().

◆ downOpDimThree()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to k.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpThree().

◆ downOpDimThreeAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimThreeAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to k and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpThreeAndOpFour().

◆ downOpDimTwo()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimTwo ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to j.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpTwo().

◆ downOpDimTwoAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimTwoAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to j and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpTwoAndOpFour().

◆ downOpDimTwoAndOpDimThree()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimTwoAndOpDimThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to j and k.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpTwoAndOpThree().

◆ downOpDimTwoAndOpDimThreeAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::downOpDimTwoAndOpDimThreeAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D down if the current dim is equal to j and k and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpTwoAndOpThreeAndOpFour().

◆ generateMap()

◆ mult()

void sgpp::pde::UpDownFourOpDims::mult ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result 
)
virtual

starts the Multiplication with the matrix

Parameters
alphaDataVector that contains the ansatzfunctions' coefficients
resultDataVector into which the result of the Laplace operation is stored

Implements sgpp::base::OperationMatrix.

References sgpp::base::DataVector::add(), sgpp::base::DataVector::axpy(), coefs, sgpp::base::DataVector::getSize(), python.statsfileInfo::i, python.utils.statsfile2gnuplot::j, numAlgoDims_, sgpp::base::DataVector::setAll(), and updown().

◆ specialOpFour()

void sgpp::pde::UpDownFourOpDims::specialOpFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

References downOpDimFour(), specialOpX(), and upOpDimFour().

Referenced by generateMap().

◆ specialOpOne()

void sgpp::pde::UpDownFourOpDims::specialOpOne ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

References downOpDimOne(), specialOpX(), and upOpDimOne().

Referenced by generateMap().

◆ specialOpOneAndOpFour()

void sgpp::pde::UpDownFourOpDims::specialOpOneAndOpFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the both special operation dimensions one and four.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimOneAndOpDimFour(), specialOpX(), and upOpDimOneAndOpDimFour().

Referenced by generateMap().

◆ specialOpOneAndOpThree()

void sgpp::pde::UpDownFourOpDims::specialOpOneAndOpThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the both special operation dimensions one and three.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimOneAndOpDimThree(), specialOpX(), and upOpDimOneAndOpDimThree().

Referenced by generateMap().

◆ specialOpOneAndOpThreeAndOpFour()

void sgpp::pde::UpDownFourOpDims::specialOpOneAndOpThreeAndOpFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the all special operation dimensions one, three and four.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimOneAndOpDimThreeAndOpDimFour(), specialOpX(), and upOpDimOneAndOpDimThreeAndOpDimFour().

Referenced by generateMap().

◆ specialOpOneAndOpTwo()

void sgpp::pde::UpDownFourOpDims::specialOpOneAndOpTwo ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the both special operation dimensions one and two.

Parameters
alphathe coefficients of the grid points
resultthe result of the operations
dimthe current dimension in the recursion
op_dim_onethe dimension in which to use the first gradient
op_dim_twothe dimension in which to use the second gradient
op_dim_threethe dimension in which to use the third gradient
op_dim_fourthe dimension in which to use the fourth gradient

References downOpDimOneAndOpDimTwo(), specialOpX(), and upOpDimOneAndOpDimTwo().

Referenced by generateMap().

◆ specialOpOneAndOpTwoAndOpFour()

void sgpp::pde::UpDownFourOpDims::specialOpOneAndOpTwoAndOpFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the all special operation dimensions one, two and four.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimOneAndOpDimTwoAndOpDimFour(), specialOpX(), and upOpDimOneAndOpDimTwoAndOpDimFour().

Referenced by generateMap().

◆ specialOpOneAndOpTwoAndOpThree()

void sgpp::pde::UpDownFourOpDims::specialOpOneAndOpTwoAndOpThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the all special operation dimensions one, two and three.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimOneAndOpDimTwoAndOpDimThree(), specialOpX(), and upOpDimOneAndOpDimTwoAndOpDimThree().

Referenced by generateMap().

◆ specialOpOneAndOpTwoAndOpThreeAndOpFour()

void sgpp::pde::UpDownFourOpDims::specialOpOneAndOpTwoAndOpThreeAndOpFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the all special operation dimensions one, two, three and four.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimOneAndOpDimTwoAndOpDimThreeAndOpDimFour(), specialOpX(), and upOpDimOneAndOpDimTwoAndOpDimThreeAndOpDimFour().

Referenced by generateMap().

◆ specialOpThree()

void sgpp::pde::UpDownFourOpDims::specialOpThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

References downOpDimThree(), specialOpX(), and upOpDimThree().

Referenced by generateMap().

◆ specialOpThreeAndOpFour()

void sgpp::pde::UpDownFourOpDims::specialOpThreeAndOpFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the both special operation dimensions three and four.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimThreeAndOpDimFour(), specialOpX(), and upOpDimThreeAndOpDimFour().

Referenced by generateMap().

◆ specialOpTwo()

void sgpp::pde::UpDownFourOpDims::specialOpTwo ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

References downOpDimTwo(), specialOpX(), and upOpDimTwo().

Referenced by generateMap().

◆ specialOpTwoAndOpFour()

void sgpp::pde::UpDownFourOpDims::specialOpTwoAndOpFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the both special operation dimensions two and four.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimTwoAndOpDimFour(), specialOpX(), and upOpDimTwoAndOpDimFour().

Referenced by generateMap().

◆ specialOpTwoAndOpThree()

void sgpp::pde::UpDownFourOpDims::specialOpTwoAndOpThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the both special operation dimensions two and three.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimTwoAndOpDimThree(), specialOpX(), and upOpDimTwoAndOpDimThree().

Referenced by generateMap().

◆ specialOpTwoAndOpThreeAndOpFour()

void sgpp::pde::UpDownFourOpDims::specialOpTwoAndOpThreeAndOpFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

If the current dimension is equal to the all special operation dimensions two, three and four.

For an explanation of the parameters of this method, see the documentation for the method specialOpOneAndOpTwo in this class.

References downOpDimTwoAndOpDimThreeAndOpDimFour(), specialOpX(), and upOpDimTwoAndOpDimThreeAndOpDimFour().

Referenced by generateMap().

◆ specialOpUnidirectional()

void sgpp::pde::UpDownFourOpDims::specialOpUnidirectional ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

References down(), specialOpX(), and up().

Referenced by generateMap().

◆ specialOpX()

◆ up()

virtual void sgpp::pde::UpDownFourOpDims::up ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

Up-step in dimension dim for \((\phi_i(x),\phi_j(x))_{L_2}\).

Applies the up-part of the one-dimensional mass matrix in one dimension. Computes

\[\int_{x=0}^1 \phi_i(x) \sum_{j, l_i < l_j} \alpha_j \phi_j(x) dx.\]

Parameters
alphavector of coefficients
resultvector to store the results in
dimdimension in which to apply the up-part

Referenced by specialOpUnidirectional().

◆ updown()

void sgpp::pde::UpDownFourOpDims::updown ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim,
size_t  op_dim_one,
size_t  op_dim_two,
size_t  op_dim_three,
size_t  op_dim_four 
)
protected

Recursive procedure for updown, parallel version using OpenMP 3.

Parameters
alphavector of coefficients
resultvector to store the results in
dimthe current dimension
op_dim_onethe dimension in which to use the first gradient
op_dim_twothe dimension in which to use the second gradient
op_dim_threethe dimension in which to use the third gradient
op_dim_fourthe dimension in which to use the fourth gradient

References fnMap.

Referenced by mult(), and specialOpX().

◆ upOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpFour().

◆ upOpDimOne()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimOne ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to i.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOne().

◆ upOpDimOneAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimOneAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to i and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpFour().

◆ upOpDimOneAndOpDimThree()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimOneAndOpDimThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to i and k.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpThree().

◆ upOpDimOneAndOpDimThreeAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimOneAndOpDimThreeAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to i and k and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpThreeAndOpFour().

◆ upOpDimOneAndOpDimTwo()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimOneAndOpDimTwo ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to i and j.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpTwo().

◆ upOpDimOneAndOpDimTwoAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimOneAndOpDimTwoAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to i and j and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpTwoAndOpFour().

◆ upOpDimOneAndOpDimTwoAndOpDimThree()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimOneAndOpDimTwoAndOpDimThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to i and j and k.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpTwoAndOpThree().

◆ upOpDimOneAndOpDimTwoAndOpDimThreeAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimOneAndOpDimTwoAndOpDimThreeAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to i and j and k and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpOneAndOpTwoAndOpThreeAndOpFour().

◆ upOpDimThree()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to k.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpThree().

◆ upOpDimThreeAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimThreeAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to k and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpThreeAndOpFour().

◆ upOpDimTwo()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimTwo ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to j.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpTwo().

◆ upOpDimTwoAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimTwoAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to j and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpTwoAndOpFour().

◆ upOpDimTwoAndOpDimThree()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimTwoAndOpDimThree ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to j and k.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpTwoAndOpThree().

◆ upOpDimTwoAndOpDimThreeAndOpDimFour()

virtual void sgpp::pde::UpDownFourOpDims::upOpDimTwoAndOpDimThreeAndOpDimFour ( sgpp::base::DataVector alpha,
sgpp::base::DataVector result,
size_t  dim 
)
protectedpure virtual

1D up if the current dim is equal to j and k and l.

For an explanation of the parameters of this method, see the documentation for the method downOpDimOne in this class.

Referenced by specialOpTwoAndOpThreeAndOpFour().

Member Data Documentation

◆ algoDims

const std::vector<size_t> sgpp::pde::UpDownFourOpDims::algoDims
protected

algorithmic dimensions, operator is applied in this dimensions

Referenced by specialOpX().

◆ coefs

double**** sgpp::pde::UpDownFourOpDims::coefs
protected

Pointer to the coefficients of this bilinear form.

Referenced by mult().

◆ fnMap

std::map<size_t, MFP> sgpp::pde::UpDownFourOpDims::fnMap
protected

Map of integer to function pointer.

This is used to map the dimension situation to the relevant method handler.

Referenced by generateMap(), and updown().

◆ maxParallelDims_

const size_t sgpp::pde::UpDownFourOpDims::maxParallelDims_ = TASKS_PARALLEL_UPDOWN
staticprotected

max number of parallel stages (dimension recursive calls)

Referenced by specialOpX().

◆ numAlgoDims_

const size_t sgpp::pde::UpDownFourOpDims::numAlgoDims_
protected

number of algorithmic dimensions

Referenced by mult(), and specialOpX().

◆ storage

sgpp::base::GridStorage* sgpp::pde::UpDownFourOpDims::storage
protected

Pointer to the grid's storage object.


The documentation for this class was generated from the following files: