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>
143 <<
"Invalid DerivativeForm index " << arg1);
170 template <
int order,
int dim,
int spacedim,
typename Number>
181 template <
int order,
int dim,
int spacedim,
typename Number>
185 Assert( (dim == spacedim),
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>
200 for (
unsigned int j=0; j<spacedim; ++j)
207 template <
int order,
int dim,
int spacedim,
typename Number>
212 Assert( (dim == spacedim),
213 ExcMessage(
"Only allowed when dim==spacedim."));
216 for (
unsigned int j=0; j<dim; ++j)
224 template <
int order,
int dim,
int spacedim,
typename Number>
229 Assert( (1 == spacedim) && (order==1),
230 ExcMessage(
"Only allowed for spacedim==1 and order==1."));
240 template <
int order,
int dim,
int spacedim,
typename Number>
245 Assert (i<spacedim, ExcIndexRange(i, 0, spacedim));
252 template <
int order,
int dim,
int spacedim,
typename Number>
257 Assert (i<spacedim, ExcIndexRange(i, 0, spacedim));
264 template <
int order,
int dim,
int spacedim,
typename Number>
268 Assert( (1 == spacedim) && (order==1),
277 template <
int order,
int dim,
int spacedim,
typename Number>
281 Assert( (dim == spacedim),
282 ExcMessage(
"Only allowed when dim==spacedim."));
287 for (
unsigned int j=0; j<dim; ++j)
296 template <
int order,
int dim,
int spacedim,
typename Number>
305 for (
unsigned int i=0; i<spacedim; ++i)
306 for (
unsigned int j=0; j<dim; ++j)
307 tt[j][i] = (*
this)[i][j];
314 template <
int order,
int dim,
int spacedim,
typename Number>
321 for (
unsigned int i=0; i<spacedim; ++i)
322 for (
unsigned int j=0; j<dim; ++j)
323 dest[i][j] = (*
this)[i] * T[j];
329 template <
int order,
int dim,
int spacedim,
typename Number>
338 return ::determinant(T);
345 for (
unsigned int i=0; i<dim; ++i)
346 for (
unsigned int j=0; j<dim; ++j)
347 G[i][j] = DF_t[i] * DF_t[j];
357 template <
int order,
int dim,
int spacedim,
typename Number>
375 for (
unsigned int i=0; i<dim; ++i)
376 for (
unsigned int j=0; j<dim; ++j)
377 G[i][j] = DF_t[i] * DF_t[j];
386 template <
int order,
int dim,
int spacedim,
typename Number>
408 template <
int spacedim,
int dim,
typename Number>
415 for (
unsigned int i=0; i<spacedim; ++i)
429 template <
int spacedim,
int dim,
typename Number>
437 for (
unsigned int i=0; i<dim; ++i)
449 template <
int spacedim,
int dim,
typename Number>
457 for (
unsigned int i=0; i<spacedim; ++i)
471 template <
int dim,
int spacedim,
typename Number>
482 DEAL_II_NAMESPACE_CLOSE
::ExceptionBase & ExcMessage(std::string arg1)
#define Assert(cond, exc)