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, const EPointType pointType=POINTTYPE_DEFAULT)
 Factory method for line bases in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getQuadrilateralBasis (Intrepid2::EFunctionSpace fs, int polyOrder, const EPointType pointType=POINTTYPE_DEFAULT)
 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, const EPointType pointType=POINTTYPE_DEFAULT)
 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, const EPointType pointType=POINTTYPE_DEFAULT)
 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, const EPointType pointType=POINTTYPE_DEFAULT)
 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, const EPointType pointType=POINTTYPE_DEFAULT)
 Factory method for isotropic tetrahedron bases in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getTriangleBasis (Intrepid2::EFunctionSpace fs, int polyOrder, const EPointType pointType=POINTTYPE_DEFAULT)
 Factory method for isotropic triangle bases in the given family. More...
 
template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getBasis (const shards::CellTopology &cellTopo, Intrepid2::EFunctionSpace fs, int polyOrder, const EPointType pointType=POINTTYPE_DEFAULT)
 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 ( const shards::CellTopology &  cellTopo,
Intrepid2::EFunctionSpace  fs,
int  polyOrder,
const EPointType  pointType = POINTTYPE_DEFAULT 
)
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.
[in]pointType- type of lattice used for creating the DoF coordinates.

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 275 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,
const EPointType  pointType = POINTTYPE_DEFAULT 
)
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.
[in]pointType- type of lattice used for creating the DoF coordinates.

Definition at line 187 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,
const EPointType  pointType = POINTTYPE_DEFAULT 
)
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.
[in]pointType- type of lattice used for creating the DoF coordinates.

Definition at line 209 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getHexahedronBasis().

◆ getLineBasis()

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getLineBasis ( Intrepid2::EFunctionSpace  fs,
int  polyOrder,
const EPointType  pointType = POINTTYPE_DEFAULT 
)
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.
[in]pointType- type of lattice used for creating the DoF coordinates.

Definition at line 128 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,
const EPointType  pointType = POINTTYPE_DEFAULT 
)
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.
[in]pointType- type of lattice used for creating the DoF coordinates.

Definition at line 146 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,
const EPointType  pointType = POINTTYPE_DEFAULT 
)
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.
[in]pointType- type of lattice used for creating the DoF coordinates.

Definition at line 167 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getQuadrilateralBasis().

◆ getTetrahedronBasis()

template<class BasisFamily >
static BasisFamily::BasisPtr Intrepid2::getTetrahedronBasis ( Intrepid2::EFunctionSpace  fs,
int  polyOrder,
const EPointType  pointType = POINTTYPE_DEFAULT 
)
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.
[in]pointType- type of lattice used for creating the DoF coordinates.

Definition at line 229 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,
const EPointType  pointType = POINTTYPE_DEFAULT 
)
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.
[in]pointType- type of lattice used for creating the DoF coordinates.

Definition at line 250 of file Intrepid2_DerivedBasisFamily.hpp.

References Intrepid2::getTriangleBasis().

Referenced by Intrepid2::getTriangleBasis().