ug4
|
#include <local_finite_element_provider.h>
Classes | |
struct | DimLocalDoFSets |
struct | LocalDoFSets |
struct | LocalShapeFunctionSets |
Static Public Member Functions | |
static bool | continuous (const LFEID &id, bool bCreate=true) |
returns if a Local Shape Function Set is continuous More... | |
static const CommonLocalDoFSet & | get_dofs (const LFEID &id, bool bCreate=true) |
returns the common dof set for all reference objects of a dimension More... | |
static const LocalDoFSet & | get_dofs (ReferenceObjectID roid, const LFEID &id, bool bCreate=true) |
returns the local DoF set base for an id More... | |
template<int dim> | |
static void | register_set (const LFEID &id, ConstSmartPtr< DimLocalDoFSet< dim > > set) |
static void | register_set (const LFEID &id, ConstSmartPtr< LocalDoFSet > set) |
template<int dim, typename TShape , typename TGrad > | |
static void | register_set (const LFEID &id, ConstSmartPtr< LocalShapeFunctionSet< dim, TShape, TGrad > > set) |
register a local shape function set for a given reference element type More... | |
template<int dim, typename TShape , typename TGrad > | |
static const LocalShapeFunctionSet< dim, TShape, TGrad > & | get (ReferenceObjectID roid, const LFEID &id, bool bCreate=true) |
returns the Local Shape Function Set More... | |
template<int dim> | |
static const LocalShapeFunctionSet< dim > & | get (ReferenceObjectID roid, const LFEID &id, bool bCreate=true) |
returns the Local Shape Function Set More... | |
template<int dim, typename TShape , typename TGrad > | |
static ConstSmartPtr< LocalShapeFunctionSet< dim, TShape, TGrad > > | getptr (ReferenceObjectID roid, const LFEID &id, bool bCreate=true) |
returns the Local Shape Function Set More... | |
template<int dim> | |
static ConstSmartPtr< LocalShapeFunctionSet< dim > > | getptr (ReferenceObjectID roid, const LFEID &id, bool bCreate=true) |
returns the Local Shape Function Set More... | |
template<int dim> | |
static const DimLocalDoFSet< dim > & | get_dofs (ReferenceObjectID roid, const LFEID &id, bool bCreate=true) |
template<int dim> | |
static ConstSmartPtr< DimLocalDoFSet< dim > > | get_dof_ptr (ReferenceObjectID roid, const LFEID &id, bool bCreate=true) |
Private Member Functions | |
LocalFiniteElementProvider () | |
LocalFiniteElementProvider (const LocalFiniteElementProvider &) | |
LocalFiniteElementProvider & | operator= (const LocalFiniteElementProvider &) |
~LocalFiniteElementProvider () | |
Static Private Member Functions | |
static void | create_dof_set (ReferenceObjectID roid, const LFEID &id) |
static void | create_set (const LFEID &id) |
creates new set at runtime if available More... | |
static void | create_set (ReferenceObjectID roid, const LFEID &id) |
creates new set at runtime if available More... | |
template<int rdim, int dim> | |
static void | create_sub_dof_set (ReferenceObjectID roid, const LFEID &id) |
creates dof set on sub elements More... | |
static LocalFiniteElementProvider & | inst () |
template<int dim> | |
static std::map< LFEID, DimLocalDoFSets< dim > > & | lds_map () |
template<int dim, typename TShape , typename TGrad > | |
static std::map< LFEID, LocalShapeFunctionSets< dim, TShape, TGrad > > & | lsfs_map () |
template<typename TRefElem > | |
static void | create_lagrange_set (const LFEID &id) |
static void | create_lagrange_set (ReferenceObjectID roid, const LFEID &id) |
template<typename TRefElem > | |
static void | create_mini_bubble_set (const LFEID &id) |
static void | create_mini_bubble_set (ReferenceObjectID roid, const LFEID &id) |
template<typename TRefElem > | |
static void | create_nedelec_set (const LFEID &id) |
static void | create_nedelec_set (ReferenceObjectID roid, const LFEID &id) |
template<typename TRefElem > | |
static void | create_piecewise_constant_set (const LFEID &id) |
static void | create_piecewise_constant_set (ReferenceObjectID roid, const LFEID &id) |
template<typename TRefElem > | |
static void | create_crouxeiz_raviart_set (const LFEID &id) |
static void | create_crouxeiz_raviart_set (ReferenceObjectID roid, const LFEID &id) |
Static Private Attributes | |
static std::map< LFEID, CommonLocalDoFSet > | m_mCommonDoFSet |
static std::map< LFEID, bool > | m_mContSpace |
static std::map< LFEID, LocalDoFSets > | m_mLocalDoFSets |
class to provide infos on local finite elements
This class provides references to Local Shape functions and Local DoF Sets. It is implemented as a Singleton.
|
private |
|
private |
|
private |
|
static |
returns if a Local Shape Function Set is continuous
References create_set(), m_mContSpace, and UG_THROW.
Referenced by ug::GlobalGridFunctionNumberData< TGridFunction, elemDim >::continuous(), ug::GridFunctionNumberData< TGridFunction >::continuous(), ug::GridFunctionVectorData< TGridFunction >::continuous(), ug::ExplicitGridFunctionValue< TGridFunction >::continuous(), ug::ExplicitGridFunctionVector< TGridFunction >::continuous(), ug::ValueDataExport< dim >::continuous(), ug::VectorDataExport< dim >::continuous(), ug::GlobalGridFunctionNumberData< TGridFunction, elemDim >::evaluate_global(), ug::VTKOutput< TDim >::write_cell_values_piece(), ug::VTKOutput< TDim >::write_grid_solution_piece(), and ug::VTKOutput< TDim >::write_nodal_values_piece().
|
staticprivate |
creates crouxeiz-raviart space
References ug::LFEID::CROUZEIX_RAVIART, dim, and register_set().
Referenced by create_set().
|
staticprivate |
creates crouxeiz-raviart space
References ug::ROID_HEXAHEDRON, ug::ROID_PRISM, ug::ROID_PYRAMID, ug::ROID_QUADRILATERAL, ug::ROID_TETRAHEDRON, and ug::ROID_TRIANGLE.
|
staticprivate |
References create_set(), dim, ug::ReferenceElementDimension(), and UG_THROW.
Referenced by get_dof_ptr(), and get_dofs().
|
staticprivate |
|
staticprivate |
create the standard lagrange space
References ug::DID_LOCAL_FINITE_ELEMENT_PROVIDER, ug::LFEID::LAGRANGE, register_set(), ug::ROID_EDGE, ug::ROID_HEXAHEDRON, ug::ROID_OCTAHEDRON, ug::ROID_PRISM, ug::ROID_PYRAMID, ug::ROID_QUADRILATERAL, ug::ROID_TETRAHEDRON, ug::ROID_TRIANGLE, ug::ROID_VERTEX, and UG_DLOG.
|
staticprivate |
create the mini bubble space
References dim, ug::LFEID::LAGRANGE, ug::LFEID::MINI, and register_set().
Referenced by create_set().
|
staticprivate |
create the mini bubble space
References ug::ROID_EDGE, ug::ROID_QUADRILATERAL, ug::ROID_TETRAHEDRON, and ug::ROID_TRIANGLE.
|
staticprivate |
creates nedelec space
References dim, ug::LFEID::NEDELEC, and register_set().
Referenced by create_set().
|
staticprivate |
creates nedelec space
References ug::ROID_TETRAHEDRON, and ug::ROID_TRIANGLE.
|
staticprivate |
creates piecewise constant space
References dim, ug::LFEID::PIECEWISE_CONSTANT, and register_set().
Referenced by create_set().
|
staticprivate |
creates piecewise constant space
References ug::ROID_EDGE, ug::ROID_HEXAHEDRON, ug::ROID_OCTAHEDRON, ug::ROID_PRISM, ug::ROID_PYRAMID, ug::ROID_QUADRILATERAL, ug::ROID_TETRAHEDRON, and ug::ROID_TRIANGLE.
|
staticprivate |
creates new set at runtime if available
References create_set(), ug::LFEID::CROUZEIX_RAVIART, dim, ug::LFEID::LAGRANGE, ug::LFEID::MINI, ug::LFEID::NEDELEC, ug::NUM_REFERENCE_OBJECTS, ug::LFEID::PIECEWISE_CONSTANT, and ug::ReferenceElementDimension().
|
staticprivate |
creates new set at runtime if available
References create_crouxeiz_raviart_set(), create_lagrange_set(), create_mini_bubble_set(), create_nedelec_set(), create_piecewise_constant_set(), ug::LFEID::CROUZEIX_RAVIART, ug::LFEID::LAGRANGE, ug::LFEID::MINI, ug::LFEID::NEDELEC, ug::LFEID::PIECEWISE_CONSTANT, and UG_CATCH_THROW.
Referenced by continuous(), create_dof_set(), create_set(), get_dofs(), and getptr().
|
staticprivate |
creates dof set on sub elements
References dim, ug::ReferenceElementProvider::get(), ConstSmartPtr< T, FreePolicy >::invalid(), ug::ReferenceElement::num(), ug::NUM_REFERENCE_OBJECTS, ug::ReferenceElementDimension(), UG_CATCH_THROW, UG_THROW, and ConstSmartPtr< T, FreePolicy >::valid().
|
static |
returns the Local Shape Function Set
This function returns the Local Shape Function Set for a reference element type and an Identifier if a set has been registered for the identifier. Else an exception is thrown.
[in] | roid | Reference object id |
[in] | id | Identifier for local shape function set |
References dim, UG_THROW, and ConstSmartPtr< T, FreePolicy >::valid().
|
inlinestatic |
returns the Local Shape Function Set
This function returns the Local Shape Function Set for a reference element type and an Identifier if a set has been registered for the identifier. Else an exception is thrown.
[in] | roid | Reference object id |
[in] | id | Identifier for local shape function set |
|
static |
returns the local DoF set base for an id
References create_dof_set(), dim, inst(), lds_map(), and SPNULL.
|
static |
returns the common dof set for all reference objects of a dimension
References create_set(), inst(), m_mCommonDoFSet, and UG_THROW.
Referenced by ug::DoFDistributionInfo::create_offsets(), ug::DoFPositionVertex(), get_dofs(), ug::InnerDoFPositionVertex(), ug::OrderDirectionYForDofDist(), ug::OrderDirectionZForDofDist(), and ug::OrderLexForDofDist().
|
static |
returns the local DoF set base for an id
References create_dof_set(), get_dofs(), inst(), m_mLocalDoFSets, and UG_THROW.
|
static |
returns the local DoF set base for an id
References dim, UG_THROW, and ConstSmartPtr< T, FreePolicy >::valid().
|
static |
returns the Local Shape Function Set
This function returns the Local Shape Function Set for a reference element type and an Identifier if a set has been registered for the identifier. Else an exception is thrown.
[in] | roid | Reference object id |
[in] | id | Identifier for local shape function set |
References create_set(), dim, inst(), lsfs_map(), and SPNULL.
|
inlinestatic |
returns the Local Shape Function Set
This function returns the Local Shape Function Set for a reference element type and an Identifier if a set has been registered for the identifier. Else an exception is thrown.
[in] | roid | Reference object id |
[in] | id | Identifier for local shape function set |
|
inlinestaticprivate |
Referenced by get_dof_ptr(), get_dofs(), getptr(), and register_set().
|
staticprivate |
Referenced by get_dof_ptr(), and register_set().
|
staticprivate |
Referenced by getptr(), and register_set().
|
private |
|
static |
register a local DoF set for a given reference element type This function is used to register a Local Shape Function set for an element type and the corresponding local DoF set id.
[in] | id | Identifier for local DoF set |
[in] | set | Local Shape Function Set to register |
References dim, inst(), lds_map(), register_set(), and UG_THROW.
|
static |
register a local DoF set for a given reference element type This function is used to register a Local Shape Function set for an element type and the corresponding local DoF set id.
[in] | id | Identifier for local DoF set |
[in] | set | Local Shape Function Set to register |
References m_mCommonDoFSet, m_mLocalDoFSets, and ug::UGError::push_msg().
|
static |
register a local shape function set for a given reference element type
This function is used to register a Local Shape Function set for an element type and the corresponding local shape function set id.
[in] | id | Identifier for local shape function set |
[in] | roid | Reference Object id |
[in] | set | Local Shape Function Set to register |
References dim, inst(), lsfs_map(), m_mContSpace, and UG_THROW.
Referenced by create_crouxeiz_raviart_set(), create_lagrange_set(), create_mini_bubble_set(), create_nedelec_set(), create_piecewise_constant_set(), and register_set().
|
staticprivate |
Referenced by get_dofs(), and register_set().
|
staticprivate |
Referenced by continuous(), and register_set().
|
staticprivate |
Referenced by get_dofs(), and register_set().