16 #ifndef dealii_derivative_form_h 17 #define dealii_derivative_form_h 59 template <
int order,
int dim,
int spacedim,
typename Number =
double>
154 <<
"Invalid DerivativeForm index " << arg1);
176 template <
int order,
int dim,
int spacedim,
typename Number>
181 ExcMessage(
"Only allowed for forms with dim==spacedim."));
183 for (
unsigned int j = 0; j < dim; ++j)
189 template <
int order,
int dim,
int spacedim,
typename Number>
197 for (
unsigned int j = 0; j < dim; ++j)
204 template <
int order,
int dim,
int spacedim,
typename Number>
209 Assert((1 == spacedim) && (order == 1),
210 ExcMessage(
"Only allowed for spacedim==1 and order==1."));
219 template <
int order,
int dim,
int spacedim,
typename Number>
230 template <
int order,
int dim,
int spacedim,
typename Number>
242 template <
int order,
int dim,
int spacedim,
typename Number>
246 Assert((1 == spacedim) && (order == 1),
254 template <
int order,
int dim,
int spacedim,
typename Number>
263 for (
unsigned int j = 0; j < dim; ++j)
271 template <
int order,
int dim,
int spacedim,
typename Number>
278 for (
unsigned int i = 0; i < spacedim; ++i)
279 for (
unsigned int j = 0; j < dim; ++j)
280 tt[j][i] = (*
this)[i][j];
287 template <
int order,
int dim,
int spacedim,
typename Number>
294 for (
unsigned int i = 0; i < spacedim; ++i)
295 for (
unsigned int j = 0; j < dim; ++j)
296 dest[i][j] = (*
this)[i] * T[j];
303 template <
int order,
int dim,
int spacedim,
typename Number>
308 for (
unsigned int i = 0; i < spacedim; ++i)
309 sum_of_squares +=
tensor[i].norm_square();
310 return std::sqrt(sum_of_squares);
315 template <
int order,
int dim,
int spacedim,
typename Number>
331 for (
unsigned int i = 0; i < dim; ++i)
332 for (
unsigned int j = 0; j < dim; ++j)
333 G[i][j] = DF_t[i] * DF_t[j];
341 template <
int order,
int dim,
int spacedim,
typename Number>
355 for (
unsigned int i = 0; i < dim; ++i)
356 for (
unsigned int j = 0; j < dim; ++j)
357 G[i][j] = DF_t[i] * DF_t[j];
364 template <
int order,
int dim,
int spacedim,
typename Number>
397 template <
int spacedim,
int dim,
typename Number>
403 for (
unsigned int i = 0; i < spacedim; ++i)
404 dest[i] = grad_F[i] * d_x;
419 template <
int spacedim,
int dim,
typename Number>
425 for (
unsigned int i = 0; i < dim; ++i)
447 template <
int spacedim,
int dim,
typename Number>
454 for (
unsigned int i = 0; i < spacedim; ++i)
468 template <
int dim,
int spacedim,
typename Number>
constexpr Number determinant(const SymmetricTensor< 2, dim, Number > &)
#define AssertIndexRange(index, range)
static ::ExceptionBase & ExcMessage(std::string arg1)
#define DeclException1(Exception1, type1, outsequence)
#define Assert(cond, exc)
#define DEAL_II_NAMESPACE_CLOSE
#define DEAL_II_NAMESPACE_OPEN
static ::ExceptionBase & ExcInvalidTensorIndex(int arg1)
constexpr SymmetricTensor< 2, dim, Number > invert(const SymmetricTensor< 2, dim, Number > &)