10template <
typename T1,
typename T2,
int Dim>
16template <
typename T1,
typename T2,
int Dim>
33template <
typename T1,
typename T2,
typename S,
int Dim>
55 return getMatImpl<double, double, 3>(t_val, t_vec, f);
61 return getMatImpl<FTensor::PackPtr<double *, 3>,
68 return getMatImpl<FTensor::PackPtr<double *, 3>,
75 return getMatImpl<FTensor::CursorPtr<double *, 3>,
83 return getDiffMatImpl<double, double, 3>(t_val, t_vec, f, d_f, nb);
90 return getDiffMatImpl<FTensor::PackPtr<double *, 3>,
99 return getDiffMatImpl<FTensor::PackPtr<double *, 3>,
108 return getDiffMatImpl<FTensor::CursorPtr<double *, 3>,
117 return getDiffDiffMatImpl<double, double, FTensor::Tensor2<double, 3, 3>, 3>(
118 t_val, t_vec, f, d_f, dd_f, t_S, nb);
126 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 3>,
129 t_val, t_vec, f, d_f, dd_f, t_S, nb);
137 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 3>,
140 t_val, t_vec, f, d_f, dd_f, t_S, nb);
148 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 3>,
151 t_val, t_vec, f, d_f, dd_f, t_S, nb);
161 t_val, t_vec, f, d_f, dd_f, t_S, nb);
170 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 3>,
173 t_val, t_vec, f, d_f, dd_f, t_S, nb);
182 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 3>,
185 t_val, t_vec, f, d_f, dd_f, t_S, nb);
194 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 3>,
197 t_val, t_vec, f, d_f, dd_f, t_S, nb);
202 return getMatImpl<double, double, 2>(t_val, t_vec, f);
208 return getMatImpl<FTensor::PackPtr<double *, 2>,
215 return getMatImpl<FTensor::PackPtr<double *, 2>,
222 return getMatImpl<FTensor::CursorPtr<double *, 2>,
228 return getMatImpl<double, double, 6>(t_val, t_vec, f);
235 return getDiffMatImpl<double, double, 2>(t_val, t_vec, f, d_f, nb);
242 return getDiffMatImpl<FTensor::PackPtr<double *, 2>,
251 return getDiffMatImpl<FTensor::PackPtr<double *, 2>,
260 return getDiffMatImpl<FTensor::CursorPtr<double *, 2>,
269 return getDiffDiffMatImpl<double, double, FTensor::Tensor2<double, 2, 2>, 2>(
270 t_val, t_vec, f, d_f, dd_f, t_S, nb);
280 t_val, t_vec, f, d_f, dd_f, t_S, nb);
288 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
291 t_val, t_vec, f, d_f, dd_f, t_S, nb);
299 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
302 t_val, t_vec, f, d_f, dd_f, t_S, nb);
310 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 2>,
313 t_val, t_vec, f, d_f, dd_f, t_S, nb);
322 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
325 t_val, t_vec, f, d_f, dd_f, t_S, nb);
334 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
337 t_val, t_vec, f, d_f, dd_f, t_S, nb);
346 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 2>,
349 t_val, t_vec, f, d_f, dd_f, t_S, nb);
361 t_val, t_vec, f, d_f, dd_f, t_S, nb);
373 t_val, t_vec, f, d_f, dd_f, t_S, nb);
385 t_val, t_vec, f, d_f, dd_f, t_S, nb);
397 t_val, t_vec, f, d_f, dd_f, t_S, nb);
409 t_val, t_vec, f, d_f, dd_f, t_S, nb);
421 t_val, t_vec, f, d_f, dd_f, t_S, nb);
433 t_val, t_vec, f, d_f, dd_f, t_S, nb);
445 t_val, t_vec, f, d_f, dd_f, t_S, nb);
457 t_val, t_vec, f, d_f, dd_f, t_S, nb);
469 t_val, t_vec, f, d_f, dd_f, t_S, nb);
481 t_val, t_vec, f, d_f, dd_f, t_S, nb);
493 t_val, t_vec, f, d_f, dd_f, t_S, nb);
Tensors class implemented by Walter Landry.
#define THROW_MESSAGE(msg)
Throw MoFEM exception.
FTensor::Tensor2_symmetric< double, Dim > getMatImpl(Val< T1, Dim > &t_val, Vec< T2, Dim > &t_vec, Fun< double > f)
FTensor::Ddg< double, Dim, Dim > getDiffDiffMatImpl(Val< T1, Dim > &t_val, Vec< T2, Dim > &t_vec, Fun< double > f, Fun< double > d_f, Fun< double > dd_f, S &t_S, const int nb)
boost::function< T(const T)> Fun
FTensor::Ddg< double, Dim, Dim > getDiffMatImpl(Val< T1, Dim > &t_val, Vec< T2, Dim > &t_vec, Fun< double > f, Fun< double > d_f, const int nb)
FTensor::Ddg< double, 3, 3 > getDiffMatSpecial(Val< double, 3 > &t_val, Vec< double, 3 > &t_vec, Fun< double > f, Fun< double > d_f, const int nb)
Get the Diff Mat object.
FTensor::Ddg< double, 3, 3 > getDiffDiffMatSpecial(Val< double, 3 > &t_val, Vec< double, 3 > &t_vec, Fun< double > f, Fun< double > d_f, Fun< double > dd_f, FTensor::Tensor2< double, 3, 3 > &t_S, const int nb)
Get the Diff Diff Mat object.
FTensor::Tensor2_symmetric< double, 3 > getMatSpecial(Val< double, 3 > &t_val, Vec< double, 3 > &t_vec, Fun< double > f)
Get the Mat object.
auto getMat(Fun f)
Get matrix.
auto getDiffMat(Fun f, Fun d_f)
Get derivative of matrix.
auto getDiffDiffMat(Fun f, Fun d_f, Fun dd_f, T &t_S)
Get second directive of matrix.