The FlatAssemblerBase takes care of common subtasks done by flat assemblers. More...
#include <ikarus/assembler/interface.hh>
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 (reference or by value). More... | |
using | DirichletValuesType = DV |
Type of the Dirichlet values. More... | |
using | SizeType = typename DirichletValuesType::SizeType |
size_type of the container storing Dirichlet flags More... | |
using | AffordanceCollectionType = AffordanceCollection< ScalarAffordance, VectorAffordance, MatrixAffordance > |
Public Member Functions | |
template<typename FEContainer_ = FEContainer, typename DirichletValuesType_ = DirichletValuesType> | |
FlatAssemblerBase (FEContainer_ &&fes, 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... | |
const auto & | dirichletValues () const |
Returns the dirichlet value object. More... | |
const auto & | gridView () const |
Returns the gridView object. More... | |
size_t | constraintsBelow (SizeType i) const |
Returns the number of constraints below a given degrees of freedom index. More... | |
bool | isConstrained (SizeType 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... | |
FERequirement & | requirement () |
Returns the requirement. More... | |
AffordanceCollectionType | affordanceCollection () const |
Returns the affordance. More... | |
DBCOption | dBCOption () const |
Returns the dirichlet boundary condition enforcement option. More... | |
FEC | Type of the finite element container. |
DV | Type of the Dirichlet values. |
using Ikarus::FlatAssemblerBase< FEC, DV >::AffordanceCollectionType = AffordanceCollection<ScalarAffordance, VectorAffordance, MatrixAffordance> |
using Ikarus::FlatAssemblerBase< FEC, DV >::Basis = typename DV::Basis |
using Ikarus::FlatAssemblerBase< FEC, DV >::DirichletValuesType = DV |
using Ikarus::FlatAssemblerBase< FEC, DV >::FEContainer = FEC |
using Ikarus::FlatAssemblerBase< FEC, DV >::FEContainerRaw = std::remove_cvref_t<FEC> |
using Ikarus::FlatAssemblerBase< FEC, DV >::FERequirement = typename FEContainerRaw::value_type::Requirement |
using Ikarus::FlatAssemblerBase< FEC, DV >::GlobalIndex = typename FEContainerRaw::value_type::GlobalIndex |
using Ikarus::FlatAssemblerBase< FEC, DV >::GridView = typename Basis::GridView |
using Ikarus::FlatAssemblerBase< FEC, DV >::SizeType = typename DirichletValuesType::SizeType |
|
inline |
fes | Finite element container. |
dirichletValues | Reference to Dirichlet values. |
|
inline |
|
inline |
affordanceCollection | The affordance collection |
|
inline |
req | Reference to the finite element requirement. |
|
inline |
req | Reference to the finite element requirement. |
affordanceCollection | The affordance collection |
|
inline |
dbcOption | The EnforcingDBC option |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
i | Index of the degree of freedom. |
Eigen::VectorXd Ikarus::FlatAssemblerBase< B, FEC >::createFullVector | ( | Eigen::Ref< const Eigen::VectorXd > | reducedVector | ) |
reducedVector | Reference to the reduced vector. |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
i | Index of the degree of freedom. |
|
inline |
|
inline |
|
inline |