dune-pdelab  2.7-git
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Dune::PDELab::GridFunctionSpace< ES, FEM, CE, B, O > Class Template Reference

A grid function space. More...

#include <dune/pdelab/gridfunctionspace/gridfunctionspace.hh>

Inheritance diagram for Dune::PDELab::GridFunctionSpace< ES, FEM, CE, B, O >:
Inheritance graph

Classes

struct  ConstraintsContainer
 extract type for storing constraints More...
 

Public Types

typedef GridFunctionSpaceTraits< ES, FEM, CE, B, O > Traits
 export Traits class More...
 
typedef ES::Traits::template Codim< 0 >::Entity Element
 
typedef ES::Traits::template Codim< 0 >::Iterator ElementIterator
 
typedef O SizeTag
 
typedef O OrderingTag
 
typedef LeafGridFunctionSpaceTag ImplementationTag
 
typedef ordering_transformation::Type Ordering
 
typedef std::size_t size_type
 

Public Member Functions

 GridFunctionSpace (const typename Traits::GridView &gridview, const FEM &fem, const CE &ce, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag())
 constructor More...
 
 GridFunctionSpace (const typename Traits::GridView &gridview, const std::shared_ptr< const FEM > &fem, const std::shared_ptr< const CE > &ce, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag())
 constructor More...
 
 GridFunctionSpace (const typename Traits::GridView &gridview, const FEM &fem, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag())
 constructor More...
 
 GridFunctionSpace (const typename Traits::GridView &gridview, const std::shared_ptr< const FEM > &fem, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag())
 constructor More...
 
 GridFunctionSpace (typename Traits::EntitySet entitySet, const FEM &fem, const CE &ce, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag())
 Construct a new Grid Function Space object. More...
 
 GridFunctionSpace (typename Traits::EntitySet entitySet, const std::shared_ptr< const FEM > &fem, const std::shared_ptr< const CE > &ce, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag())
 
 GridFunctionSpace (typename Traits::EntitySet entitySet, const FEM &fem, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag())
 
 GridFunctionSpace (typename Traits::EntitySet entitySet, const std::shared_ptr< const FEM > &fem, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag())
 
const FEM & finiteElementMap () const
 get finite element map More...
 
std::shared_ptr< const FEM > finiteElementMapStorage () const
 get finite element map More...
 
const Traits::ConstraintsTypeconstraints () const
 return constraints engine More...
 
std::shared_ptr< const CE > constraintsStorage () const
 return storage of constraints engine More...
 
const Orderingordering () const
 Direct access to the DOF ordering. More...
 
Orderingordering ()
 Direct access to the DOF ordering. More...
 
std::shared_ptr< const OrderingorderingStorage () const
 Direct access to the storage of the DOF ordering. More...
 
std::shared_ptr< OrderingorderingStorage ()
 Direct access to the storage of the DOF ordering. More...
 
Traits::SizeType size () const
 
Traits::SizeType blockCount () const
 
Traits::SizeType globalSize () const
 
Traits::SizeType maxLocalSize () const
 get max dimension of shape function space More...
 
void update (bool force=false)
 Update the indexing information of the GridFunctionSpace. More...
 
const std::string & name () const
 
void name (const std::string &name)
 
Traits::Backendbackend ()
 
const Traits::Backendbackend () const
 
const Traits::GridViewgridView () const
 get grid view More...
 
const Traits::EntitySetentitySet () const
 get entity set More...
 
Traits::EntitySetentitySet ()
 get entity set More...
 
void setEntitySet (typename Traits::EntitySet entity_set)
 Set the Entity Set object to this grid function space. More...
 
Traits::OrderingTagorderingTag ()
 
const Traits::OrderingTagorderingTag () const
 
bool isRootSpace () const
 
Output::DataSetType dataSetType () const
 Return the data set type of this function. More...
 
void setDataSetType (Output::DataSetType dataSetType)
 Set the data set type of this function. More...
 
bool dataHandleContains (int codim) const
 returns true if data for this codim should be communicated More...
 
bool dataHandleFixedSize (int codim) const
 returns true if size per entity of given dim and codim is a constant More...
 
constexpr bool sendLeafSizes () const
 Returns true if the sizes of the leaf orderings in this tree should be sent as part of the communcation. More...
 
size_type dataHandleSize (const Entity &e) const
 
void setup_dof_indices (V &v, size_type n, const EntityIndex &ei, std::integral_constant< bool, true >) const
 
void setup_dof_indices (V &v, size_type n, const EntityIndex &ei, std::integral_constant< bool, false >) const
 
V::iterator dof_indices_begin (V &v, std::integral_constant< bool, true >) const
 
DummyDOFIndexIterator dof_indices_begin (V &v, std::integral_constant< bool, false >) const
 
void dataHandleIndices (const Entity &e, std::vector< ContainerIndex > &container_indices, std::vector< DOFIndex > &dof_indices, OffsetIterator oit, std::integral_constant< bool, map_dof_indices > map_dof_indices_value) const
 return vector of global indices associated with the given entity More...
 

Protected Member Functions

void update (Ordering &ordering) const
 
const GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > & gfs () const
 

Protected Attributes

std::optional< typename Traits::EntitySet_entity_set
 

Detailed Description

template<typename ES, typename FEM, typename CE = NoConstraints, typename B = ISTL::VectorBackend<>, typename O = DefaultLeafOrderingTag>
class Dune::PDELab::GridFunctionSpace< ES, FEM, CE, B, O >

A grid function space.

Representation of a function space in a grid. Here, the entity set.

Template Parameters
ESEntity Set type (See PartitionViewEntitySet). Respresents the sub set of entities where the finite element map has support.
FEMType implementing FiniteElementMapInterface. A map from entity to local finite element.
CEType for constraints assembler
BBackend type
OOrdering tag
Examples
recipe-blocking.cc, recipe-communication.cc, recipe-geometry-grid.cc, recipe-linear-system-assembly.cc, recipe-linear-system-solution-istl.cc, recipe-linear-system-solution-pdelab.cc, and recipe-operator-splitting.cc.

Member Typedef Documentation

◆ size_type

Member Function Documentation

◆ backend() [1/2]

◆ backend() [2/2]

◆ blockCount()

◆ dataHandleContains()

bool Dune::PDELab::DataHandleProvider< GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > >::dataHandleContains ( int  codim) const
inlineinherited

returns true if data for this codim should be communicated

◆ dataHandleFixedSize()

bool Dune::PDELab::DataHandleProvider< GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > >::dataHandleFixedSize ( int  codim) const
inlineinherited

returns true if size per entity of given dim and codim is a constant

◆ dataHandleIndices()

void Dune::PDELab::DataHandleProvider< GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > >::dataHandleIndices ( const Entity &  e,
std::vector< ContainerIndex > &  container_indices,
std::vector< DOFIndex > &  dof_indices,
OffsetIterator  oit,
std::integral_constant< bool, map_dof_indices >  map_dof_indices_value 
) const
inlineinherited

return vector of global indices associated with the given entity

◆ dataHandleSize()

size_type Dune::PDELab::DataHandleProvider< GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > >::dataHandleSize ( const Entity &  e) const
inlineinherited

how many objects of type DataType have to be sent for a given entity

Note: Only the sender side needs to know this size.

◆ dataSetType()

Output::DataSetType Dune::PDELab::GridFunctionOutputParameters::dataSetType ( ) const
inlineinherited

Return the data set type of this function.

◆ dof_indices_begin() [1/2]

DummyDOFIndexIterator Dune::PDELab::DataHandleProvider< GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > >::dof_indices_begin ( V &  v,
std::integral_constant< bool, false >   
) const
inlineinherited

◆ dof_indices_begin() [2/2]

V::iterator Dune::PDELab::DataHandleProvider< GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > >::dof_indices_begin ( V &  v,
std::integral_constant< bool, true >   
) const
inlineinherited

◆ entitySet() [1/2]

get entity set

◆ entitySet() [2/2]

get entity set

◆ gfs()

◆ globalSize()

◆ gridView()

get grid view

◆ isRootSpace()

◆ maxLocalSize()

get max dimension of shape function space

◆ name() [1/2]

◆ name() [2/2]

◆ orderingTag() [1/2]

◆ orderingTag() [2/2]

◆ sendLeafSizes()

constexpr bool Dune::PDELab::DataHandleProvider< GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > >::sendLeafSizes ( ) const
inlineconstexprinherited

Returns true if the sizes of the leaf orderings in this tree should be sent as part of the communcation.

The MultiDomain extensions require knowledge about the size of the individual orderings, which might belong to separate subdomains. Otherwise it is possible to have size mismatches for entities with codim > 0 if there are protruding edges in the parallel mesh partitioning.

By default, this method will always return false. It must be overridden for cases where the data actually needs to be sent.

This flag also modifies the behavior of the generic data handles, which will automatically send, receive and process the additional information. Note that if sendLeafSizes() returns true, the underlying DataHandleIF of the grid will always use the data type char to be able to send different types of data, which will automatically be marshalled to / from a byte stream.

◆ setDataSetType()

void Dune::PDELab::GridFunctionOutputParameters::setDataSetType ( Output::DataSetType  dataSetType)
inlineinherited

Set the data set type of this function.

◆ setEntitySet()

Set the Entity Set object to this grid function space.

The passed entity set will be stored and modified by the grid function space. In case of a tree, all entity sets below an entity blocking tag are expected to be the same, otherwise, the ordering will issue an exception. (e.g. compartments with different function spaces). Additionally, the root node in a grid function space tree may also contain a different partition which will be used in the assembly process (e.g. a union of all entity sets from leaf nodes). If no other entity set was given, the root node will usually take the first leaf node entity set.

Parameters
entity_setAn object of the type PartitionViewEntitySet

◆ setup_dof_indices() [1/2]

void Dune::PDELab::DataHandleProvider< GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > >::setup_dof_indices ( V &  v,
size_type  n,
const EntityIndex &  ei,
std::integral_constant< bool, false >   
) const
inlineinherited

◆ setup_dof_indices() [2/2]

void Dune::PDELab::DataHandleProvider< GridFunctionSpace< ES, FEM, NoConstraints, ISTL::VectorBackend<>, DefaultLeafOrderingTag > >::setup_dof_indices ( V &  v,
size_type  n,
const EntityIndex &  ei,
std::integral_constant< bool, true >   
) const
inlineinherited

◆ size()

◆ update() [1/2]

Update the indexing information of the GridFunctionSpace.

\ param force Set to true if the underlying grid has changed (e.g. due to adaptivity) to force an update of the embedded EntitySet.

◆ update() [2/2]

Member Data Documentation

◆ _entity_set


The documentation for this class was generated from the following file: