3#ifndef DUNE_PDELAB_COMMON_JACOBIANTOCURL_HH 
    4#define DUNE_PDELAB_COMMON_JACOBIANTOCURL_HH 
   25    template<
typename Jacobian, std::size_t dimR = Jacobian::rows,
 
   26             std::size_t dimD = Jacobian::cols>
 
   55    template<
typename Jacobian>
 
   58      ( Jacobian::rows == 1 && Jacobian::cols == 2, 
"This specialization " 
   59        "works only for dimRange == 1 and dimDomain == 2");
 
   62      typedef typename Jacobian::block_type CurlField;
 
   63      static const std::size_t dimCurl = 2;
 
   66      void operator()(
const Jacobian& jacobian, 
Curl& curl)
 const {
 
   67        curl[0] =  jacobian[0][1];
 
   68        curl[1] = -jacobian[0][0];
 
   96    template<
typename Jacobian>
 
   99      ( Jacobian::rows == 2 && Jacobian::cols == 2, 
"This specialization " 
  100        "works only for dimRange == 2 and dimDomain == 2");
 
  103      typedef typename Jacobian::block_type CurlField;
 
  104      static const std::size_t dimCurl = 1;
 
  107      void operator()(
const Jacobian& jacobian, 
Curl& curl)
 const {
 
  108        curl[0] = jacobian[1][0]-jacobian[0][1];
 
  131    template<
typename Jacobian>
 
  134      ( Jacobian::rows == 3 && Jacobian::cols == 3, 
"This specialization " 
  135        "works only for dimRange == 3 and dimDomain == 3");
 
  138      typedef typename Jacobian::block_type CurlField;
 
  139      static const std::size_t dimCurl = 3;
 
  142      void operator()(
const Jacobian& jacobian, 
Curl& curl)
 const {
 
  143        for(std::size_t alpha = 0; alpha < 3; ++alpha) {
 
  144          std::size_t beta  = (alpha+1)%3;
 
  145          std::size_t gamma = (alpha+2)%3;
 
  146          curl[alpha] = jacobian[gamma][beta]-jacobian[beta][gamma];
 
vector space out of a tensor product of fields.
Definition: fvector.hh:97
 
extract the curl of a function from the jacobian of that function
Definition: jacobiantocurl.hh:27
 
Implements a vector constructed from a given type representing a field and a compile-time given size.
 
Dune namespace.
Definition: alignedallocator.hh:13