FE class is a base class for all finite elements. More...
#include <ikarus/finiteelements/febase.hh>
Public Types | |
using | Traits = PreFE::Traits |
Type traits. More... | |
using | BasisHandler = Traits::BasisHandler |
Type of the basisHandler. More... | |
using | LocalView = typename Traits::LocalView |
Type of the local view. More... | |
using | GridView = typename Traits::GridView |
Type of the global view. More... | |
using | GlobalIndex = typename Traits::GlobalIndex |
Type of the global index. More... | |
using | GridElement = typename Traits::Element |
Type of the grid element. More... | |
using | PreTuple = std::tuple< typename Skills< PreFE, FE >::Pre... > |
using | SupportedResultTypes = decltype(std::tuple_cat(computeSupportedResultTypes< Skills...< PreFE, typename PreFE::template FE< Skills... ... > > >()...)) |
Type alias for the supported result types by the mixin. More... | |
using | Requirement = RequirementType< requirementDetected >::type |
Public Member Functions | |
FE (const BasisHandler &basisHandler, typename Skills< PreFE, FE >::Pre... skillsArgs) | |
Constructor for the FE class. More... | |
void | bind (const GridElement &element) |
Convenient function to bind the local view to the element. More... | |
constexpr size_t | size () const |
Get the size of the local view. More... | |
const GridElement & | gridElement () const |
Get the grid element associated with the local view. More... | |
const LocalView & | localView () const |
Get the const reference to the local view. More... | |
LocalView & | localView () |
Get the reference to the local view. More... | |
auto | calculateAt (const Requirement &req, const Dune::FieldVector< double, Traits::mydim > &local) const |
Calculate the element values at a specific location for a given ResultType. More... | |
void | bind () |
Call all bind functions if the skill implements it. More... | |
auto | calculateScalarImpl (const Requirement &par, ScalarAffordance affordance, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
Calculate the scalar value in each skill and joins them by + . More... | |
void | calculateVectorImpl (const Requirement &par, VectorAffordance affordance, typename Traits::template VectorType< ScalarType > force, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
Calculate the vector for each skill. More... | |
void | calculateMatrixImpl (const Requirement &par, MatrixAffordance affordance, typename Traits::template MatrixType< ScalarType > K, const std::optional< std::reference_wrapper< const Eigen::VectorX< ScalarType > > > &dx=std::nullopt) const |
Calculate the matrix for each skill. More... | |
Static Public Member Functions | |
static consteval bool | hasSkill () |
Checks if the mixin class has a specific skill. More... | |
static auto | createRequirement () |
Create a Requirement object. More... | |
Static Public Attributes | |
static constexpr int | myDim = Traits::mydim |
static constexpr int | worldDim = Traits::worlddim |
Protected Types | |
using | Mixin = FEMixin< PreFE, Skills... > |
Type of the FE mixin. More... | |
Protected Member Functions | |
const auto & | underlying () const |
Get a reference to the underlying finite element object. More... | |
auto & | underlying () |
Get a reference to the underlying finite element object. More... | |
Protected Attributes | |
friend | Mixin |
A single class which can be used by the finite elements to get different information from the local view of the element. It works for both the flat and untouched version of the basis.
using Ikarus::FE< PreFE, Skills >::BasisHandler = Traits::BasisHandler |
using Ikarus::FE< PreFE, Skills >::GlobalIndex = typename Traits::GlobalIndex |
using Ikarus::FE< PreFE, Skills >::GridElement = typename Traits::Element |
using Ikarus::FE< PreFE, Skills >::GridView = typename Traits::GridView |
using Ikarus::FE< PreFE, Skills >::LocalView = typename Traits::LocalView |
|
protected |
using Ikarus::FE< PreFE, Skills >::PreTuple = std::tuple<typename Skills<PreFE, FE>::Pre...> |
|
inherited |
|
inherited |
using Ikarus::FE< PreFE, Skills >::Traits = PreFE::Traits |
|
inlineexplicit |
basisHandler | The basis handler. |
skillsArgs | Skill arguments. |
|
inlineinherited |
|
inline |
element | The element to be bounded |
|
inlineinherited |
RT | The ResultType to calculate. |
req | The Requirement object specifying the requirements for the calculation. |
local | The local coordinates where the calculation is performed. |
|
inlineinherited |
ScalarType | The scalar type for the calculation. |
par | The Requirement object specifying the requirements for the calculation. |
K | The matrix to store the calculated result. |
dx | Optional vector used in the calculation. |
|
inlineinherited |
ScalarType | The scalar type for the calculation. |
par | The Requirement object specifying the requirements for the calculation. |
dx | Optional vector used in the calculation. |
|
inlineinherited |
ScalarType | The scalar type for the calculation. |
par | The Requirement object specifying the requirements for the calculation. |
force | The vector to store the calculated result. |
dx | Optional vector used in the calculation. |
|
inlinestaticinherited |
|
inline |
|
inlinestaticinherited |
Skill | The skill to check for. |
|
inline |
|
inline |
|
inlineconstexpr |
|
inlineprotectedinherited |
|
inlineprotectedinherited |
|
protected |
|
staticconstexpr |
|
staticconstexpr |