Skip to content
Snippets Groups Projects
Commit 90f5f7d8 authored by Bastian Telgen's avatar Bastian Telgen
Browse files

add template for separate number of dofs

parent 923fe9a2
No related branches found
No related tags found
No related merge requests found
Pipeline #100429 passed
......@@ -37,6 +37,7 @@ class CoreElement final
: public ElementBase<CoreElement<MaterialModel_, Integrator_>,
typename Integrator_::size_type,
typename Integrator_::value_type, Integrator_::size(),
MaterialModel_::degrees_of_freedom(),
MaterialModel_::dimension()> {
public:
using MaterialModel = MaterialModel_;
......@@ -170,16 +171,15 @@ private:
using TangentSlice = typename std::enable_if<
Element::degrees_of_freedom() == 0 ||
sizeof(typename Element::MaterialModel::TangentMatrix) ==
Element::degrees_of_freedom() * Element::degrees_of_freedom() *
Element::degrees_of_freedom() *
Element::degrees_of_freedom() *
Element::degrees_of_freedom() * Element::dimension() *
Element::degrees_of_freedom() * Element::dimension() *
sizeof(typename Element::MaterialModel::value_type),
Eigen::Map<
const Eigen::Matrix<typename Element::MaterialModel::value_type,
Element::degrees_of_freedom(),
Element::degrees_of_freedom(), Eigen::RowMajor>,
Element::dimension(), Element::dimension(),
Eigen::RowMajor>,
0,
Eigen::Stride<Eigen::Index{Element::degrees_of_freedom() *
Eigen::Stride<Eigen::Index{Element::dimension() *
Element::degrees_of_freedom()},
Eigen::Index{1}>>>::type;
};
......
......@@ -25,7 +25,7 @@ namespace ae108 {
namespace elements {
template <class Derived_, class SizeType_, class ValueType_, SizeType_ Size_,
SizeType_ DegreesOfFreedom_>
SizeType_ DegreesOfFreedom_, SizeType_ Dimension_ = DegreesOfFreedom_>
struct ElementBase {
using size_type = SizeType_;
using value_type = ValueType_;
......@@ -67,6 +67,11 @@ struct ElementBase {
return DegreesOfFreedom_;
}
/**
* @brief The dimension of physical space.
*/
static constexpr size_type dimension() noexcept { return Dimension_; }
/**
* @brief Computes the energy for the given displacements.
* @remark Delegates to the corresponding free function.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment