DUNE PDELab (2.7)
Modules | |
Finite Element Map | |
Ordering | |
Strict Trial and Test space handling | |
Enumerations | |
enum | { Dune::PDELab::PowerCompositeGridFunctionSpaceTraits< G, B, O, k >::isComposite = 1 , Dune::PDELab::PowerCompositeGridFunctionSpaceTraits< G, B, O, k >::noChilds = k } |
Functions | |
template<typename GFS , typename CG > | |
void | Dune::PDELab::constraints (const GFS &gfs, CG &cg, const bool verbose=false) |
construct constraints More... | |
template<typename P , typename GFS , typename CG > | |
void | Dune::PDELab::constraints (const P &p, const GFS &gfs, CG &cg, const bool verbose=false) |
construct constraints from given constraints parameter tree More... | |
template<typename CG , typename XG > | |
void | Dune::PDELab::set_constrained_dofs (const CG &cg, typename XG::ElementType x, XG &xg) |
construct constraints from given boundary condition function More... | |
template<typename CG , typename XG , typename Cmp > | |
bool | Dune::PDELab::check_constrained_dofs (const CG &cg, typename XG::ElementType x, XG &xg, const Cmp &cmp=Cmp()) |
check that constrained dofs match a certain value More... | |
template<typename CG , typename XG > | |
bool | Dune::PDELab::check_constrained_dofs (const CG &cg, typename XG::ElementType x, XG &xg) |
check that constrained dofs match a certain value More... | |
template<typename CG , typename XG > | |
void | Dune::PDELab::constrain_residual (const CG &cg, XG &xg) |
transform residual into transformed basis: r -> r~ More... | |
const Traits::FiniteElementType & | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::Traits::FEM::find (const typename GridView::template Codim< 0 >::Entity &element) const |
Get local basis functions for entity. More... | |
size_type | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::LeafOrdering::size (const typename DOFIndex::EntityIndex &entity) const |
Number of degrees of freedom per entity. | |
bool | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::LeafOrdering::contains (typename Traits::SizeType codim) const |
True if there is at least one entity of the given codim that has a dof. | |
bool | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::LeafOrdering::fixedSize (typename Traits::SizeType codim) const |
True if all entities of the given codimension have the same number of dofs. | |
size_type | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::Ordering::blockCount () const |
Same as size(), because block size is always 1. | |
bool | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::Ordering::contains (typename Traits::SizeType codim) const |
Returns true if there is at least one entity of the given codim for which data needs to be communicated. | |
bool | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::Ordering::fixedSize (typename Traits::SizeType codim) const |
True if for all entities of the given codim the same number of data items has to be communicated. | |
Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::GridFunctionSpace (std::shared_ptr< DFBasis > df_basis, std::shared_ptr< CE > ce) | |
constructor | |
const Traits::GridView & | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::gridView () const |
get grid view | |
const Traits::EntitySet & | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::entitySet () const |
get EntitySet | |
const auto & | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::finiteElementMap () const |
get finite element map | |
const Traits::ConstraintsType & | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::constraints () const |
return constraints engine | |
std::shared_ptr< const CE > | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::constraintsStorage () const |
return storage of constraints engine | |
const Ordering & | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::ordering () const |
Direct access to the DOF ordering. | |
void | Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::update (bool force=false) |
Update the indexing information of the GridFunctionSpace. More... | |
Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::GridFunctionSpace (const typename Traits::GridView &gridview, const FEM &fem, const CE &ce, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag()) | |
constructor | |
Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::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 | |
Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::GridFunctionSpace (const typename Traits::GridView &gridview, const FEM &fem, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag()) | |
constructor | |
Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::GridFunctionSpace (const typename Traits::GridView &gridview, const std::shared_ptr< const FEM > &fem, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag()) | |
constructor | |
Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::GridFunctionSpace (const typename Traits::EntitySet &entitySet, const FEM &fem, const CE &ce, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag()) | |
constructor | |
Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::GridFunctionSpace (const 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()) | |
constructor | |
Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::GridFunctionSpace (const typename Traits::EntitySet &entitySet, const FEM &fem, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag()) | |
constructor | |
Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::GridFunctionSpace (const typename Traits::EntitySet &entitySet, const std::shared_ptr< const FEM > &fem, const B &backend=B(), const OrderingTag &ordering_tag=OrderingTag()) | |
constructor | |
const Traits::GridView & | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::gridView () const |
get grid view | |
const Traits::EntitySet & | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::entitySet () const |
get EntitySet | |
const FEM & | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::finiteElementMap () const |
get finite element map | |
std::shared_ptr< const FEM > | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::finiteElementMapStorage () const |
get finite element map | |
const Traits::ConstraintsType & | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::constraints () const |
return constraints engine | |
std::shared_ptr< const CE > | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::constraintsStorage () const |
return storage of constraints engine | |
const Ordering & | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::ordering () const |
Direct access to the DOF ordering. | |
Ordering & | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::ordering () |
Direct access to the DOF ordering. | |
std::shared_ptr< const Ordering > | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::orderingStorage () const |
Direct access to the storage of the DOF ordering. | |
std::shared_ptr< Ordering > | Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::orderingStorage () |
Direct access to the storage of the DOF ordering. | |
Traits::SizeType | Dune::PDELab::GridFunctionSpaceBase< GFS, GFSTraits >::maxLocalSize () const |
get max dimension of shape function space | |
void | Dune::PDELab::GridFunctionSpaceBase< GFS, GFSTraits >::update (bool force=false) |
Update the indexing information of the GridFunctionSpace. More... | |
template<typename F , typename GFS , typename XG > | |
void | Dune::PDELab::interpolate (const F &f, const GFS &gfs, XG &xg) |
interpolation from a given grid function More... | |
const Traits::GridView & | Dune::PDELab::PowerCompositeGridFunctionSpaceBase< GridFunctionSpace, GV, B, O, k >::gridView () const |
get grid view | |
const Traits::EntitySet & | Dune::PDELab::PowerCompositeGridFunctionSpaceBase< GridFunctionSpace, GV, B, O, k >::entitySet () const |
get grid view partition | |
Variables | |
static const bool | Dune::PDELab::GridFunctionSpaceTraits< G, L, C, B, O >::isComposite = false |
True if this grid function space is composed of others. | |
template<typename CG , typename XG > | |
void | Dune::PDELab::copy_constrained_dofs (const CG &cg, const XG &xgin, XG &xgout) |
template<typename CG , typename XG > | |
void | Dune::PDELab::set_nonconstrained_dofs (const CG &cg, typename XG::ElementType x, XG &xg) |
template<typename CG , typename XG > | |
void | Dune::PDELab::copy_nonconstrained_dofs (const CG &cg, const XG &xgin, XG &xgout) |
template<typename CG , typename XG > | |
void | Dune::PDELab::set_shifted_dofs (const CG &cg, typename XG::ElementType x, XG &xg) |
Detailed Description
Typedef Documentation
◆ ContainerIndex
using Dune::PDELab::Experimental::GridFunctionSpace< DFBasis, VBE, CE >::LeafOrdering::Traits::ContainerIndex = PDELab::MultiIndex<std::size_t,1> |
The index to access containers with.
The implementation does not support blocking or other forms of multi-indices yet. Therefore the container index type is always a multi-index with one digit, i.e., an integer.
◆ GridFunctionSubSpace
using Dune::PDELab::GridFunctionSubSpace = typedef gfs::GridFunctionSubSpace<GFS,TreePath> |
Non-nesting implementation of GridFunctionSubSpace.
This is the actual implementation of GridFunctionSubSpace. It is based around the idea of performing the mapping from the subspace to the rootspace in a single step using a SubOrdering. As SubOrderings cannot be nested, this class needs some helper functionality that constructs a new GridFunctionSubSpace directly on top of the underlying root GridFunctionSpace if the user attempts to nest GridFunctionSubSpaces. On the other hand, this implementation should render such usage mostly unnecessary, as it is now possible to directly construct a subspace for a given leaf space. If the compiler has support for template aliases, the de-nesting infrastructure will be able to completely remove all traces of nesting, letting the type obtained by nesting two GridFunctionSubSpaces look exactly like the type obtained by constructing a single GridFunctionSubSpace. Alternatively, without template aliases, it is only possible to have the actual implementation be non-nested. In this case, the Dune::PDELab::GridFunctionSubSpace classes will still nest.
- Note
- This class should always be used as Dune::PDELab::GridFunctionSubSpace. Never attempt to directly use the class Dune::PDELab::gfs::GridFunctionSubSpace!
- Template Parameters
-
GFS The root GridFunctionSpace. TreePath Path from the root GridFunctionSpace to the represented subspace.
◆ OrderingTag
typedef O Dune::PDELab::GridFunctionSpaceTraits< G, L, C, B, O >::OrderingTag |
tag describing the ordering.
The tag type may contain additional constants and typedefs to control the behavior of the created ordering.
◆ SizeTag
typedef O Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::SizeTag |
Enumeration Type Documentation
◆ anonymous enum
anonymous enum |
Function Documentation
◆ check_constrained_dofs() [1/2]
bool Dune::PDELab::check_constrained_dofs | ( | const CG & | cg, |
typename XG::ElementType | x, | ||
XG & | xg | ||
) |
check that constrained dofs match a certain value
This just calls check_constrained_dofs(cg, x, xg, cmp) with a default comparison object FloatCmpOps<typename XG::ElementType>().
- Template Parameters
-
CG Type of ConstraintsContainer XG Type of coefficients container
- Parameters
-
cg The ConstraintsContainer x The value to compare with xg The container with the coefficients
- Returns
- true if all constrained dofs match the given value, false otherwise.
◆ check_constrained_dofs() [2/2]
bool Dune::PDELab::check_constrained_dofs | ( | const CG & | cg, |
typename XG::ElementType | x, | ||
XG & | xg, | ||
const Cmp & | cmp = Cmp() |
||
) |
check that constrained dofs match a certain value
as if they were set by set_constrained_dofs()
- Template Parameters
-
CG Type of ConstraintsContainer XG Type of coefficients container Cmp Type of Comparison object to use (something with the interface of Dune::FloatCmpOps)
- Parameters
-
cg The ConstraintsContainer x The value to compare with xg The container with the coefficients cmp The comparison object to use.
- Returns
- true if all constrained dofs match the given value, false otherwise.
◆ constrain_residual()
void Dune::PDELab::constrain_residual | ( | const CG & | cg, |
XG & | xg | ||
) |
transform residual into transformed basis: r -> r~
Referenced by Dune::PDELab::DefaultLocalJacobianApplyAssemblerEngine< LA >::postAssembly(), Dune::PDELab::DefaultLocalResidualAssemblerEngine< LA >::postAssembly(), Dune::PDELab::FastDGLocalJacobianApplyAssemblerEngine< LA >::postAssembly(), and Dune::PDELab::FastDGLocalResidualAssemblerEngine< LA >::postAssembly().
◆ constraints() [1/2]
void Dune::PDELab::constraints | ( | const GFS & | gfs, |
CG & | cg, | ||
const bool | verbose = false |
||
) |
construct constraints
- Template Parameters
-
GFS Type implementing the model GridFunctionSpace CG Type implementing the model GridFunctionSpace::ConstraintsContainer::Type
- Parameters
-
gfs The gridfunctionspace cg The constraints container verbose Print information about the constaints at the end
◆ constraints() [2/2]
void Dune::PDELab::constraints | ( | const P & | p, |
const GFS & | gfs, | ||
CG & | cg, | ||
const bool | verbose = false |
||
) |
construct constraints from given constraints parameter tree
- Template Parameters
-
P Type implementing a constraits parameter tree GFS Type implementing the model GridFunctionSpace CG Type implementing the model GridFunctionSpace::ConstraintsContainer::Type
- Parameters
-
p The condition parameters gfs The gridfunctionspace cg The constraints container verbose Print information about the constraints at the end
- Note
- For backwards compatibility you can implement the parameter tree as an Implemention Dune::PDELab::FunctionInterface
◆ copy_constrained_dofs()
void Dune::PDELab::copy_constrained_dofs | ( | const CG & | cg, |
const XG & | xgin, | ||
XG & | xgout | ||
) |
Modify coefficient vector based on constrained dofs as given in the constraints container
Referenced by Dune::PDELab::copy_nonconstrained_dofs(), Dune::PDELab::set_nonconstrained_dofs(), and Dune::PDELab::NewtonMethod< GridOperator_, LinearSolver_ >::updateDefect().
◆ copy_nonconstrained_dofs()
void Dune::PDELab::copy_nonconstrained_dofs | ( | const CG & | cg, |
const XG & | xgin, | ||
XG & | xgout | ||
) |
- Todo:
- reimplement; this is horribly inefficient
References Dune::PDELab::copy_constrained_dofs().
Referenced by Dune::PDELab::FastDGGridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::interpolate(), and Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::interpolate().
◆ find()
|
inline |
Get local basis functions for entity.
This method makes a few short-cuts. The problem is that dune-functions bases return LocalFiniteElement objects by value, but the method 'find' here hands them out by reference. Therefore, the FiniteElementMap class has to assume ownership of these objects. In principle they can be different for each element. However, storing a LocalFiniteElement for each element can be very expensive. Therefore, we make the simplifying assumption that the basis is such that the LocalFiniteElement type can be inferred from the GeometryType of the element alone. This will work for many interesting case, but it will fail, for example, for p-adaptive or XFEM-type bases.
◆ interpolate()
void Dune::PDELab::interpolate | ( | const F & | f, |
const GFS & | gfs, | ||
XG & | xg | ||
) |
interpolation from a given grid function
\code
#include <dune/pdelab/gridfunctionspace/interpolate.hh>
- Parameters
-
f Function to interpolate from. gfs GridFunctionSpace to use for interpoaltion. xg Global vector of dofs to interpolate into.
- Note
xg
needs to be initialized to the correct size, but there is no need to initialize its contents.
- Examples
- 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.
References Dune::TypeTree::applyToTreePair().
Referenced by Dune::PDELab::FastDGGridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::interpolate(), and Dune::PDELab::GridOperator< GFSU, GFSV, LOP, MB, DF, RF, JF, CU, CV >::interpolate().
◆ set_constrained_dofs()
void Dune::PDELab::set_constrained_dofs | ( | const CG & | cg, |
typename XG::ElementType | x, | ||
XG & | xg | ||
) |
construct constraints from given boundary condition function
- Template Parameters
-
CG Type of ConstraintsContainer XG Type of coefficients container
- Parameters
-
cg The ConstraintsContainer x The value to assign xg The container with the coefficients
Referenced by Dune::PDELab::ExplicitOneStepMethod< T, IGOS, LS, TrlV, TstV, TC >::apply(), Dune::PDELab::OvlpDGAMGPrec< DGGFS, DGMatrix, DGPrec, DGCC, CGGFS, CGPrec, CGCC, P, DGHelper, Comm >::apply(), and Dune::PDELab::NewtonMethod< GridOperator_, LinearSolver_ >::updateDefect().
◆ set_nonconstrained_dofs()
void Dune::PDELab::set_nonconstrained_dofs | ( | const CG & | cg, |
typename XG::ElementType | x, | ||
XG & | xg | ||
) |
- Todo:
- reimplement; this is horribly inefficient
References Dune::PDELab::copy_constrained_dofs().
◆ set_shifted_dofs()
void Dune::PDELab::set_shifted_dofs | ( | const CG & | cg, |
typename XG::ElementType | x, | ||
XG & | xg | ||
) |
- Todo:
- reimplement; this is horribly inefficient
Referenced by Dune::PDELab::NewtonMethod< GridOperator_, LinearSolver_ >::updateDefect().
◆ update() [1/2]
|
inline |
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]
|
inline |
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.
Referenced by Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, Children >::ordering(), Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::ordering(), Dune::PDELab::PowerGridFunctionSpace< T, k, Backend, OrderingTag >::ordering(), Dune::PDELab::VectorGridFunctionSpace< GV, FEM, k, Backend, LeafBackend, Constraints, OrderingTag, LeafOrderingTag >::ordering(), Dune::PDELab::CompositeGridFunctionSpace< Backend, OrderingTag, Children >::orderingStorage(), Dune::PDELab::GridFunctionSpace< GV, FEM, CE, B, O >::orderingStorage(), and Dune::PDELab::PowerGridFunctionSpace< T, k, Backend, OrderingTag >::orderingStorage().