version 0.4.2
Ikarus::FlatAssemblerBase< FEC, DV > Class Template Reference

The FlatAssemblerBase takes care of common subtasks done by flat assemblers. More...

#include <ikarus/assembler/simpleassemblers.hh>

Inheritance diagram for Ikarus::FlatAssemblerBase< FEC, DV >:
[legend]

Public Types

using FEContainerRaw = std::remove_cvref_t< FEC >
 Type of the raw finite element container. More...
 
using FERequirement = typename FEContainerRaw::value_type::Requirement
 Type of the finite element requirement. More...
 
using GlobalIndex = typename FEContainerRaw::value_type::GlobalIndex
 Type of the global index. More...
 
using Basis = typename DV::Basis
 Type of the basis. More...
 
using GridView = typename Basis::GridView
 Type of the grid view. More...
 
using FEContainer = FEC
 Type of the finite element container. More...
 
using FEContainerType = std::conditional_t< std::is_reference_v< FEContainer >, const FEContainer, FEContainer >
 Type of the finite element container (reference or by value). More...
 
using DirichletValuesType = DV
 Type of the Dirichlet values. More...
 
using AffordanceCollectionType = AffordanceCollection< ScalarAffordance, VectorAffordance, MatrixAffordance >
 

Public Member Functions

 FlatAssemblerBase (FEContainer &&fes, const DirichletValuesType &dirichletValues)
 Constructor for FlatAssemblerBase. More...
 
size_t reducedSize ()
 Returns the size of the free degrees of freedom, which are not fixed by a Dirichlet boundary condition. More...
 
size_t size ()
 Returns the size of nodes, i.e., the number of degrees of freedom. More...
 
Eigen::VectorXd createFullVector (Eigen::Ref< const Eigen::VectorXd > reducedVector)
 Creates the full-sized vector of size Dof and inserts the values of a reduced vector at the "free" degrees of freedom and writes a zero for the fixed doffs. More...
 
auto & finiteElements () const
 Returns the container of finite elements. More...
 
size_t constraintsBelow (size_t i) const
 Returns the number of constraints below a given degrees of freedom index. More...
 
bool isConstrained (size_t i) const
 Returns true if a given degree of freedom is fixed by a Dirichlet boundary condition. More...
 
size_t estimateOfConnectivity () const
 Coarse estimate of node connectivity, i.e., this relates to the bandwidth of a sparse matrix. This estimate overestimates the real connectivity and should only be used for allocating vectors. More...
 
void bind (const FERequirement &req, AffordanceCollectionType affordanceCollection, DBCOption dbcOption=DBCOption::Full)
 Binds the assembler to a set of finite element requirement and affordance. More...
 
void bind (const FERequirement &req)
 Binds the assembler to a finite element requirement. More...
 
void bind (AffordanceCollectionType affordanceCollection)
 Binds the assembler to an affordance collection. More...
 
void bind (DBCOption dbcOption)
 Binds the assembler to an affordance collection. More...
 
bool bound () const
 Returns true if the assembler is bound to a finite element requirement and affordance. More...
 
bool boundToRequirement () const
 Returns true if the assembler is bound to a finite element requirement. More...
 
bool boundToAffordanceCollection () const
 Returns true if the assembler is bound to an affordance collection. More...
 
bool boundToDBCOption () const
 Returns true if the assembler is bound to an affordance collection. More...
 
FERequirementrequirement ()
 Returns the requirement. More...
 
AffordanceCollectionType affordanceCollection () const
 Returns the affordance. More...
 
DBCOption dBCOption () const
 Returns the dirichlet boundary condition enforcement option. More...
 

Detailed Description

template<typename FEC, typename DV>
class Ikarus::FlatAssemblerBase< FEC, DV >
Template Parameters
FECType of the finite element container.
DVType of the Dirichlet values.

Member Typedef Documentation

◆ AffordanceCollectionType

template<typename FEC , typename DV >
using Ikarus::FlatAssemblerBase< FEC, DV >::AffordanceCollectionType = AffordanceCollection<ScalarAffordance, VectorAffordance, MatrixAffordance>

◆ Basis

template<typename FEC , typename DV >
using Ikarus::FlatAssemblerBase< FEC, DV >::Basis = typename DV::Basis

◆ DirichletValuesType

template<typename FEC , typename DV >
using Ikarus::FlatAssemblerBase< FEC, DV >::DirichletValuesType = DV

◆ FEContainer

template<typename FEC , typename DV >
using Ikarus::FlatAssemblerBase< FEC, DV >::FEContainer = FEC

◆ FEContainerRaw

template<typename FEC , typename DV >
using Ikarus::FlatAssemblerBase< FEC, DV >::FEContainerRaw = std::remove_cvref_t<FEC>

◆ FEContainerType

template<typename FEC , typename DV >
using Ikarus::FlatAssemblerBase< FEC, DV >::FEContainerType = std::conditional_t<std::is_reference_v<FEContainer>, const FEContainer, FEContainer>

◆ FERequirement

template<typename FEC , typename DV >
using Ikarus::FlatAssemblerBase< FEC, DV >::FERequirement = typename FEContainerRaw::value_type::Requirement

◆ GlobalIndex

template<typename FEC , typename DV >
using Ikarus::FlatAssemblerBase< FEC, DV >::GlobalIndex = typename FEContainerRaw::value_type::GlobalIndex

◆ GridView

template<typename FEC , typename DV >
using Ikarus::FlatAssemblerBase< FEC, DV >::GridView = typename Basis::GridView

Constructor & Destructor Documentation

◆ FlatAssemblerBase()

template<typename FEC , typename DV >
Ikarus::FlatAssemblerBase< FEC, DV >::FlatAssemblerBase ( FEContainer &&  fes,
const DirichletValuesType dirichletValues 
)
inline
Parameters
fesFinite element container.
dirichletValuesReference to Dirichlet values.

Member Function Documentation

◆ affordanceCollection()

template<typename FEC , typename DV >
AffordanceCollectionType Ikarus::FlatAssemblerBase< FEC, DV >::affordanceCollection ( ) const
inline
Here is the caller graph for this function:

◆ bind() [1/4]

template<typename FEC , typename DV >
void Ikarus::FlatAssemblerBase< FEC, DV >::bind ( AffordanceCollectionType  affordanceCollection)
inline
Parameters
affordanceCollectionThe affordance collection

◆ bind() [2/4]

template<typename FEC , typename DV >
void Ikarus::FlatAssemblerBase< FEC, DV >::bind ( const FERequirement req)
inline
Parameters
reqReference to the finite element requirement.

◆ bind() [3/4]

template<typename FEC , typename DV >
void Ikarus::FlatAssemblerBase< FEC, DV >::bind ( const FERequirement req,
AffordanceCollectionType  affordanceCollection,
DBCOption  dbcOption = DBCOption::Full 
)
inline
Parameters
reqReference to the finite element requirement.
affordanceCollectionThe affordance collection

◆ bind() [4/4]

template<typename FEC , typename DV >
void Ikarus::FlatAssemblerBase< FEC, DV >::bind ( DBCOption  dbcOption)
inline
Parameters
dbcOptionThe EnforcingDBC option

◆ bound()

template<typename FEC , typename DV >
bool Ikarus::FlatAssemblerBase< FEC, DV >::bound ( ) const
inline
Returns
True if the assembler is bound; false otherwise.

◆ boundToAffordanceCollection()

template<typename FEC , typename DV >
bool Ikarus::FlatAssemblerBase< FEC, DV >::boundToAffordanceCollection ( ) const
inline
Returns
True if the assembler is bound; false otherwise.
Here is the caller graph for this function:

◆ boundToDBCOption()

template<typename FEC , typename DV >
bool Ikarus::FlatAssemblerBase< FEC, DV >::boundToDBCOption ( ) const
inline
Returns
True if the assembler is bound; false otherwise.
Here is the caller graph for this function:

◆ boundToRequirement()

template<typename FEC , typename DV >
bool Ikarus::FlatAssemblerBase< FEC, DV >::boundToRequirement ( ) const
inline
Returns
True if the assembler is bound; false otherwise.
Here is the caller graph for this function:

◆ constraintsBelow()

template<typename FEC , typename DV >
size_t Ikarus::FlatAssemblerBase< FEC, DV >::constraintsBelow ( size_t  i) const
inline
Parameters
iIndex of the degree of freedom.
Returns
Number of constraints below the given index.

◆ createFullVector()

template<typename B , typename FEC >
Eigen::VectorXd Ikarus::FlatAssemblerBase< B, FEC >::createFullVector ( Eigen::Ref< const Eigen::VectorXd >  reducedVector)
Parameters
reducedVectorReference to the reduced vector.
Returns
Eigen::VectorXd The full-sized vector.

◆ dBCOption()

template<typename FEC , typename DV >
DBCOption Ikarus::FlatAssemblerBase< FEC, DV >::dBCOption ( ) const
inline
Here is the caller graph for this function:

◆ estimateOfConnectivity()

template<typename FEC , typename DV >
size_t Ikarus::FlatAssemblerBase< FEC, DV >::estimateOfConnectivity ( ) const
inline
Returns
Size_t Coarse estimate of node connectivity.

◆ finiteElements()

template<typename FEC , typename DV >
auto & Ikarus::FlatAssemblerBase< FEC, DV >::finiteElements ( ) const
inline
Returns
Reference to the finite element container.

◆ isConstrained()

template<typename FEC , typename DV >
bool Ikarus::FlatAssemblerBase< FEC, DV >::isConstrained ( size_t  i) const
inline
Parameters
iIndex of the degree of freedom.
Returns
True if the degree of freedom is fixed; false otherwise.

◆ reducedSize()

template<typename FEC , typename DV >
size_t Ikarus::FlatAssemblerBase< FEC, DV >::reducedSize ( )
inline
Returns
Size of the reduced degrees of freedom.

◆ requirement()

template<typename FEC , typename DV >
FERequirement & Ikarus::FlatAssemblerBase< FEC, DV >::requirement ( )
inline
Here is the caller graph for this function:

◆ size()

template<typename FEC , typename DV >
size_t Ikarus::FlatAssemblerBase< FEC, DV >::size ( )
inline
Returns
Size of the degrees of freedom.

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