Dune-Fufem 2.11-git
Loading...
Searching...
No Matches
Function space bases

Description

Utilities for handling function space bases.

Functions

template<class Range = double, class Vector = std::monostate, class Basis >
void Dune::Fufem::writeBasis (const Basis &basis, std::string name, int order=-1)
 Write basis functions as vtk-sequence.
 
template<class Range = double, class Vector = std::monostate, class Basis , class Constraints >
void Dune::Fufem::writeBasis (const Basis &basis, std::string name, const Constraints &constraints, int order=-1)
 Write basis functions of constrained space as vtk-sequence.
 
template<class IntersectionSet , class Basis , class Vector >
requires (Dune::Fufem::Forms::IsBoundaryDomain<IntersectionSet>::value or Dune::Fufem::Forms::IsSkeletonDomain<IntersectionSet>::value)
void Dune::Fufem::markIntersectionDofs (const IntersectionSet &intersectionSet, const Basis &basis, Vector &vector)
 For a given basis and intersection set, determine all degrees of freedom on the patch.
 
template<class GridView , class Basis , class Vector >
void Dune::Fufem::markBoundaryPatchDofs (const BoundaryPatch< GridView > &boundaryPatch, const Basis &basis, Vector &vector)
 For a given basis and boundary patch, determine all degrees of freedom on the patch.
 
template<class Basis , class Vector >
void Dune::Fufem::markBoundaryDofs (const Basis &basis, Vector &vector)
 For a given basis determine all degrees of freedom on the boundary.
 

Function Documentation

◆ markBoundaryDofs()

template<class Basis , class Vector >
void Dune::Fufem::markBoundaryDofs ( const Basis &  basis,
Vector &  vector 
)

For a given basis determine all degrees of freedom on the boundary.

Set each entry of the vector to true, that corresponds to a DOF associated to an intersection (or a subentity) contained in the boundary. If the passed vector does not implement the VectorBackend concept, it is automatically wrapped in a Dune::Functions::ISTLVectorBackend.

Parameters
basisMark DOFS of this basis
vectorA bit vector corresponding to the basis DOFs

◆ markBoundaryPatchDofs()

template<class GridView , class Basis , class Vector >
void Dune::Fufem::markBoundaryPatchDofs ( const BoundaryPatch< GridView > &  boundaryPatch,
const Basis &  basis,
Vector &  vector 
)

For a given basis and boundary patch, determine all degrees of freedom on the patch.

This is an alias for markIntersectionDofs for a BoundaryPatch.

Parameters
boundaryPatchOnly mark boundary DOFs associated to intersections in this patch.
basisMark DOFS of this basis
vectorA bit vector corresponding to the basis DOFs

◆ markIntersectionDofs()

template<class IntersectionSet , class Basis , class Vector >
requires (Dune::Fufem::Forms::IsBoundaryDomain<IntersectionSet>::value or Dune::Fufem::Forms::IsSkeletonDomain<IntersectionSet>::value)
void Dune::Fufem::markIntersectionDofs ( const IntersectionSet &  intersectionSet,
const Basis &  basis,
Vector &  vector 
)

For a given basis and intersection set, determine all degrees of freedom on the patch.

Set each entry of the vector to true, that corresponds to a DOF associated to an intersection (or a subentity) contained in the given IntersectionSet. If the passed vector does not implement the VectorBackend concept, it is automatically wrapped in a Dune::Functions::ISTLVectorBackend.

Template Parameters
IntersectionSetType of IntersectionSet. This should satisfy Forms::IsBoundaryDomain or Forms::IsSkeletonDomain. This is e.g. the case for BoundaryPatch and Forms::Boundary.
Parameters
intersectionSetOnly mark intersection DOFs associated to intersections in this set.
basisMark DOFS of this basis
vectorA bit vector corresponding to the basis DOFs

◆ writeBasis() [1/2]

template<class Range = double, class Vector = std::monostate, class Basis , class Constraints >
void Dune::Fufem::writeBasis ( const Basis &  basis,
std::string  name,
const Constraints &  constraints,
int  order = -1 
)

Write basis functions of constrained space as vtk-sequence.

Template Parameters
RangeUse this as range type for the basis function (default: double)
VectorA suitable vector type for the basis (default: std::monostate)
BasisType of basis to write
Parameters
basisWrite basis functions of this basis
nameFile names are generated by sprintf passing a flat index to this format string.
constraintsAn affine constraints object describing the constrained subspace
orderWrite data as polynomials of this order to VTK (default: -1)

If the default Vector=std::monostate is used, the vector is deduced automatically using basis.containerDescriptor(). If the default order=-1 is used, the actual order is deduced to be the maximal polynomial order of all local finite elements. This will apply constraints.interpolate(v) to the coefficient vectors before writing to guarantee that they satisfy the constraints.

◆ writeBasis() [2/2]

template<class Range = double, class Vector = std::monostate, class Basis >
void Dune::Fufem::writeBasis ( const Basis &  basis,
std::string  name,
int  order = -1 
)

Write basis functions as vtk-sequence.

Template Parameters
RangeUse this as range type for the basis function (default: double)
VectorA suitable vector type for the basis (default: std::monostate)
BasisType of basis to write
Parameters
basisWrite basis functions of this basis
nameFile names are generated by sprintf passing a flat index to this format string.
orderWrite data as polynomials of this order to VTK (default: -1)

If the default Vector=std::monostate is used, the vector is deduced automatically using basis.containerDescriptor(). If the default order=-1 is used, the actual order is deduced to be the maximal polynomial order of all local finite elements.