16#include <dune/common/fmatrix.hh>
17#include <dune/istl/bcrsmatrix.hh>
34 template <
class Scalar =
double>
53 template <
class Matrix>
56 assert(A.M()==
orient.size());
57 for (
int i=0; i<A.N(); ++i)
58 for (
int j=0; j<A.M(); ++j)
63 template <
int n,
int m>
65 assert(v.size()==
orient.size());
66 for (
int i=0; i<v.size(); ++i) {
68 v[i].derivative *=
orient[i];
77 template <
class Matrix>
81 assert(A.N()==
orient.size());
82 for (
int i=0; i<A.N(); ++i)
83 for (
int j=0; j<A.M(); ++j)
89 operator Dune::BCRSMatrix<Dune::FieldMatrix<Scalar,1,1> >()
const
93 for (
int i=0; i<n; ++i)
94 K.incrementrowsize(i);
96 for (
int i=0; i<n; ++i)
99 for (
int i=0; i<n; ++i)
100 *K[i].begin() =
orient[i];
A base class for implementing combiners with diagonal structure.
void rightTransform(std::vector< VariationalArg< Scalar, n, m > > &v) const
In-place computation of row vectors .
std::vector< Scalar > orient
void rightTransform(Matrix &A) const
In-place computation of .
void leftPseudoInverse(Matrix &A) const
In-place computation of .
A class that stores values, gradients, and Hessians of evaluated shape functions.