8#ifndef model_TrialFunction_H_
9#define model_TrialFunction_H_
31 template<
char _name,
int _nComponents,
typename _FiniteElementType>
33 public TrialBase<TrialFunction<_name,_nComponents,_FiniteElementType>>
41 typedef typename FiniteElementType::NodeType
NodeType;
45 constexpr static int rows=_nComponents;
46 constexpr static int cols=1;
48 constexpr static int dim=ElementType::dim;
150 template<
typename Condition>
152 const Condition& cond,
153 const std::array<bool,dofPerNode>& constrainDof)
180 const Eigen::Matrix<double,Eigen::Dynamic,1>&
dofVector()
const
191 Eigen::Matrix<double,dofPerNode,1>
dofs(
const size_t& gID)
const
Eigen::Matrix< double, Eigen::Dynamic, 1 > & dofVector() const
const NodeType & node(const size_t &n) const
DirichletConditionContainerType & dirichletConditions() const
void addDirichletCondition(const size_t &nodeListID, const Condition &cond, const std::array< bool, dofPerNode > &constrainDof) const
TrialBase(FiniteElementType &fe)
void clearDirichletConditions() const
DirichletNodeMapType & dirichletNodeMap() const
size_t elementSize() const
Eigen::Matrix< double, dofPerNode, 1 > dofs(const NodeType &node) const
FiniteElementType & fe() const
FiniteElementType FiniteElementType
const Eigen::Matrix< double, Eigen::Dynamic, 1 > & dofVector() const
FiniteElementType::NodeType NodeType
static constexpr int dofPerElement
Eigen::Matrix< double, dofPerNode, 1 > dofs(const NodeType &node) const
FiniteElementType & fe() const
TrialFunctionType & setConstant(const Eigen::Matrix< double, _nComponents, 1 > &c)
TrialFunction(const TrialFunctionType &)=delete
static ShapeFunctionGradMatrixType sfmGrad(const ElementType &ele, const BaryType &bary)
TypeTraits< TrialFunctionType >::BaryType BaryType
TrialFunctionType & operator-=(const Eigen::VectorXd &temp)
TrialFunctionType & operator=(const double &c)
DirichletConditionContainerType & dirichletConditions() const
TrialFunctionType & operator=(const TrialFunctionType &other)
static constexpr int rows
static constexpr int cols
DirichletNodeMapType & dirichletNodeMap() const
TrialFunctionType & operator+=(const Eigen::VectorXd &temp)
TrialFunction(FiniteElementType &fe)
void addDirichletCondition(const size_t &nodeListID, const Condition &cond, const std::array< bool, dofPerNode > &constrainDof)
static constexpr int dofPerNode
std::map< size_t, double > DirichletConditionContainerType
std::map< size_t, std::array< bool, dofPerNode > > DirichletNodeMapType
TypeTraits< TrialFunctionType >::ShapeFunctionDefMatrixType ShapeFunctionDefMatrixType
void clearDirichletConditions()
TrialFunctionType & operator=(const Eigen::VectorXd &temp)
FiniteElementType::ElementType ElementType
size_t elementSize() const
const NodeType & node(const size_t &n) const
static constexpr int nodesPerElement
TypeTraits< TrialFunctionType >::ShapeFunctionMatrixType ShapeFunctionMatrixType
Eigen::VectorXd & dofVector()
TrialFunction< _name, _nComponents, FiniteElementType > TrialFunctionType
Eigen::Matrix< double, dofPerElement, 1 > dofs(const ElementType &ele) const
TrialFunction(TrialFunctionType &&)=delete
Eigen::Matrix< double, dofPerNode, 1 > dofs(const size_t &gID) const
static ShapeFunctionMatrixType sfm(const ElementType &ele, const BaryType &bary)
TypeTraits< TrialFunctionType >::ShapeFunctionGradMatrixType ShapeFunctionGradMatrixType
static ShapeFunctionDefMatrixType sfmDef(const ElementType &ele, const BaryType &bary)
TrialExpressionBase()=default