From 42b68c5932452fb066dea5e159ca5b6f696c83d8 Mon Sep 17 00:00:00 2001 From: Elias Pipping <elias.pipping@fu-berlin.de> Date: Mon, 10 Feb 2014 17:56:33 +0000 Subject: [PATCH] Allow strainToStress to depend on the global position [[Imported from SVN: r12871]] --- .../assemblers/localassemblers/strainproductassembler.hh | 8 +++++--- .../localassemblers/stvenantkirchhoffassembler.hh | 5 +++-- .../assemblers/localassemblers/viscosityassembler.hh | 5 +++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/dune/fufem/assemblers/localassemblers/strainproductassembler.hh b/dune/fufem/assemblers/localassemblers/strainproductassembler.hh index 968f7987..3ff35396 100644 --- a/dune/fufem/assemblers/localassemblers/strainproductassembler.hh +++ b/dune/fufem/assemblers/localassemblers/strainproductassembler.hh @@ -108,7 +108,7 @@ class StrainProductAssembler for (int rcomp=0; rcomp<dim; rcomp++) { // Compute stress - SymmetricTensor<dim> stress = strainToStress(strain[row][rcomp]); + SymmetricTensor<dim> stress = strainToStress(strain[row][rcomp], element, quadPos); for (int col=0; col<=row; col++) { for (int ccomp=0; ccomp<dim; ccomp++) { @@ -137,8 +137,10 @@ class StrainProductAssembler } - SymmetricTensor<dim> strainToStress(const SymmetricTensor<dim>& strain) const { - return static_cast<const A*>(this)->strainToStress(strain); + SymmetricTensor<dim> strainToStress(const SymmetricTensor<dim>& strain, + const Element& element, + const Dune::FieldVector<ctype, dim>& position) const { + return static_cast<const A*>(this)->strainToStress(strain, element, position); } }; diff --git a/dune/fufem/assemblers/localassemblers/stvenantkirchhoffassembler.hh b/dune/fufem/assemblers/localassemblers/stvenantkirchhoffassembler.hh index 6aa432f7..4b845d3b 100644 --- a/dune/fufem/assemblers/localassemblers/stvenantkirchhoffassembler.hh +++ b/dune/fufem/assemblers/localassemblers/stvenantkirchhoffassembler.hh @@ -35,8 +35,9 @@ class StVenantKirchhoffAssembler twoMu_(E / (1+nu) ) {} - SymmetricTensor<dim> strainToStress(const SymmetricTensor<dim>& strain) const { - + SymmetricTensor<dim> strainToStress(const SymmetricTensor<dim>& strain, + const Element&, + const Dune::FieldVector<ctype, dim>&) const { SymmetricTensor<dim> stress = strain; stress *= twoMu_; stress.addToDiag(lambda_ * strain.trace()); diff --git a/dune/fufem/assemblers/localassemblers/viscosityassembler.hh b/dune/fufem/assemblers/localassemblers/viscosityassembler.hh index cd51c9e5..dec6bc6e 100644 --- a/dune/fufem/assemblers/localassemblers/viscosityassembler.hh +++ b/dune/fufem/assemblers/localassemblers/viscosityassembler.hh @@ -30,8 +30,9 @@ class ViscosityAssembler muShear_(muShear), muBulk_(muBulk) {} - SymmetricTensor<dim> strainToStress(const SymmetricTensor<dim>& strain) const { - + SymmetricTensor<dim> strainToStress(const SymmetricTensor<dim>& strain, + const Element&, + const Dune::FieldVector<ctype, dim>&) const { SymmetricTensor<dim> stress = strain; stress *= 2*muShear_; stress.addToDiag((muBulk_-(2.0/3.0)*muShear_) * strain.trace()); -- GitLab