Intrepid2
Classes | Functions
Intrepid2_DerivedBasisFamily.hpp File Reference

Stateless class representing a family of basis functions, templated on H(vol) and H(grad) on the line. Only hypercube topologies are supported at the moment, but the intent is ultimately to support all standard topologies. More...

#include "Intrepid2_Basis.hpp"
#include "Intrepid2_DerivedBasis_HGRAD_QUAD.hpp"
#include "Intrepid2_DerivedBasis_HCURL_QUAD.hpp"
#include "Intrepid2_DerivedBasis_HDIV_QUAD.hpp"
#include "Intrepid2_DerivedBasis_HVOL_QUAD.hpp"
#include "Intrepid2_DerivedBasis_HGRAD_HEX.hpp"
#include "Intrepid2_DerivedBasis_HCURL_HEX.hpp"
#include "Intrepid2_DerivedBasis_HDIV_HEX.hpp"
#include "Intrepid2_DerivedBasis_HVOL_HEX.hpp"

Go to the source code of this file.

Classes

class  Intrepid2::EmptyBasisFamily
 EmptyBasisFamily allows us to set a default void family for a given topology. More...
 
class  Intrepid2::DerivedBasisFamily< LineBasisHGRAD, LineBasisHVOL, TriangleBasisFamily, TetrahedronBasisFamily >
 A family of basis functions, constructed from H(vol) and H(grad) bases on the line. More...
 

Functions

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getLineBasis (Intrepid2::EFunctionSpace fs, int polyOrder)
 Factory method for line bases in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getQuadrilateralBasis (Intrepid2::EFunctionSpace fs, int polyOrder)
 Factory method for isotropic quadrilateral bases in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getQuadrilateralBasis (Intrepid2::EFunctionSpace fs, int polyOrder_x, int polyOrder_y)
 Factory method for potentially anisotropic quadrilateral bases in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getHexahedronBasis (Intrepid2::EFunctionSpace fs, int polyOrder)
 Factory method for isotropic bases on the hexahedron in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getHexahedronBasis (Intrepid2::EFunctionSpace fs, int polyOrder_x, int polyOrder_y, int polyOrder_z)
 Factory method for potentially anisotropic hexahedron bases in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getTetrahedronBasis (Intrepid2::EFunctionSpace fs, int polyOrder)
 Factory method for isotropic tetrahedron bases in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getTriangleBasis (Intrepid2::EFunctionSpace fs, int polyOrder)
 Factory method for isotropic triangle bases in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getBasis (shards::CellTopology &cellTopo, Intrepid2::EFunctionSpace fs, int polyOrder)
 Factory method for isotropic bases in the given family on the specified cell topology. More...
 

Detailed Description

Stateless class representing a family of basis functions, templated on H(vol) and H(grad) on the line. Only hypercube topologies are supported at the moment, but the intent is ultimately to support all standard topologies.

Author
Created by N.V. Roberts.

Definition in file Intrepid2_DerivedBasisFamily.hpp.

Function Documentation

◆ getBasis()

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getBasis ( shards::CellTopology &  cellTopo,
Intrepid2::EFunctionSpace  fs,
int  polyOrder 
)
static

Factory method for isotropic bases in the given family on the specified cell topology.

Parameters
[in]cellTopo- the cell topology on which the basis is defined.
[in]fs- the function space for the basis.
[in]polyOrder- the polynomial order of the basis.

At present, only hypercube topologies are supported. Once basis families support other element types, this method can be updated so that it also supports other element types.

Definition at line 258 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getBasis().

Referenced by Intrepid2::getBasis().

◆ getHexahedronBasis() [1/2]

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getHexahedronBasis ( Intrepid2::EFunctionSpace  fs,
int  polyOrder 
)
static

Factory method for isotropic bases on the hexahedron in the given family.

Parameters
[in]fs- the function space for the basis.
[in]polyOrder- the polynomial order of the basis.

Definition at line 176 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getHexahedronBasis().

Referenced by Intrepid2::getHexahedronBasis().

◆ getHexahedronBasis() [2/2]

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getHexahedronBasis ( Intrepid2::EFunctionSpace  fs,
int  polyOrder_x,
int  polyOrder_y,
int  polyOrder_z 
)
static

Factory method for potentially anisotropic hexahedron bases in the given family.

Parameters
[in]fs- the function space for the basis.
[in]polyOrder_x- the polynomial order of the basis in the x dimension.
[in]polyOrder_y- the polynomial order of the basis in the y dimension.
[in]polyOrder_z- the polynomial order of the basis in the z dimension.

Definition at line 197 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getHexahedronBasis().

◆ getLineBasis()

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getLineBasis ( Intrepid2::EFunctionSpace  fs,
int  polyOrder 
)
static

Factory method for line bases in the given family.

Parameters
[in]fs- the function space for the basis.
[in]polyOrder- the polynomial order of the basis.

Definition at line 120 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getLineBasis().

Referenced by Intrepid2::getLineBasis().

◆ getQuadrilateralBasis() [1/2]

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getQuadrilateralBasis ( Intrepid2::EFunctionSpace  fs,
int  polyOrder 
)
static

Factory method for isotropic quadrilateral bases in the given family.

Parameters
[in]fs- the function space for the basis.
[in]polyOrder- the polynomial order of the basis.

Definition at line 137 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getQuadrilateralBasis().

Referenced by Intrepid2::getQuadrilateralBasis().

◆ getQuadrilateralBasis() [2/2]

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getQuadrilateralBasis ( Intrepid2::EFunctionSpace  fs,
int  polyOrder_x,
int  polyOrder_y 
)
static

Factory method for potentially anisotropic quadrilateral bases in the given family.

Parameters
[in]fs- the function space for the basis.
[in]polyOrder_x- the polynomial order of the basis in the x dimension.
[in]polyOrder_y- the polynomial order of the basis in the y dimension.

Definition at line 157 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getQuadrilateralBasis().

◆ getTetrahedronBasis()

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getTetrahedronBasis ( Intrepid2::EFunctionSpace  fs,
int  polyOrder 
)
static

Factory method for isotropic tetrahedron bases in the given family.

Parameters
[in]fs- the function space for the basis.
[in]polyOrder- the polynomial order of the basis.

Definition at line 216 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getTetrahedronBasis().

Referenced by Intrepid2::getTetrahedronBasis().

◆ getTriangleBasis()

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getTriangleBasis ( Intrepid2::EFunctionSpace  fs,
int  polyOrder 
)
static

Factory method for isotropic triangle bases in the given family.

Parameters
[in]fs- the function space for the basis.
[in]polyOrder- the polynomial order of the basis.

Definition at line 235 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getTriangleBasis().

Referenced by Intrepid2::getTriangleBasis().