version 0.4.1
Ikarus::Concepts::FlatAssembler Concept Reference

Concept representing the requirements for a FlatAssembler.A type T satisfies FlatAssembler if it provides the necessary member functions and data types for assembling sparse matrices in a flat structure.

#include <ikarus/utils/concepts.hh>

Concept definition

template<typename T>
concept Ikarus::Concepts::FlatAssembler = requires(T t, const typename T::FERequirement& req,
typename T::AffordanceCollectionType affordance, DBCOption dbcOption) {
{ t.requirement() } -> std::convertible_to<typename T::FERequirement&>;
{ t.affordanceCollection() } -> std::convertible_to<typename T::AffordanceCollectionType>;
{ t.dBCOption() } -> std::convertible_to<DBCOption>;
{ t.bind(req, affordance, dbcOption) } -> std::same_as<void>;
{ t.bind(req) } -> std::same_as<void>;
{ t.bind(affordance) } -> std::same_as<void>;
{ t.bind(dbcOption) } -> std::same_as<void>;
{ t.bound() } -> std::convertible_to<bool>;
{ t.boundToRequirement() } -> std::convertible_to<bool>;
{ t.boundToAffordanceCollection() } -> std::convertible_to<bool>;
{ t.boundToDBCOption() } -> std::convertible_to<bool>;
{ t.estimateOfConnectivity() } -> std::convertible_to<size_t>;
{ t.createFullVector(std::declval<Eigen::Ref<const Eigen::VectorXd>>()) } -> std::convertible_to<Eigen::VectorXd>;
{ t.constraintsBelow(std::declval<size_t>()) } -> std::convertible_to<size_t>;
{ t.isConstrained(std::declval<size_t>()) } -> std::convertible_to<bool>;
{ t.size() } -> std::convertible_to<size_t>;
{ t.reducedSize() } -> std::convertible_to<size_t>;
}
DBCOption
Definition: dirichletbcenforcement.hh:7
Concept representing the requirements for a FlatAssembler.A type T satisfies FlatAssembler if it prov...
Definition: concepts.hh:500