16 #ifndef dealii_derivative_form_h 17 #define dealii_derivative_form_h 19 #include <deal.II/base/tensor.h> 21 DEAL_II_NAMESPACE_OPEN
55 template <
int order,
int dim,
int spacedim,
typename Number =
double>
148 <<
"Invalid DerivativeForm index " << arg1);
171 template <
int order,
int dim,
int spacedim,
typename Number>
181 template <
int order,
int dim,
int spacedim,
typename Number>
186 ExcMessage(
"Only allowed for forms with dim==spacedim."));
188 for (
unsigned int j = 0; j < dim; ++j)
194 template <
int order,
int dim,
int spacedim,
typename Number>
202 for (
unsigned int j = 0; j < dim; ++j)
209 template <
int order,
int dim,
int spacedim,
typename Number>
214 Assert((1 == spacedim) && (order == 1),
215 ExcMessage(
"Only allowed for spacedim==1 and order==1."));
224 template <
int order,
int dim,
int spacedim,
typename Number>
235 template <
int order,
int dim,
int spacedim,
typename Number>
247 template <
int order,
int dim,
int spacedim,
typename Number>
251 Assert((1 == spacedim) && (order == 1),
259 template <
int order,
int dim,
int spacedim,
typename Number>
268 for (
unsigned int j = 0; j < dim; ++j)
276 template <
int order,
int dim,
int spacedim,
typename Number>
283 for (
unsigned int i = 0; i < spacedim; ++i)
284 for (
unsigned int j = 0; j < dim; ++j)
285 tt[j][i] = (*
this)[i][j];
292 template <
int order,
int dim,
int spacedim,
typename Number>
299 for (
unsigned int i = 0; i < spacedim; ++i)
300 for (
unsigned int j = 0; j < dim; ++j)
301 dest[i][j] = (*
this)[i] * T[j];
308 template <
int order,
int dim,
int spacedim,
typename Number>
313 for (
unsigned int i = 0; i < spacedim; ++i)
314 sum_of_squares +=
tensor[i].norm_square();
315 return std::sqrt(sum_of_squares);
320 template <
int order,
int dim,
int spacedim,
typename Number>
336 for (
unsigned int i = 0; i < dim; ++i)
337 for (
unsigned int j = 0; j < dim; ++j)
338 G[i][j] = DF_t[i] * DF_t[j];
346 template <
int order,
int dim,
int spacedim,
typename Number>
360 for (
unsigned int i = 0; i < dim; ++i)
361 for (
unsigned int j = 0; j < dim; ++j)
362 G[i][j] = DF_t[i] * DF_t[j];
369 template <
int order,
int dim,
int spacedim,
typename Number>
388 template <
int spacedim,
int dim,
typename Number>
394 for (
unsigned int i = 0; i < spacedim; ++i)
408 template <
int spacedim,
int dim,
typename Number>
414 for (
unsigned int i = 0; i < dim; ++i)
426 template <
int spacedim,
int dim,
typename Number>
433 for (
unsigned int i = 0; i < spacedim; ++i)
447 template <
int dim,
int spacedim,
typename Number>
457 DEAL_II_NAMESPACE_CLOSE
Number determinant(const SymmetricTensor< 2, dim, Number > &)
static::ExceptionBase & ExcIndexRange(int arg1, int arg2, int arg3)
SymmetricTensor< 2, dim, Number > invert(const SymmetricTensor< 2, dim, Number > &)
static::ExceptionBase & ExcMessage(std::string arg1)
#define DeclException1(Exception1, type1, outsequence)
#define Assert(cond, exc)
static::ExceptionBase & ExcInvalidTensorIndex(int arg1)