10template <
typename T1,
typename T2,
int Dim>
16template <
typename T1,
typename T2,
int Dim>
33template <
typename T1,
typename T2,
typename S,
int Dim>
45 return getMatImpl<double, double, 3>(t_val, t_vec, f);
51 return getMatImpl<FTensor::PackPtr<double *, 3>,
58 return getMatImpl<FTensor::PackPtr<double *, 3>,
65 return getMatImpl<FTensor::CursorPtr<double *, 3>,
73 return getDiffMatImpl<double, double, 3>(t_val, t_vec, f, d_f, nb);
80 return getDiffMatImpl<FTensor::PackPtr<double *, 3>,
89 return getDiffMatImpl<FTensor::PackPtr<double *, 3>,
98 return getDiffMatImpl<FTensor::CursorPtr<double *, 3>,
107 return getDiffDiffMatImpl<double, double, FTensor::Tensor2<double, 3, 3>, 3>(
108 t_val, t_vec, f, d_f, dd_f, t_S, nb);
116 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 3>,
119 t_val, t_vec, f, d_f, dd_f, t_S, nb);
127 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 3>,
130 t_val, t_vec, f, d_f, dd_f, t_S, nb);
138 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 3>,
141 t_val, t_vec, f, d_f, dd_f, t_S, nb);
151 t_val, t_vec, f, d_f, dd_f, t_S, nb);
160 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 3>,
163 t_val, t_vec, f, d_f, dd_f, t_S, nb);
172 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 3>,
175 t_val, t_vec, f, d_f, dd_f, t_S, nb);
184 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 3>,
187 t_val, t_vec, f, d_f, dd_f, t_S, nb);
192 return getMatImpl<double, double, 2>(t_val, t_vec, f);
198 return getMatImpl<FTensor::PackPtr<double *, 2>,
205 return getMatImpl<FTensor::PackPtr<double *, 2>,
212 return getMatImpl<FTensor::CursorPtr<double *, 2>,
218 return getMatImpl<double, double, 6>(t_val, t_vec, f);
225 return getDiffMatImpl<double, double, 2>(t_val, t_vec, f, d_f, nb);
232 return getDiffMatImpl<FTensor::PackPtr<double *, 2>,
241 return getDiffMatImpl<FTensor::PackPtr<double *, 2>,
250 return getDiffMatImpl<FTensor::CursorPtr<double *, 2>,
259 return getDiffDiffMatImpl<double, double, FTensor::Tensor2<double, 2, 2>, 2>(
260 t_val, t_vec, f, d_f, dd_f, t_S, nb);
270 t_val, t_vec, f, d_f, dd_f, t_S, nb);
278 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
281 t_val, t_vec, f, d_f, dd_f, t_S, nb);
289 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
292 t_val, t_vec, f, d_f, dd_f, t_S, nb);
300 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 2>,
303 t_val, t_vec, f, d_f, dd_f, t_S, nb);
312 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
315 t_val, t_vec, f, d_f, dd_f, t_S, nb);
324 return getDiffDiffMatImpl<FTensor::PackPtr<double *, 2>,
327 t_val, t_vec, f, d_f, dd_f, t_S, nb);
336 return getDiffDiffMatImpl<FTensor::CursorPtr<double *, 2>,
339 t_val, t_vec, f, d_f, dd_f, t_S, nb);
351 t_val, t_vec, f, d_f, dd_f, t_S, nb);
363 t_val, t_vec, f, d_f, dd_f, t_S, nb);
375 t_val, t_vec, f, d_f, dd_f, t_S, nb);
387 t_val, t_vec, f, d_f, dd_f, t_S, nb);
399 t_val, t_vec, f, d_f, dd_f, t_S, nb);
411 t_val, t_vec, f, d_f, dd_f, t_S, nb);
423 t_val, t_vec, f, d_f, dd_f, t_S, nb);
435 t_val, t_vec, f, d_f, dd_f, t_S, nb);
447 t_val, t_vec, f, d_f, dd_f, t_S, nb);
459 t_val, t_vec, f, d_f, dd_f, t_S, nb);
471 t_val, t_vec, f, d_f, dd_f, t_S, nb);
483 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 getDiffDiffMat(Fun f, Fun d_f, Fun dd_f, T &t_S)
auto getMat(Fun f)
Get matrix.
auto getDiffMat(Fun f, Fun d_f)
Get derivative of matrix.