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>,
230 return getDiffMatImpl<double, double, 2>(t_val, t_vec, f, d_f, nb);
237 return getDiffMatImpl<FTensor::PackPtr<double *, 2>,
246 return getDiffMatImpl<FTensor::PackPtr<double *, 2>,
255 return getDiffMatImpl<FTensor::CursorPtr<double *, 2>,
264 return getDiffDiffMatImpl<double, double, FTensor::Tensor2<double, 2, 2>, 2>(
265 t_val, t_vec, f, d_f, dd_f, t_S, nb);
275 t_val, t_vec, f, d_f, dd_f, t_S, nb);
283 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
286 t_val, t_vec, f, d_f, dd_f, t_S, nb);
294 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
297 t_val, t_vec, f, d_f, dd_f, t_S, nb);
305 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 2>,
308 t_val, t_vec, f, d_f, dd_f, t_S, nb);
317 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
320 t_val, t_vec, f, d_f, dd_f, t_S, nb);
329 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
332 t_val, t_vec, f, d_f, dd_f, t_S, nb);
341 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 2>,
344 t_val, t_vec, f, d_f, dd_f, t_S, nb);
356 t_val, t_vec, f, d_f, dd_f, t_S, nb);
368 t_val, t_vec, f, d_f, dd_f, t_S, nb);
380 t_val, t_vec, f, d_f, dd_f, t_S, nb);
392 t_val, t_vec, f, d_f, dd_f, t_S, nb);
404 t_val, t_vec, f, d_f, dd_f, t_S, nb);
416 t_val, t_vec, f, d_f, dd_f, t_S, nb);
428 t_val, t_vec, f, d_f, dd_f, t_S, nb);
440 t_val, t_vec, f, d_f, dd_f, t_S, nb);
452 t_val, t_vec, f, d_f, dd_f, t_S, nb);
464 t_val, t_vec, f, d_f, dd_f, t_S, nb);
476 t_val, t_vec, f, d_f, dd_f, t_S, nb);
488 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.