Peano
Loading...
Searching...
No Matches
StencilFactory.h File Reference
#include "Stencil.h"
#include <bitset>
#include <functional>
Include dependency graph for StencilFactory.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  toolbox
 
namespace  toolbox::finiteelements
 Derive Element-wise Matrices From Stencils.
 

Functions

void toolbox::finiteelements::preprocessBoundaryStencil (Stencil &stencil, const std::bitset< Dimensions *2 > &boundaryFaceNormals)
 Preprocess boundary stencils held by boundary vertices.
 
Stencil toolbox::finiteelements::exchangeCoordinates (const Stencil &stencil, int coord0, int coord1)
 Exchanges the coordinates of a stencil.
 
tarch::la::Vector< 3, doubletoolbox::finiteelements::get1DMassStencil ()
 
tarch::la::Vector< 3, doubletoolbox::finiteelements::get1DLaplaceStencil ()
 Stencil is not scaled at all with any mesh width.
 
tarch::la::Vector< 3, doubletoolbox::finiteelements::get1DIdentity ()
 Stencil is not scaled at all with any mesh width.
 
tarch::la::Vector< 3, doubletoolbox::finiteelements::get1DLeftIdentity ()
 
tarch::la::Vector< 3, doubletoolbox::finiteelements::get1DRightIdentity ()
 
tarch::la::Vector< 5, doubletoolbox::finiteelements::get1DLinearInterpolationStencil ()
 Stencil is not scaled at all with any mesh width.
 
tarch::la::Vector< 3, doubletoolbox::finiteelements::get1DMeanValueStencil ()
 Stencil is not scaled at all with any mesh width.
 
tarch::la::Vector< 3, doubletoolbox::finiteelements::get1DDownwindStencil ()
 Stencil is not scaled at all with any mesh width.
 
tarch::la::Vector< 3, doubletoolbox::finiteelements::get1DUpwindStencil ()
 
tarch::la::Vector< 3, doubletoolbox::finiteelements::get1DCentralDifferencesStencil ()
 
tarch::la::Vector< 3 *3, doubletoolbox::finiteelements::stencilProduct (const tarch::la::Vector< 3, double > &a, const tarch::la::Vector< 3, double > &b)
 Makes stencil-product of two stencils:
 
tarch::la::Vector< 5 *5, doubletoolbox::finiteelements::stencilProduct (const tarch::la::Vector< 5, double > &a, const tarch::la::Vector< 5, double > &b)
 
tarch::la::Vector< 3 *3 *3, doubletoolbox::finiteelements::stencilProduct (const tarch::la::Vector< 3, double > &a, const tarch::la::Vector< 3, double > &b, const tarch::la::Vector< 3, double > &c)
 Equals a * (b*c)
 
tarch::la::Vector< 5 *5 *5, doubletoolbox::finiteelements::stencilProduct (const tarch::la::Vector< 5, double > &a, const tarch::la::Vector< 5, double > &b, const tarch::la::Vector< 5, double > &c)
 
tarch::la::Vector< 3 *3 *3 *3, doubletoolbox::finiteelements::stencilProduct (const tarch::la::Vector< 3, double > &a, const tarch::la::Vector< 3, double > &b, const tarch::la::Vector< 3, double > &c, const tarch::la::Vector< 3, double > &d)
 
tarch::la::Vector< 5 *5 *5 *5, doubletoolbox::finiteelements::stencilProduct (const tarch::la::Vector< 5, double > &a, const tarch::la::Vector< 5, double > &b, const tarch::la::Vector< 5, double > &c, const tarch::la::Vector< 5, double > &d)
 
tarch::la::Vector< 3 *3 *3 *3 *3, doubletoolbox::finiteelements::stencilProduct (const tarch::la::Vector< 3, double > &a, const tarch::la::Vector< 3, double > &b, const tarch::la::Vector< 3, double > &c, const tarch::la::Vector< 3, double > &d, const tarch::la::Vector< 3, double > &e)
 
tarch::la::Vector< 5 *5 *5 *5 *5, doubletoolbox::finiteelements::stencilProduct (const tarch::la::Vector< 5, double > &a, const tarch::la::Vector< 5, double > &b, const tarch::la::Vector< 5, double > &c, const tarch::la::Vector< 5, double > &d, const tarch::la::Vector< 5, double > &e)
 
tarch::la::Vector< ThreePowerD, doubletoolbox::finiteelements::getLaplacian (const tarch::la::Vector< Dimensions, double > &h, const tarch::la::Vector< Dimensions, double > &scaling=1.0)
 Computes the Laplacian.
 
tarch::la::Vector< ThreePowerD, std::complex< double > > toolbox::finiteelements::getLaplacian (const tarch::la::Vector< Dimensions, std::complex< double > > &h, const tarch::la::Vector< Dimensions, std::complex< double > > &scaling=std::complex< double >(1.0))
 
tarch::la::Vector< ThreePowerD, std::complex< double > > toolbox::finiteelements::getLaplacian (const tarch::la::Vector< Dimensions, double > &h, const tarch::la::Vector< Dimensions, std::complex< double > > &scaling)
 
tarch::la::Vector< ThreePowerD, doubletoolbox::finiteelements::getUpwindDiscretisedConvection (const tarch::la::Vector< Dimensions, double > &h, const tarch::la::Vector< Dimensions, double > &convCoeff)
 Computes a convection operator, defined by the convection coefficients, discretised with the first order upwind scheme.
 
void toolbox::finiteelements::applyNeumannBC (tarch::la::Vector< ThreePowerD, double > &stencil, double &rhs, const std::bitset< Dimensions *2 > &boundaryFaceNormals, const tarch::la::Vector< Dimensions, double > &h, double derivative)
 
tarch::la::Vector< ThreePowerD, doubletoolbox::finiteelements::getMassMatrix (const tarch::la::Vector< Dimensions, double > &h)
 Computes the mass matrix.
 
tarch::la::Vector< ThreePowerD, std::complex< double > > toolbox::finiteelements::getMassMatrix (const tarch::la::Vector< Dimensions, std::complex< double > > &h)
 
tarch::la::Vector< ThreePowerD, std::complex< double > > toolbox::finiteelements::getHelmholtzShiftMatrix (const tarch::la::Vector< Dimensions, double > &h, const std::complex< double > &phi)
 Computes the Helmholtz shift term matrix.
 
tarch::la::Vector< ThreePowerD, std::complex< double > > toolbox::finiteelements::getHelmholtzShiftMatrix (const tarch::la::Vector< Dimensions, std::complex< double > > &h, const std::complex< double > &phi)
 
tarch::la::Vector< ThreePowerD, doubletoolbox::finiteelements::getIdentity (const tarch::la::Vector< Dimensions, double > &h)
 Computes the mass matrix.
 
tarch::la::Vector< ThreePowerD, std::complex< double > > toolbox::finiteelements::getIdentity (const tarch::la::Vector< Dimensions, std::complex< double > > &h)
 
tarch::la::Vector< FivePowerD, doubletoolbox::finiteelements::getDLinearInterpolation ()
 Computes the stencil for a d-linear interpolation.
 
Stencil toolbox::finiteelements::extractElementStencil (const Stencil &stencil, const tarch::la::Vector< Dimensions, int > &adjacentCell)
 The standard stencil spans 2^d cells adjacent to a vertex.
 
ElementWiseAssemblyMatrix toolbox::finiteelements::getPoissonMatrixWithJumpingCoefficient (const tarch::la::Vector< Dimensions, double > &cellCentre, const tarch::la::Vector< Dimensions, double > &h, int integrationPointsPerAxis, std::function< double(const tarch::la::Vector< Dimensions, double > &)>)
 Integrate over element with a subvoxel scheme (cmp.