8 template <
typename FiberModel>
27 const auto Cbar = (def_grad.transpose() * def_grad / pow(J, 2.0 / 3.0)).eval();
30 assert(a_tmp.rows() == this->size() && a_tmp.cols() == 1);
31 Eigen::Matrix<T, Eigen::Dynamic, 1, 0, 3, 1> a(a_tmp.rows(), a_tmp.cols());
32 for (
int i = 0; i < a.size(); ++i)
35 const Eigen::Matrix<T, 1, 1> tmp = a.transpose() * Cbar * a;
36 assert(tmp.rows() == 1 && tmp.cols() == 1);
virtual void add_multimaterial(const int index, const json ¶ms, const Units &units) override
T I4Bar(const RowVectorNd &p, const double t, const int el_id, const DefGradMatrix< T > &def_grad) const
virtual void set_size(const int size) override
FiberDirection fiber_direction_
virtual ~GenericFiber()=default
Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, 0, 3, 3 > DefGradMatrix
T determinant(const Eigen::Matrix< T, rows, cols, option, maxRow, maxCol > &mat)
Eigen::Matrix< double, 1, Eigen::Dynamic, Eigen::RowMajor, 1, 3 > RowVectorNd