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

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

#include <ikarus/assembler/simpleassemblers.hh>

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

Public Types

using Basis = typename DV::Basis
 Type of the basis. More...
 
using DirichletValuesType = DV
 Type of the Dirichlet values. More...
 
using FEContainer = FEC
 Type of the 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 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...
 
using AffordanceCollectionType = AffordanceCollection< ScalarAffordance, VectorAffordance, MatrixAffordance >
 

Public Member Functions

 VectorFlatAssembler (FEContainer &&fes, const DirichletValuesType &dirichletValues)
 Constructor for VectorFlatAssembler. More...
 
const Eigen::VectorXd & vector (const FERequirement &feRequirements, VectorAffordance affordance, DBCOption dbcOption=DBCOption::Full)
 Calculates the vectorial quantity requested by the feRequirements and the affordance. Depending on the requested DBCOption, the raw, reduced or full vector is returned. Raw means the degrees of freedom associated with dirichlet boundary conditions are not changed. Full means that degrees of freedom associated with dirichlet boundary conditions are set to zero in the vector. Reduced means that degrees of freedom associated with dirichlet boundary conditions are removed and the returned vector has reduced size. More...
 
const Eigen::VectorXd & vector (DBCOption dbcOption)
 Calculates the vectorial quantity requested by the bound feRequirements and the affordance. Depending on the requested DBCOption, the raw, reduced or full vector is returned. Raw means the degrees of freedom associated with dirichlet boundary conditions are not changed. Full means that degrees of freedom associated with dirichlet boundary conditions are set to zero in the vector. Reduced means that degrees of freedom associated with dirichlet boundary conditions are removed and the returned vector has reduced size. More...
 
const Eigen::VectorXd & vector ()
 Calculates the vectorial quantity requested by the bound feRequirements, the affordance and the dBCOption. Depending on the DBCOption, the raw, reduced or full vector is returned. Raw means the degrees of freedom associated with dirichlet boundary conditions are not changed. Full means that degrees of freedom associated with dirichlet boundary conditions are set to zero in the vector. Reduced means that degrees of freedom associated with dirichlet boundary conditions are removed and the returned vector has reduced size. More...
 
const double & scalar (const FERequirement &feRequirements, ScalarAffordance affordance)
 Calculates the scalar quantity requested by feRequirements and affordance. More...
 
const double & scalar ()
 Calculates the scalar quantity requested by the bound 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...
 
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::VectorFlatAssembler< 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>
inherited

◆ 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

◆ FEContainerType

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

◆ 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
inherited

Constructor & Destructor Documentation

◆ VectorFlatAssembler()

template<typename FEC , typename DV >
Ikarus::VectorFlatAssembler< FEC, DV >::VectorFlatAssembler ( 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
inlineinherited
Here is the caller graph for this function:

◆ bind() [1/4]

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

◆ bind() [2/4]

template<typename FEC , typename DV >
void Ikarus::FlatAssemblerBase< FEC, DV >::bind ( const FERequirement req)
inlineinherited
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 
)
inlineinherited
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)
inlineinherited
Parameters
dbcOptionThe EnforcingDBC option

◆ bound()

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

◆ boundToAffordanceCollection()

template<typename FEC , typename DV >
bool Ikarus::FlatAssemblerBase< FEC, DV >::boundToAffordanceCollection ( ) const
inlineinherited
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
inlineinherited
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
inlineinherited
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
inlineinherited
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)
inherited
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
inlineinherited
Here is the caller graph for this function:

◆ estimateOfConnectivity()

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

◆ finiteElements()

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

◆ isConstrained()

template<typename FEC , typename DV >
bool Ikarus::FlatAssemblerBase< FEC, DV >::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 FEC , typename DV >
size_t Ikarus::FlatAssemblerBase< FEC, DV >::reducedSize ( )
inlineinherited
Returns
Size of the reduced degrees of freedom.

◆ requirement()

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

◆ scalar() [1/2]

template<typename FEC , typename DV >
const double & Ikarus::ScalarAssembler< FEC, DV >::scalar ( )
inlineinherited
Returns
Const reference to the calculated scalar quantity.

◆ scalar() [2/2]

template<typename FEC , typename DV >
const double & Ikarus::ScalarAssembler< FEC, DV >::scalar ( const FERequirement feRequirements,
ScalarAffordance  affordance 
)
inlineinherited
Parameters
feRequirementsReference to the finite element requirements.
affordanceThe scalar affordance
Returns
Const reference to the calculated scalar quantity.

◆ size()

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

◆ vector() [1/3]

template<typename FEC , typename DV >
const Eigen::VectorXd & Ikarus::VectorFlatAssembler< FEC, DV >::vector ( )
inline
Returns
Const reference to the calculated vectorial quantity.
Here is the caller graph for this function:

◆ vector() [2/3]

template<typename FEC , typename DV >
const Eigen::VectorXd & Ikarus::VectorFlatAssembler< FEC, DV >::vector ( const FERequirement feRequirements,
VectorAffordance  affordance,
DBCOption  dbcOption = DBCOption::Full 
)
inline
Parameters
feRequirementsReference to the finite element requirements.
affordanceThe vector affordance
dbcOptionThe DBCOption
Returns
Const reference to the calculated vectorial quantity.

◆ vector() [3/3]

template<typename FEC , typename DV >
const Eigen::VectorXd & Ikarus::VectorFlatAssembler< FEC, DV >::vector ( DBCOption  dbcOption)
inline
Parameters
dbcOptionThe DBCOption
Returns
Const reference to the calculated vectorial quantity.

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