Skip to content
Snippets Groups Projects
Commit 88ace340 authored by Elias Pipping's avatar Elias Pipping Committed by pipping
Browse files

Allow StrainProductAssembler to have variable coefficients

[[Imported from SVN: r12872]]
parent 42b68c59
No related branches found
No related tags found
No related merge requests found
...@@ -18,6 +18,14 @@ class StrainProductAssembler ...@@ -18,6 +18,14 @@ class StrainProductAssembler
static const int dim = GridType::dimension; static const int dim = GridType::dimension;
typedef typename GridType::ctype ctype; typedef typename GridType::ctype ctype;
StrainProductAssembler()
: coefficientQuadKey_(dim, 0)
{}
StrainProductAssembler(QuadratureRuleKey const &coefficientQuadKey)
: coefficientQuadKey_(coefficientQuadKey)
{}
public: public:
typedef typename Dune::FieldMatrix<ctype,GridType::dimension,GridType::dimension> T; typedef typename Dune::FieldMatrix<ctype,GridType::dimension,GridType::dimension> T;
...@@ -43,7 +51,8 @@ class StrainProductAssembler ...@@ -43,7 +51,8 @@ class StrainProductAssembler
localMatrix.setSize(rows,cols); localMatrix.setSize(rows,cols);
localMatrix = 0.0; localMatrix = 0.0;
QuadratureRuleKey quadKey = QuadratureRuleKey(tFE).derivative() QuadratureRuleKey quadKey = coefficientQuadKey_
.product(QuadratureRuleKey(tFE).derivative())
.product(QuadratureRuleKey(aFE).derivative()); .product(QuadratureRuleKey(aFE).derivative());
const Dune::template QuadratureRule<ctype, dim>& quad const Dune::template QuadratureRule<ctype, dim>& quad
= QuadratureRuleCache<ctype, dim>::rule(quadKey); = QuadratureRuleCache<ctype, dim>::rule(quadKey);
...@@ -142,6 +151,9 @@ class StrainProductAssembler ...@@ -142,6 +151,9 @@ class StrainProductAssembler
const Dune::FieldVector<ctype, dim>& position) const { const Dune::FieldVector<ctype, dim>& position) const {
return static_cast<const A*>(this)->strainToStress(strain, element, position); return static_cast<const A*>(this)->strainToStress(strain, element, position);
} }
private:
const QuadratureRuleKey coefficientQuadKey_;
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment