Commit 8f3d8d99 authored by akbib's avatar akbib Committed by akbib@FU-BERLIN.DE
Browse files

export some types and add method to get the global basis

[[Imported from SVN: r11177]]
parent b68d3f68
......@@ -5,6 +5,7 @@
#include <dune/fufem/symmetrictensor.hh>
#include <dune/fufem/functions/virtualgridfunction.hh>
#include <dune/fufem/functions/basisgridfunction.hh>
#include <dune/fufem/assemblers/localassemblers/geononlinstvenantfunctionalassembler.hh>
#include <dune/fufem/assemblers/localassemblers/geononlinlinearizedstvenantassembler.hh>
......@@ -17,21 +18,24 @@
template <class Basis>
class GeomExactStVenantMaterial
{
public:
typedef typename Basis::GridView::Grid GridType;
typedef typename Basis::LocalFiniteElement Lfe;
typedef GeomNonlinElasticityFunctionalAssembler<GridType> LocalLinearization;
typedef GeomNonlinLinearizedStVenantAssembler<GridType, Lfe, Lfe> LocalHessian;
typedef Basis GlobalBasis;
private:
typedef typename GridType::ctype ctype;
static const int dim = GridType::dimension;
static const int dimworld = GridType::dimensionworld;
typedef typename Basis::LocalFiniteElement Lfe;
typedef VirtualGridFunction<GridType, Dune::FieldVector<double,GridType::dimension> > GridFunction;
typedef typename GridType::template Codim<0>::Geometry::LocalCoordinate LocalCoordinate;
typedef typename GridType::template Codim<0>::LeafIterator ElementIterator;
public:
typedef GeomNonlinElasticityFunctionalAssembler<GridType> LocalLinearization;
typedef GeomNonlinLinearizedStVenantAssembler<GridType, Lfe, Lfe> LocalHessian;
GeomExactStVenantMaterial(const Basis& basis, ctype E, ctype nu) :
localLinearization_(E,nu),
......@@ -72,7 +76,7 @@ public:
const ctype integrationElement = eIt->geometry().integrationElement(quadPos);
// evaluate displacement gradient at the quadrature point
typename GridFunction::DerivativeType localConfGrad;
typename BasisGridFunction<Basis,CoeffType>::DerivativeType localConfGrad;
if (configuration.isDefinedOn(*eIt))
configuration.evaluateDerivativeLocal(*eIt, quadPos, localConfGrad);
......@@ -101,6 +105,9 @@ public:
//! Return the local assembler of the second derivative of the strain energy
LocalHessian& secondDerivative() {return localHessian_;}
//! Return the global basis
const Basis& basis() {return basis_;}
private:
//! First derivative of the strain energy
LocalLinearization localLinearization_;
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment