#include <functionspace.hpp>
FunctionSpace
is a representation of a functional space parametrized by the type of the mesh (MeshType
)
Public Types | |
typedef functionspace_signature::bind < A0, A1, A2, A3, A4 >::type | args |
typedef parameter::binding < args, tag::bases_list, detail::bases< Lagrange < 1, Scalar > > >::type | bases_list |
typedef detail::bases2 < typename mpl::transform < bases_list, GetComponentBasis< mpl::_1 > , mpl::back_inserter < fusion::vector<> > >::type > | component_basis_vector_type |
typedef mpl::transform < bases_list, ChangeBasisToComponentBasis < mpl::_1 > , mpl::back_inserter < fusion::vector<> > >::type | component_functionspace_vector_type |
typedef mpl::transform < bases_list, ChangeBasis < mpl::_1 > , mpl::back_inserter < fusion::vector<> > >::type | functionspace_vector_type |
typedef parameter::binding < args, tag::mesh_type >::type | meshes_list |
typedef parameter::binding < args, tag::periodicity_type, Periodicity< NoPeriodicity > >::type | periodicity_type |
typedef parameter::binding < args, tag::value_type, double >::type | value_type |
Typedefs | |
typedef ublas::type_traits < value_type >::real_type | real_type |
typedef node< value_type >::type | node_type |
typedef FunctionSpace< A0, A1, A2, A3, A4 > | functionspace_type |
typedef boost::shared_ptr < functionspace_type > | functionspace_ptrtype |
typedef boost::shared_ptr < functionspace_type > | pointer_type |
typedef FunctionSpace < meshes_list, component_basis_vector_type, value_type, periodicity_type > | component_functionspace_type |
typedef boost::shared_ptr < component_functionspace_type > | component_functionspace_ptrtype |
typedef bases_list | BasisType |
typedef mpl::if_< mpl::bool_ < is_composite > , mpl::identity< bases_list > , mpl::identity< basis_0_type > >::type::type | basis_type |
typedef boost::shared_ptr < basis_type > | basis_ptrtype |
typedef basis_type | reference_element_type |
typedef boost::shared_ptr < reference_element_type > | reference_element_ptrtype |
typedef reference_element_type | fe_type |
typedef reference_element_ptrtype | fe_ptrtype |
typedef mpl::if_< mpl::bool_ < is_composite > , mpl::identity< boost::none_t > , mpl::identity< typename basis_0_type::PreCompute > >::type | pc_type |
typedef boost::shared_ptr < pc_type > | pc_ptrtype |
typedef mpl::if_< mpl::bool_ < is_composite > , mpl::identity < component_basis_vector_type > , typename mpl::at_c < component_basis_vector_type, 0 > ::type::template apply< nDim, nRealDim, value_type, convex_type > >::type::type | component_basis_type |
typedef boost::shared_ptr < component_basis_type > | component_basis_ptrtype |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 1 > >, mpl::identity < typename mesh_type::trace_mesh_type > , mpl::identity< mpl::void_ > >::type::type | trace_mesh_type |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 1 > >, mpl::identity < typename mesh_type::trace_mesh_ptrtype > , mpl::identity< mpl::void_ > >::type::type | trace_mesh_ptrtype |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 1 > >, mpl::identity < FunctionSpace < trace_mesh_type, bases_list > >, mpl::identity< mpl::void_ > >::type::type | trace_functionspace_type |
typedef boost::shared_ptr < trace_functionspace_type > | trace_functionspace_ptrtype |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 1 > >, mpl::identity < typename mesh_type::trace_trace_mesh_type > , mpl::identity< mpl::void_ > >::type::type | trace_trace_mesh_type |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 1 > >, mpl::identity < typename mesh_type::trace_trace_mesh_ptrtype > , mpl::identity< mpl::void_ > >::type::type | trace_trace_mesh_ptrtype |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 1 > >, mpl::identity < FunctionSpace < trace_trace_mesh_type, bases_list > >, mpl::identity < mpl::void_ > >::type::type | trace_trace_functionspace_type |
typedef boost::shared_ptr < trace_trace_functionspace_type > | trace_trace_functionspace_ptrtype |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 0 > >, mpl::identity < typename mesh_type::gm_type > , mpl::identity< mpl::void_ > >::type::type | gm_type |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 0 > >, mpl::identity < typename mesh_type::gm1_type > , mpl::identity< mpl::void_ > >::type::type | gm1_type |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 0 > >, mpl::identity < typename mesh_type::element_type > , mpl::identity< mpl::void_ > >::type::type | geoelement_type |
typedef boost::shared_ptr < gm_type > | gm_ptrtype |
typedef boost::shared_ptr < gm1_type > | gm1_ptrtype |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 0 > >, mpl::identity < typename gm_type::template Context< vm::POINT|vm::JACOBIAN|vm::HESSIAN|vm::KB, geoelement_type > >, mpl::identity< mpl::void_ > >::type::type | gmc_type |
typedef boost::shared_ptr < gmc_type > | gmc_ptrtype |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 0 > >, mpl::identity < typename gm_type::precompute_ptrtype > , mpl::identity< mpl::void_ > >::type::type | geopc_ptrtype |
typedef mpl::if_< mpl::greater < mpl::int_< nDim >, mpl::int_ < 0 > >, mpl::identity < typename gm_type::precompute_type > , mpl::identity< mpl::void_ > >::type::type | geopc_type |
typedef mpl::if_< mpl::bool_ < is_composite > , mpl::identity< DofComposite > , mpl::identity< DofTable < mesh_type, basis_type, periodicity_0_type > > >::type::type | dof_type |
typedef boost::shared_ptr < dof_type > | dof_ptrtype |
typedef mpl::if_ < mpl::equal_to< mpl::int_ < N_COMPONENTS >, mpl::int_ < 1 > >, mpl::identity < value_type >, mpl::identity < node_type > >::type::type | return_type |
typedef boost::function < return_type(node_type const &)> | function_type |
typedef Element< value_type > | element_type |
typedef Element< value_type > | real_element_type |
typedef boost::shared_ptr < element_type > | element_ptrtype |
typedef std::map< size_type, std::vector< size_type > > | proc_dist_map_type |
Public Member Functions | |
BOOST_MPL_ASSERT_NOT ((boost::is_same< mpl::at< bases_list, mpl::int_< 0 > >, mpl::void_ >)) | |
FunctionSpace (FunctionSpace const &__fe) | |
Operator overloads | |
void | operator() (MESH_CHANGES mesh_changes) |
Accessors | |
template<typename Context_t > | |
matrix_node< value_type >::type | ptsInContext (Context_t const &context, mpl::int_< 2 >) const |
uint16_type | qDim () const |
size_type | nDof () const |
size_type | nLocalDof () const |
size_type | nLocalDofWithGhost () const |
size_type | nLocalDofWithoutGhost () const |
size_type | nLocalDofWithGhostOnProc (const int proc) const |
size_type | nLocalDofWithoutGhostOnProc (const int proc) const |
proc_dist_map_type | getProcDistMap () const |
size_type | nDofStart (size_type i=0) const |
size_type | nLocalDofStart (size_type i=0) const |
size_type | nLocalDofWithGhostStart (size_type i=0) const |
size_type | nLocalDofWithoutGhostStart (size_type i=0) const |
size_type | nLocalDofWithGhostOnProcStart (const int proc, size_type i=0) const |
size_type | nLocalDofWithoutGhostOnProcStart (const int proc, size_type i=0) const |
uint16_type | nSubFunctionSpace () const |
size_type | nDofPerComponent () const |
mesh_ptrtype & | mesh () |
mesh_ptrtype const & | mesh () const |
template<int i> | |
GetMesh< mesh_ptrtype, i >::type | mesh () const |
template<int i> | |
GetMesh< mesh_ptrtype, i >::type | mesh (mpl::bool_< true >) const |
template<int i> | |
GetMesh< mesh_ptrtype, i >::type | mesh (mpl::bool_< false >) const |
basis_ptrtype const & | basis () const |
std::string | basisName () const |
std::string | basisName (mpl::bool_< true >) const |
std::string | basisName (mpl::bool_< false >) const |
std::vector< int > | basisOrder () const |
std::vector< int > | basisOrder (mpl::bool_< true >) const |
std::vector< int > | basisOrder (mpl::bool_< false >) const |
reference_element_ptrtype const & | fe () const |
gm_ptrtype const & | gm () const |
gm1_ptrtype const & | gm1 () const |
DataMap const & | map () const |
DataMap const & | mapOn () const |
DataMap const & | mapOnOff () const |
dof_ptrtype | dof () |
dof_ptrtype | dofOn () |
dof_ptrtype | dofOnOff () |
dof_ptrtype const & | dof () const |
dof_ptrtype const & | dofOn () const |
dof_ptrtype const & | dofOnOff () const |
functionspace_vector_type const & | functionSpaces () const |
std::vector< std::vector < size_type > > | dofIndexSplit () |
element_type | element (std::string const &name="u") |
element_ptrtype | elementPtr (std::string const &name="u") |
template<int i> | |
mpl::at_c < functionspace_vector_type, i > ::type | functionSpace () |
component_functionspace_ptrtype const & | compSpace () const |
trace_functionspace_ptrtype | trace () const |
template<typename RangeT > | |
trace_functionspace_ptrtype | trace (RangeT range) const |
trace_trace_functionspace_ptrtype | wireBasket () const |
template<typename RangeT > | |
trace_trace_functionspace_ptrtype | wireBasket (RangeT range) const |
bool | hasRegionTree () const |
region_tree_ptrtype const & | regionTree () const |
void | updateRegionTree () const |
bool | findPoint (node_type const &pt, size_type &cv, node_type &ptr) const |
void | rebuildDofPoints () |
Methods | |
void | printInfo () const |
![]() | |
virtual | ~FunctionSpaceBase () |
destructor | |
FunctionSpaceBase & | operator= (FunctionSpaceBase const &o) |
copy operator | |
Protected Attributes | |
component_functionspace_ptrtype | M_comp_space |
component fe space | |
dof_ptrtype | M_dof |
Degrees of freedom. | |
dof_ptrtype | M_dofOnOff |
Degrees of freedom (only init wiht mpi) | |
mesh_ptrtype | M_mesh |
reference_element_ptrtype | M_ref_fe |
finite element reference type | |
boost::optional < region_tree_ptrtype > | M_rt |
boost::shared_ptr< WorldComm > | M_worldComm |
std::vector< WorldComm > | M_worldsComm |
Friends | |
class | ComponentSpace |
Constants | |
typedef meshes_list | MeshesListType |
typedef GetMesh< meshes_list, 0 > ::type | mesh_0_type |
typedef mpl::if_ < boost::is_base_of< MeshBase, meshes_list >, mpl::identity < meshes_list >, mpl::identity < mesh_0_type > >::type::type | mesh_type |
typedef mpl::if_ < boost::is_base_of< MeshBase, meshes_list >, mpl::identity < boost::shared_ptr< mesh_type > >, mpl::identity< typename mpl::transform< meshes_list, ChangeToMeshPtr< mpl::_1 > , mpl::back_inserter< meshes <> > >::type > >::type::type | mesh_ptrtype |
typedef mpl::if_ < boost::is_base_of< MeshBase, meshes_list >, mpl::identity < typename mesh_type::element_type > , mpl::identity< typename mesh_0_type::element_type > >::type::type | convex_type |
typedef mpl::at_c< bases_list, 0 > ::type::template apply < GetMesh< meshes_list, 0 > ::type::nDim, GetMesh < meshes_list, 0 > ::type::nRealDim, value_type, typename GetMesh< meshes_list, 0 > ::type::element_type >::type | basis_0_type |
typedef basis_0_type::continuity_type | continuity_type |
typedef GetPeriodicity < periodicity_type, 0 >::type | periodicity_0_type |
static const bool | is_composite = ( mpl::size<bases_list>::type::value > 1 ) |
static const uint16_type | nDim |
static const uint16_type | nRealDim |
static const uint16_type | rank = ( is_composite? invalid_uint16_type_value : basis_0_type::rank ) |
static const bool | is_scalar = ( is_composite? false : basis_0_type::is_scalar ) |
static const bool | is_vectorial = ( is_composite? false : basis_0_type::is_vectorial ) |
static const bool | is_tensor2 = ( is_composite? false : basis_0_type::is_tensor2 ) |
static const bool | is_continuous = ( is_composite? false : basis_0_type::isContinuous ) |
static const bool | is_modal = ( is_composite? false : basis_0_type::is_modal ) |
static const uint16_type | nComponents1 = ( is_composite? invalid_uint16_type_value : basis_0_type::nComponents1 ) |
static const uint16_type | nComponents2 = ( is_composite? invalid_uint16_type_value : basis_0_type::nComponents2 ) |
static const bool | is_product = ( is_composite? invalid_uint16_type_value : basis_0_type::is_product ) |
static const uint16_type | nComponents |
static const uint16_type | N_COMPONENTS = nComponents |
static const uint16_type | nSpaces = mpl::size<bases_list>::type::value |
static const bool | is_periodic = periodicity_0_type::is_periodic |
Constructors, destructor | |
FunctionSpace (mesh_ptrtype const &mesh, size_type mesh_components=MESH_RENUMBER|MESH_CHECK, periodicity_type periodicity=periodicity_type(), std::vector< WorldComm > const &_worldsComm=Environment::worldsComm(nSpaces)) | |
FunctionSpace (mesh_ptrtype const &mesh, std::vector< Dof > const &dofindices, periodicity_type periodicity=periodicity_type(), std::vector< WorldComm > const &_worldsComm=Environment::worldsComm(nSpaces)) | |
void | init (mesh_ptrtype const &mesh, size_type mesh_components=MESH_RENUMBER|MESH_CHECK, periodicity_type periodicity=periodicity_type()) |
void | init (mesh_ptrtype const &mesh, size_type mesh_components, std::vector< Dof > const &dofindices, periodicity_type periodicity=periodicity_type()) |
~FunctionSpace () | |
destructor: do nothing thanks to shared_ptr<> | |
void | setWorldsComm (std::vector< WorldComm > const &_worldsComm) |
void | setWorldComm (WorldComm const &_worldComm) |
std::vector< WorldComm > const & | worldsComm () const |
WorldComm const & | worldComm () const |
bool | hasEntriesForAllSpaces () |
static pointer_type | New (mesh_ptrtype const &__m, std::vector< Dof > const &dofindices) |
static pointer_type | NewImpl (mesh_ptrtype const &__m, size_type mesh_components=MESH_RENUMBER|MESH_CHECK, periodicity_type periodicity=periodicity_type()) |
|
inline |
FunctionSpace
constructor
mesh | a mesh data structure |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::init().
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_ref_fe.
|
inline |
|
inline |
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_comp_space.
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_dof.
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_dof.
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_dof.
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_dof.
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_dofOnOff.
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_dofOnOff.
|
inline |
|
inline |
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_ref_fe.
bool Feel::FunctionSpace< A0, A1, A2, A3, A4 >::findPoint | ( | node_type const & | pt, |
size_type & | cv, | ||
node_type & | ptr | ||
) | const |
find a point(real coordinate) pt
in the mesh associated with the space and provide: (i) the reference coordinates ptr
and (ii) the index of the element containing it.
pt | point to be looked for (real coordinates) |
ptr | reference coordinates of the point |
cv | index of the element containing the point pt |
References Feel::invalid_size_type_value.
|
inline |
get the i
-th FunctionSpace
out the list
|
inline |
get the FunctionSpace
vector
|
inline |
|
inline |
|
inline |
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_rt.
|
inline |
initialize the function space
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_dof.
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_dof.
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::M_dofOnOff.
|
inline |
|
inline |
|
inline |
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::nDof(), and Feel::FunctionSpace< A0, A1, A2, A3, A4 >::qDim().
|
inline |
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::functionSpaces().
|
inlinestatic |
helper static function to create a boost::shared_ptr<> out of the FunctionSpace
|
inline |
|
inline |
update element when mesh has been changed
|
inline |
return 1 if scalar space or the number of components if vectorial space
|
inline |
rebuild dof points after a mesh mover for example
References Feel::FunctionSpace< A0, A1, A2, A3, A4 >::rebuildDofPoints().
region_tree_ptrtype const & Feel::FunctionSpace< A0, A1, A2, A3, A4 >::regionTree | ( | ) | const |
|
inline |
References Feel::boundaryfaces(), and Feel::FunctionSpace< A0, A1, A2, A3, A4 >::mesh().
void Feel::FunctionSpace< A0, A1, A2, A3, A4 >::updateRegionTree | ( | ) | const |
|
inline |
References Feel::markededges(), and Feel::FunctionSpace< A0, A1, A2, A3, A4 >::mesh().
|
mutableprotected |
region tree associated with the mesh
|
static |
|
static |
|
static |