10#include <dune/common/fvector.hh>
29 template <
class F,
int dimD,
unsigned int deriv>
39 typedef Dune::FieldVector<F,size>
Block;
44 block() = field_cast< F >( f );
91 template <
class F,
unsigned int deriv>
103 template <
class F,
int dimD>
111 typedef Dune::FieldVector<F,size>
Block;
116 block() = field_cast< F >( f );
166 template <
class F,
int dimD,
int dimR,
unsigned int deriv,
171 template <
class F,
int dimD,
int dimR,
unsigned int deriv>
183 static const unsigned int dimDomain = dimD;
184 static const unsigned int dimRange = dimR;
186 enum { size = Base::size+ThisLFETensor::size*dimR };
187 typedef Dune::FieldVector<F,size>
Block;
199 template <
unsigned int dorder>
202 tensor<dorder>() = t;
219 block().axpy(a,y.
block());
233 for (
int rr=0; rr<dimR; ++rr)
234 tensor_[rr] = y[rr].
template tensor<deriv>()[0];
237 template <
class Fy,
int dimRy>
240 assign<Fy,dimRy>(y.block(),r);
256 return reinterpret_cast<Block&
>(*this);
260 return reinterpret_cast<const Block&
>(*this);
263 template <
unsigned int dorder>
264 const Dune::FieldVector<LFETensor<F,dimD,dorder>,dimR> &
tensor()
const
267 const std::integral_constant<int,dorder> a = {};
270 template <
unsigned int dorder>
271 Dune::FieldVector<LFETensor<F,dimD,dorder>,dimR> &
tensor()
274 return tensor(std::integral_constant<int,dorder>());
276 template <
unsigned int dorder>
277 const Dune::FieldVector<F,LFETensor<F,dimD,dorder>::size*dimR> &
block()
const
280 const std::integral_constant<int,dorder> a = {};
281 return reinterpret_cast<const Dune::FieldVector<F,LFETensor<F,dimD,dorder>::size*dimR
>&>(tensor(a));
283 template <
unsigned int dorder>
284 Dune::FieldVector<F,LFETensor<F,dimD,dorder>::size*dimR> &
block()
287 const std::integral_constant<int,dorder> a = {};
288 return reinterpret_cast<Dune::FieldVector<F,LFETensor<F,dimD,dorder>::size*dimR
>&>(tensor(a));
297 template <
class Fy,
int dimRy>
298 void assign(
const FieldVector<Fy,size*dimRy> &y,
unsigned int r)
300 Base::template assign<Fy,dimRy>(
reinterpret_cast<const FieldVector<Fy,Base::size*dimRy>&
>(y),r);
301 tensor_[0] =
reinterpret_cast<const FieldVector<Fy,ThisLFETensor::size>&
>(y[Base::size*dimRy+r*ThisLFETensor::size]);
304 void assign(
unsigned int r,
const FieldVector<Fy,size/dimR> &y)
306 Base::assign(r,
reinterpret_cast<const FieldVector<Fy,Base::size/dimR
>&>(y));
307 tensor_[r] =
reinterpret_cast<const FieldVector<Fy,ThisLFETensor::size>&
>(y[Base::size/dimR]);
310 template <
class Fy,
unsigned int dy>
314 for (
int rr=0; rr<dimR; ++rr)
315 tensor_[rr] = y[rr].
template tensor<deriv>()[0];
318 template <
int dorder>
319 const Dune::FieldVector<LFETensor<F,dimD,dorder>,dimR> &
320 tensor(
const std::integral_constant<int,dorder> &dorderVar)
const
322 return Base::tensor(dorderVar);
324 const Dune::FieldVector<LFETensor<F,dimD,deriv>,dimR> &
325 tensor(
const std::integral_constant<int,deriv> &dorderVar)
const
329 template <
int dorder>
330 Dune::FieldVector<LFETensor<F,dimD,dorder>,dimR> &
331 tensor(
const std::integral_constant<int,dorder> &dorderVar)
333 return Base::tensor(dorderVar);
335 Dune::FieldVector<LFETensor<F,dimD,deriv>,dimR> &
336 tensor(
const std::integral_constant<int,deriv> &dorderVar)
340 Dune::FieldVector<ThisLFETensor,dimR>
tensor_;
343 template <
class F,
int dimD,
int dimR>
353 static const unsigned int dimDomain = dimD;
354 static const unsigned int dimRange = dimR;
356 enum { size = ThisLFETensor::size*dimR };
357 typedef Dune::FieldVector<F,size>
Block;
362 for (
int r=0; r<dimR; ++r)
363 tensor_[r] = field_cast<F>(f);
386 block().axpy(a,y.
block());
396 for (
int rr=0; rr<dimR; ++rr)
397 tensor_[rr] = y[rr].
template tensor<0>()[0];
399 template <
class Fy,
int dimRy>
402 assign<Fy,dimRy>(y.block(),r);
407 tensor_[r].assign(y[0]);
412 tensor_[r].assign(y[0][0]);
417 return reinterpret_cast<Block&
>(*this);
421 return reinterpret_cast<const Block&
>(*this);
430 template <
int dorder>
431 const Dune::FieldVector<LFETensor<F,dimD,0>,dimR> &
tensor()
const
435 Dune::FieldVector<LFETensor<F,dimD,0>,dimR> &
tensor()
439 template <
unsigned int dorder>
440 const Dune::FieldVector<F,LFETensor<F,dimD,dorder>::size*dimR> &
block()
const
443 const std::integral_constant<int,dorder> a = {};
444 return reinterpret_cast<const Dune::FieldVector<F,LFETensor<F,dimD,dorder>::size*dimR
>&>(tensor(a));
446 template <
unsigned int dorder>
447 Dune::FieldVector<F,LFETensor<F,dimD,dorder>::size*dimR> &
block()
450 const std::integral_constant<int,dorder> a = {};
451 return reinterpret_cast<Dune::FieldVector<F,LFETensor<F,dimD,dorder>::size*dimR
>&>(tensor(a));
455 const Dune::FieldVector<LFETensor<F,dimD,0>,dimR> &
456 tensor(
const std::integral_constant<int,0> &dorderVar)
const
460 Dune::FieldVector<LFETensor<F,dimD,0>,dimR> &
461 tensor(
const std::integral_constant<int,0> &dorderVar)
465 template <
class Fy,
unsigned int dy>
468 for (
int rr=0; rr<dimR; ++rr)
469 tensor_[rr] = y[rr].
template tensor<0>()[0];
471 template <
class Fy,
int dimRy>
472 void assign(
const FieldVector<Fy,size*dimRy> &y,
unsigned int r)
474 tensor_[0] =
reinterpret_cast<const FieldVector<Fy,ThisLFETensor::size>&
>(y[r*ThisLFETensor::size]);
477 void assign(
unsigned int r,
const FieldVector<Fy,size/dimR> &y)
481 Dune::FieldVector<ThisLFETensor,dimR>
tensor_;
485 template <
class F,
int dimD,
int dimR,
unsigned int deriv>
495 static const unsigned int dimDomain = dimD;
496 static const unsigned int dimRange = dimR;
498 enum { size = ScalarDeriv::size*dimR };
499 typedef Dune::FieldVector<F,size>
Block;
504 block() = field_cast<F>(f);
522 block().axpy(field_cast<F>(a),y.
block());
534 for (
unsigned int rr=0; rr<dimR; ++rr)
535 deriv_[rr].assign(y,rr);
538 template <
class Fy,DerivativeLayout layouty>
541 deriv_[r].assign(r,y);
546 return reinterpret_cast<Block&
>(*this);
550 return reinterpret_cast<const Block&
>(*this);
560 Dune::FieldVector<ScalarDeriv,dimR>
deriv_;
566 template <
class Vec1,
class Vec2,
unsigned int deriv>
569 template <
class Field>
570 static void apply(
unsigned int r,
const Field &a,
571 const Vec1 &x, Vec2 &y)
576 template <
class F1,
int dimD,
int dimR,
583 template <
class Field>
584 static void apply(
unsigned int r,
const Field &a,
585 const Vec1 &x, Vec2 &y)
587 const FieldVector<F1,Vec2::size> &xx = x.template block<deriv>();
588 for (
int i=0; i<y.size; ++i)
592 template <
class F1,
int dimD,
int dimR,
599 template <
class Field>
600 static void apply(
unsigned int r,
const Field &a,
601 const Vec1 &x, Vec2 &y)
603 for (
int rr=0; rr<dimR; ++rr)
605 Vec2,deriv>
::apply(rr,a,x[rr],y);
608 template <
class F1,
int dimD,
615 template <
class Field>
616 static void apply(
unsigned int r,
const Field &a,
617 const Vec1 &x, Vec2 &y)
620 Vec2,deriv>
::apply(r,a,x[0],y);
623 template <
class F1,
int dimD,
630 template <
class Field>
631 static void apply(
unsigned int r,
const Field &a,
632 const Vec1 &x, Vec2 &y)
635 const unsigned int rr = r*LFETensorType::size;
636 const FieldVector<F1,LFETensorType::size> &xx = x.template block<deriv>();
637 for (
int i=0; i<FieldVector<F1,LFETensorType::size>::dimension; ++i)
645 template <
class Vec1,
class Vec2>
648 static void apply(
unsigned int r,
const Vec1 &vec1,Vec2 &vec2)
665 template <
int dimD,
int dimR,
unsigned int deriv,
677 template <
int dimD,
int dimR,
unsigned int deriv,
713 template <
int dimD,
unsigned int deriv,
725 template <
int dimD,
unsigned int deriv,
737 template <
int dimD,
unsigned int deriv,
749 template <
int dimD,
unsigned int deriv,
773 template <
int dimD,
int dimR,
774 class F1,
unsigned int deriv,
779 typedef FieldVector<F2,dimR>
Vec2;
785 template <
int dimD,
int dimR,
786 class F1,
unsigned int deriv,
791 typedef FieldVector<F2,dimR>
Vec2;
794 for (
int rr=0; rr<dimR; ++rr)
795 field_cast(vec1[rr].
template tensor<0>()[0].block(),vec2[rr]);
799 class F1,
unsigned int deriv,
804 typedef FieldVector<F2,dimR>
Vec2;
807 field_cast(vec1.template tensor<0>()[0].block(),vec2[r]);
811 class F1,
unsigned int deriv,
816 typedef FieldVector<F2,dimR>
Vec2;
819 field_cast(vec1[0].
template tensor<0>()[0].block(),vec2[r]);
823 class F1,
unsigned int deriv,
828 typedef FieldVector<F2,1>
Vec2;
831 field_cast(vec1.template tensor<0>()[0].block(),vec2);
835 class F1,
unsigned int deriv,
840 typedef FieldVector<F2,1>
Vec2;
843 field_cast(vec1[0].
template tensor<0>()[0].block(),vec2);
850 template <
class F,
int dimD,
unsigned int deriv>
853 return out << tensor.
block();
856 template <
class F,
int dimD,
unsigned int deriv>
857 std::ostream &
operator<< ( std::ostream &out,
const ScalarDerivatives< F,dimD,deriv > &d )
859 out <<
static_cast<const ScalarDerivatives< F,dimD,deriv-1
> &>(d);
860 out <<
" , " << d.tensor() << std::endl;
863 template <
class F,
int dimD>
864 std::ostream &
operator<< ( std::ostream &out,
const ScalarDerivatives< F,dimD,0 > &d )
866 out << d.tensor() << std::endl;
870 template <
class F,
int dimD,
int dimR,
unsigned int deriv>
875 for (
int r=1; r<dimR; ++r)
877 out <<
" , " << d[r];
879 out <<
" ) " << std::endl;
882 template <
class F,
int dimD,
int dimR,
unsigned int deriv>
888 for (
int r=1; r<dimR; ++r)
890 out <<
" , " << d[r];
892 out <<
" ) " << std::endl;
895 template <
class F,
int dimD,
int dimR>
900 for (
int r=1; r<dimR; ++r)
902 out <<
" , " << d[r];
904 out <<
" ) " << std::endl;
907 template <
class F,
int dimD,
int dimR>
912 for (
int r=1; r<dimR; ++r)
914 out <<
" , " << d[r];
916 out <<
" ) " << std::endl;
919 template <
class F,
int dimD,
int dimR,
unsigned int deriv,DerivativeLayout layout>
922 out <<
"Number of basis functions: " << y.size() << std::endl;
923 for (
unsigned int i=0; i<y.size(); ++i)
925 out <<
"Base " << i <<
" : " << std::endl;
Definition brezzidouglasmarini1cube2d.hh:14
void field_cast(const F1 &f1, F2 &f2)
a helper class to cast from one field to another
Definition field.hh:157
DerivativeLayout
Definition tensor.hh:165
@ derivative
Definition tensor.hh:165
@ value
Definition tensor.hh:165
std::ostream & operator<<(std::ostream &out, const LFEMatrix< Field > &mat)
Definition lfematrix.hh:149
const Block & block() const
Definition tensor.hh:74
This & operator*=(const field_type &f)
Definition tensor.hh:54
Dune::FieldVector< F, size > Block
Definition tensor.hh:39
This & operator=(const FF &f)
Definition tensor.hh:42
Block block_
Definition tensor.hh:87
F field_type
Definition tensor.hh:37
void axpy(const F &a, const This &y)
Definition tensor.hh:78
Block & block()
Definition tensor.hh:70
void assign(const LFETensor< Fy, dimD, deriv > &y)
Definition tensor.hh:83
static const unsigned int size
Definition tensor.hh:38
const field_type & operator[](const unsigned int i) const
Definition tensor.hh:60
Block & block()
Definition tensor.hh:152
F field_type
Definition tensor.hh:109
Block block_
Definition tensor.hh:160
void assign(const LFETensor< Fy, dimD, 0 > &y)
Definition tensor.hh:147
const Block & block() const
Definition tensor.hh:156
void axpy(const F &a, const This &y)
Definition tensor.hh:142
Dune::FieldVector< F, size > Block
Definition tensor.hh:111
void assign(unsigned int r, const Derivatives< Fy, dimD, 1, deriv, derivative > &y)
Definition tensor.hh:249
Dune::FieldVector< LFETensor< F, dimD, dorder >, dimR > & tensor(const std::integral_constant< int, dorder > &dorderVar)
Definition tensor.hh:331
void assign(const FieldVector< Fy, size *dimRy > &y, unsigned int r)
Definition tensor.hh:298
void axpy(const F &a, const This &y)
Definition tensor.hh:217
This & operator=(const Dune::FieldVector< LFETensor< F, dimD, dorder >, dimR > &t)
Definition tensor.hh:200
Dune::FieldVector< ThisLFETensor, dimR > tensor_
Definition tensor.hh:340
This & operator=(const Block &t)
Definition tensor.hh:205
Dune::FieldVector< LFETensor< F, dimD, deriv >, dimR > & tensor(const std::integral_constant< int, deriv > &dorderVar)
Definition tensor.hh:336
This & operator=(const F &f)
Definition tensor.hh:189
Block & block()
Definition tensor.hh:254
Derivatives< F, dimD, dimR, deriv, value > This
Definition tensor.hh:175
void assign(unsigned int r, const FieldVector< Fy, size/dimR > &y)
Definition tensor.hh:304
ThisLFETensor & operator[](int r)
Definition tensor.hh:290
LFETensor< F, dimD, deriv > ThisLFETensor
Definition tensor.hh:177
const Block & block() const
Definition tensor.hh:258
Dune::FieldVector< LFETensor< F, dimD, dorder >, dimR > & tensor()
Definition tensor.hh:271
Dune::FieldVector< F, LFETensor< F, dimD, dorder >::size *dimR > & block()
Definition tensor.hh:284
const Dune::FieldVector< LFETensor< F, dimD, deriv >, dimR > & tensor(const std::integral_constant< int, deriv > &dorderVar) const
Definition tensor.hh:325
void assign(const Derivatives< Fy, dimD, dimR, deriv, value > &y)
Definition tensor.hh:224
void assign(const Derivatives< Fy, dimD, dimRy, deriv, value > &y, unsigned int r)
Definition tensor.hh:238
const Dune::FieldVector< F, LFETensor< F, dimD, dorder >::size *dimR > & block() const
Definition tensor.hh:277
const Dune::FieldVector< LFETensor< F, dimD, dorder >, dimR > & tensor(const std::integral_constant< int, dorder > &dorderVar) const
Definition tensor.hh:320
Dune::FieldVector< F, size > Block
Definition tensor.hh:187
F field_type
Definition tensor.hh:180
Derivatives< F, dimD, dimR, deriv-1, value > Base
Definition tensor.hh:176
void assign(const Derivatives< Fy, dimD, dimR, dy, derivative > &y)
Definition tensor.hh:311
const ThisLFETensor & operator[](int r) const
Definition tensor.hh:293
F Field
Definition tensor.hh:179
const Dune::FieldVector< LFETensor< F, dimD, dorder >, dimR > & tensor() const
Definition tensor.hh:264
void assign(const Derivatives< Fy, dimD, dimR, deriv, derivative > &y)
Definition tensor.hh:230
This & operator=(const Dune::FieldVector< ThisLFETensor, dimR > &t)
Definition tensor.hh:194
void assign(unsigned int r, const Derivatives< Fy, dimD, 1, deriv, value > &y)
Definition tensor.hh:244
Dune::FieldVector< LFETensor< F, dimD, 0 >, dimR > & tensor(const std::integral_constant< int, 0 > &dorderVar)
Definition tensor.hh:461
ThisLFETensor & operator[](int r)
Definition tensor.hh:424
F field_type
Definition tensor.hh:350
Dune::FieldVector< F, size > Block
Definition tensor.hh:357
This & operator=(const Dune::FieldVector< ThisLFETensor, dimR > &t)
Definition tensor.hh:366
const Dune::FieldVector< LFETensor< F, dimD, 0 >, dimR > & tensor(const std::integral_constant< int, 0 > &dorderVar) const
Definition tensor.hh:456
void assign(const Derivatives< Fy, dimD, dimR, 0, value > &y)
Definition tensor.hh:389
void assign(const Derivatives< Fy, dimD, dimR, 0, derivative > &y)
Definition tensor.hh:394
void assign(const Derivatives< Fy, dimD, dimRy, 0, value > &y, unsigned int r)
Definition tensor.hh:400
void assign(unsigned int r, const Derivatives< Fy, dimD, 1, 0, derivative > &y)
Definition tensor.hh:410
F Field
Definition tensor.hh:349
This & operator=(const Block &t)
Definition tensor.hh:372
Dune::FieldVector< F, LFETensor< F, dimD, dorder >::size *dimR > & block()
Definition tensor.hh:447
const Block & block() const
Definition tensor.hh:419
Block & block()
Definition tensor.hh:415
void assign(unsigned int r, const FieldVector< Fy, size/dimR > &y)
Definition tensor.hh:477
Dune::FieldVector< LFETensor< F, dimD, 0 >, dimR > & tensor()
Definition tensor.hh:435
void assign(unsigned int r, const Derivatives< Fy, dimD, 1, 0, value > &y)
Definition tensor.hh:405
void assign(const Derivatives< Fy, dimD, dimR, dy, derivative > &y)
Definition tensor.hh:466
const Dune::FieldVector< F, LFETensor< F, dimD, dorder >::size *dimR > & block() const
Definition tensor.hh:440
void assign(const FieldVector< Fy, size *dimRy > &y, unsigned int r)
Definition tensor.hh:472
Derivatives< F, dimD, dimR, 0, value > This
Definition tensor.hh:346
void axpy(const F &a, const This &y)
Definition tensor.hh:384
LFETensor< F, dimD, 0 > ThisLFETensor
Definition tensor.hh:347
const Dune::FieldVector< LFETensor< F, dimD, 0 >, dimR > & tensor() const
Definition tensor.hh:431
This & operator=(const FF &f)
Definition tensor.hh:360
Dune::FieldVector< ThisLFETensor, dimR > tensor_
Definition tensor.hh:481
const ThisLFETensor & operator[](int r) const
Definition tensor.hh:427
This & operator=(const FF &f)
Definition tensor.hh:502
F field_type
Definition tensor.hh:492
Dune::FieldVector< ScalarDeriv, dimR > deriv_
Definition tensor.hh:560
Derivatives< F, dimD, 1, deriv, value > ScalarDeriv
Definition tensor.hh:489
void axpy(const FF &a, const This &y)
Definition tensor.hh:520
ScalarDeriv & operator[](int r)
Definition tensor.hh:553
Dune::FieldVector< F, size > Block
Definition tensor.hh:499
F Field
Definition tensor.hh:491
const ScalarDeriv & operator[](int r) const
Definition tensor.hh:556
This & operator=(const Block &t)
Definition tensor.hh:507
Block & block()
Definition tensor.hh:544
void assign(unsigned int r, const Derivatives< Fy, dimD, 1, deriv, layouty > &y)
Definition tensor.hh:539
Derivatives< F, dimD, dimR, deriv, derivative > This
Definition tensor.hh:488
const Block & block() const
Definition tensor.hh:548
void assign(const Derivatives< Fy, dimD, dimR, deriv, value > &y)
Definition tensor.hh:532
void assign(const Derivatives< Fy, dimD, dimR, deriv, derivative > &y)
Definition tensor.hh:526
static void apply(unsigned int r, const Field &a, const Vec1 &x, Vec2 &y)
Definition tensor.hh:570
static void apply(unsigned int r, const Field &a, const Vec1 &x, Vec2 &y)
Definition tensor.hh:584
Derivatives< F1, dimD, dimR, d, value > Vec1
Definition tensor.hh:582
Derivatives< F1, dimD, dimR, d, derivative > Vec1
Definition tensor.hh:598
static void apply(unsigned int r, const Field &a, const Vec1 &x, Vec2 &y)
Definition tensor.hh:600
static void apply(unsigned int r, const Field &a, const Vec1 &x, Vec2 &y)
Definition tensor.hh:616
Derivatives< F1, dimD, 1, d, derivative > Vec1
Definition tensor.hh:614
Derivatives< F1, dimD, 1, d, value > Vec1
Definition tensor.hh:629
static void apply(unsigned int r, const Field &a, const Vec1 &x, Vec2 &y)
Definition tensor.hh:631
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:648
Derivatives< F1, dimD, dimR, deriv, layout > Vec1
Definition tensor.hh:658
Derivatives< F2, dimD, dimR, deriv, layout > Vec2
Definition tensor.hh:659
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:660
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:672
Derivatives< F2, dimD, dimR, deriv, derivative > Vec2
Definition tensor.hh:671
Derivatives< F1, dimD, dimR, deriv, value > Vec1
Definition tensor.hh:670
Derivatives< F2, dimD, dimR, deriv, value > Vec2
Definition tensor.hh:683
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:684
Derivatives< F1, dimD, dimR, deriv, derivative > Vec1
Definition tensor.hh:682
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:696
Derivatives< F1, dimD, 1, deriv, layout > Vec1
Definition tensor.hh:694
Derivatives< F2, dimD, dimR, deriv, value > Vec2
Definition tensor.hh:695
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:708
Derivatives< F1, dimD, 1, deriv, layout > Vec1
Definition tensor.hh:706
Derivatives< F2, dimD, dimR, deriv, derivative > Vec2
Definition tensor.hh:707
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:720
Derivatives< F2, dimD, 1, deriv, value > Vec2
Definition tensor.hh:719
Derivatives< F1, dimD, 1, deriv, value > Vec1
Definition tensor.hh:718
Derivatives< F2, dimD, 1, deriv, derivative > Vec2
Definition tensor.hh:731
Derivatives< F1, dimD, 1, deriv, derivative > Vec1
Definition tensor.hh:730
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:732
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:744
Derivatives< F1, dimD, 1, deriv, derivative > Vec1
Definition tensor.hh:742
Derivatives< F2, dimD, 1, deriv, value > Vec2
Definition tensor.hh:743
Derivatives< F2, dimD, 1, deriv, derivative > Vec2
Definition tensor.hh:755
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:756
Derivatives< F1, dimD, 1, deriv, value > Vec1
Definition tensor.hh:754
F2 Vec2
Definition tensor.hh:767
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:768
Derivatives< F1, dimD, 1, deriv, layout > Vec1
Definition tensor.hh:766
FieldVector< F2, dimR > Vec2
Definition tensor.hh:779
Derivatives< F1, dimD, dimR, deriv, value > Vec1
Definition tensor.hh:778
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:780
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:792
FieldVector< F2, dimR > Vec2
Definition tensor.hh:791
Derivatives< F1, dimD, dimR, deriv, derivative > Vec1
Definition tensor.hh:790
Derivatives< F1, dimD, 1, deriv, value > Vec1
Definition tensor.hh:803
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:805
FieldVector< F2, dimR > Vec2
Definition tensor.hh:804
Derivatives< F1, dimD, 1, deriv, derivative > Vec1
Definition tensor.hh:815
FieldVector< F2, dimR > Vec2
Definition tensor.hh:816
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:817
Derivatives< F1, dimD, 1, deriv, value > Vec1
Definition tensor.hh:827
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:829
FieldVector< F2, 1 > Vec2
Definition tensor.hh:828
Derivatives< F1, dimD, 1, deriv, derivative > Vec1
Definition tensor.hh:839
FieldVector< F2, 1 > Vec2
Definition tensor.hh:840
static void apply(unsigned int r, const Vec1 &vec1, Vec2 &vec2)
Definition tensor.hh:841