version 0.4
Ikarus::VectorFlatAssembler< FEContainer_, DirichletValuesType_ > Class Template Reference

VectorFlatAssembler assembles vector quantities using a flat basis Indexing strategy. More...

#include <ikarus/assembler/simpleassemblers.hh>

Inheritance diagram for Ikarus::VectorFlatAssembler< FEContainer_, DirichletValuesType_ >:
[legend]

Public Types

using Basis = typename DirichletValuesType_::Basis
 Type of the basis. More...
 
using DirichletValuesType = DirichletValuesType_
 Type of the Dirichlet values. More...
 
using FEContainer = FEContainer_
 Type of the finite element container. More...
 
using FERequirementType = typename FEContainerRaw::value_type::FERequirementType
 Type of the finite element requirement. More...
 
using GlobalIndex = typename FEContainerRaw::value_type::GlobalIndex
 Type of the global index. More...
 
using GridView = typename Basis::GridView
 Type of the grid view. 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...
 

Public Member Functions

 VectorFlatAssembler (FEContainer &&fes, const DirichletValuesType &dirichletValues_)
 Constructor for VectorFlatAssembler. More...
 
const Eigen::VectorXd & getRawVector (const FERequirementType &feRequirements)
 Calculates the vectorial quantity requested by feRequirements and returns a reference. More...
 
const Eigen::VectorXd & getVector (const FERequirementType &feRequirements)
 Calculates the vectorial quantity requested by feRequirements and returns a reference. A zero is written on fixed degrees of freedom. More...
 
const Eigen::VectorXd & getReducedVector (const FERequirementType &feRequirements)
 Calculates the vectorial quantity requested by feRequirements and returns a reference. This vector has a reduced size by the number of fixed degrees of freedom. More...
 
const double & getScalar (const FERequirementType &feRequirements)
 Calculates the scalar quantity requested by feRequirements and returns a reference. 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...
 

Detailed Description

template<typename FEContainer_, typename DirichletValuesType_>
class Ikarus::VectorFlatAssembler< FEContainer_, DirichletValuesType_ >
Template Parameters
FEContainer_Type of the finite element container.
DirichletValuesType_Type of the Dirichlet values.

Member Typedef Documentation

◆ Basis

template<typename FEContainer_ , typename DirichletValuesType_ >
using Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::Basis = typename DirichletValuesType_::Basis

◆ DirichletValuesType

template<typename FEContainer_ , typename DirichletValuesType_ >
using Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::DirichletValuesType = DirichletValuesType_

◆ FEContainer

template<typename FEContainer_ , typename DirichletValuesType_ >
using Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::FEContainer = FEContainer_

◆ FEContainerType

template<typename FEContainer_ , typename DirichletValuesType_ >
using Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::FEContainerType = std::conditional_t<std::is_reference_v<FEContainer>, const FEContainer, FEContainer>
inherited

◆ FERequirementType

template<typename FEContainer_ , typename DirichletValuesType_ >
using Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::FERequirementType = typename FEContainerRaw::value_type::FERequirementType

◆ GlobalIndex

template<typename FEContainer_ , typename DirichletValuesType_ >
using Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::GlobalIndex = typename FEContainerRaw::value_type::GlobalIndex

◆ GridView

template<typename FEContainer_ , typename DirichletValuesType_ >
using Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::GridView = typename Basis::GridView
inherited

Constructor & Destructor Documentation

◆ VectorFlatAssembler()

template<typename FEContainer_ , typename DirichletValuesType_ >
Ikarus::VectorFlatAssembler< FEContainer_, DirichletValuesType_ >::VectorFlatAssembler ( FEContainer &&  fes,
const DirichletValuesType dirichletValues_ 
)
inline
Parameters
fesFinite element container.
dirichletValues_Reference to Dirichlet values.

Member Function Documentation

◆ constraintsBelow()

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

◆ createFullVector()

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

◆ estimateOfConnectivity()

template<typename FEContainer_ , typename DirichletValuesType_ >
size_t Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::estimateOfConnectivity ( ) const
inlineinherited
Returns
Size_t Coarse estimate of node connectivity.

◆ finiteElements()

template<typename FEContainer_ , typename DirichletValuesType_ >
auto & Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::finiteElements ( ) const
inlineinherited
Returns
Reference to the finite element container.

◆ getRawVector()

template<typename FEContainer_ , typename DirichletValuesType_ >
const Eigen::VectorXd & Ikarus::VectorFlatAssembler< FEContainer_, DirichletValuesType_ >::getRawVector ( const FERequirementType feRequirements)
inline
Parameters
feRequirementsReference to the finite element requirements.
Returns
Const reference to the calculated vectorial quantity.

◆ getReducedVector()

template<typename FEContainer_ , typename DirichletValuesType_ >
const Eigen::VectorXd & Ikarus::VectorFlatAssembler< FEContainer_, DirichletValuesType_ >::getReducedVector ( const FERequirementType feRequirements)
inline
Parameters
feRequirementsReference to the finite element requirements.
Returns
Const reference to the calculated reduced vectorial quantity.

◆ getScalar()

template<typename FEContainer_ , typename DirichletValuesType_ >
const double & Ikarus::ScalarAssembler< FEContainer_, DirichletValuesType_ >::getScalar ( const FERequirementType feRequirements)
inlineinherited
Parameters
feRequirementsReference to the finite element requirements.
Returns
Const reference to the calculated scalar quantity.

◆ getVector()

template<typename FEContainer_ , typename DirichletValuesType_ >
const Eigen::VectorXd & Ikarus::VectorFlatAssembler< FEContainer_, DirichletValuesType_ >::getVector ( const FERequirementType feRequirements)
inline
Parameters
feRequirementsReference to the finite element requirements.
Returns
Const reference to the calculated vectorial quantity.

◆ isConstrained()

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

◆ reducedSize()

template<typename FEContainer_ , typename DirichletValuesType_ >
size_t Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::reducedSize ( )
inlineinherited
Returns
Size of the reduced degrees of freedom.

◆ size()

template<typename FEContainer_ , typename DirichletValuesType_ >
size_t Ikarus::FlatAssemblerBase< FEContainer_, DirichletValuesType_ >::size ( )
inlineinherited
Returns
Size of the degrees of freedom.

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