diff --git a/dune/gfe/localgeodesicfestiffness.hh b/dune/gfe/localgeodesicfestiffness.hh index 49e4631dac7846f1f76a3a488f3bbc18ec4148f1..e64c34ee53ef0c0f50a9d28ba904627a925ffacd 100644 --- a/dune/gfe/localgeodesicfestiffness.hh +++ b/dune/gfe/localgeodesicfestiffness.hh @@ -72,14 +72,6 @@ public: //! Each block is x, y, theta in 2d, T (R^3 \times SO(3)) in 3d enum { blocksize = TargetSpace::TangentVector::size }; - // define the number of components of your system, this is used outside - // to allocate the correct size of (dense) blocks with a FieldMatrix - enum {m=blocksize}; - - // types for matrics, vectors and boundary conditions - typedef Dune::FieldMatrix<RT,m,m> MBlockType; // one entry in the stiffness matrix - typedef Dune::FieldVector<RT,m> VBlockType; // one entry in the global vectors - /** \brief Assemble the local stiffness matrix at the current position This default implementation used finite-difference approximations to compute the second derivatives @@ -87,15 +79,6 @@ public: virtual void assemble(const Entity& e, const std::vector<TargetSpace>& localSolution); - /** \brief assemble local stiffness matrix for given element and order - */ - void assemble (const Entity& e, - const Dune::BlockVector<Dune::FieldVector<double, blocksize> >& localSolution, - int k=1) - { - DUNE_THROW(Dune::NotImplemented, "!"); - } - /** \todo Remove this once this methods is not in base class LocalStiffness anymore */ void assemble (const Entity& e, int k=1) { @@ -335,14 +318,6 @@ public: //! Each block is x, y, theta in 2d, T (R^3 \times SO(3)) in 3d enum { blocksize = TargetSpace::EmbeddedTangentVector::size }; - // define the number of components of your system, this is used outside - // to allocate the correct size of (dense) blocks with a FieldMatrix - enum {m=blocksize}; - - // types for matrics, vectors and boundary conditions - typedef Dune::FieldMatrix<RT,m,m> MBlockType; // one entry in the stiffness matrix - typedef Dune::FieldVector<RT,m> VBlockType; // one entry in the global vectors - /** \brief Assemble the local stiffness matrix at the current position This default implementation used finite-difference approximations to compute the second derivatives @@ -350,15 +325,6 @@ public: virtual void assemble(const Entity& e, const std::vector<TargetSpace>& localSolution); - /** \brief assemble local stiffness matrix for given element and order - */ - void assemble (const Entity& e, - const Dune::BlockVector<Dune::FieldVector<double, blocksize> >& localSolution, - int k=1) - { - DUNE_THROW(Dune::NotImplemented, "!"); - } - virtual RT energy (const Entity& e, const std::vector<TargetSpace>& localSolution) const = 0; diff --git a/dune/gfe/localstiffness.hh b/dune/gfe/localstiffness.hh index f7a9abf5874a650e1673e87310a771babcdbc4c7..377b849e9d9b0b6e92a5c218849d8899fd960f1a 100644 --- a/dune/gfe/localstiffness.hh +++ b/dune/gfe/localstiffness.hh @@ -65,43 +65,15 @@ namespace Dune // grid types typedef typename GV::Grid::ctype DT; typedef typename GV::template Codim<0>::Entity Entity; - enum {n=GV::dimension}; public: // types for matrics, vectors and boundary conditions typedef FieldMatrix<RT,m,m> MBlockType; // one entry in the stiffness matrix - typedef FieldVector<RT,m> VBlockType; // one entry in the global vectors virtual ~LocalStiffness () { } - /** \brief assemble local stiffness matrix including boundary conditions for given element and order - - Unlike the method with only two arguments, this one additionally takes the local solution in order - to allow assembly of nonlinear operators. - - On exit the following things have been done: - - The stiffness matrix for the given entity and polynomial degree has been assembled and is - accessible with the mat() method. - - The boundary conditions have been evaluated and are accessible with the bc() method. - The boundary conditions are either neumann, process or dirichlet. Neumann indicates - that the corresponding node (assuming a nodal basis) is at the Neumann boundary, process - indicates that the node is at a process boundary (arising from the parallel decomposition of the mesh). - Process boundaries are treated as homogeneous Dirichlet conditions, i.e. the corresponding value - in the right hand side is set to 0. Finally, Dirichlet indicates that the node is at the Dirichlet - boundary. - - The right hand side has been assembled. It contains either the value of the essential boundary - condition or the assembled source term and neumann boundary condition. - It is accessible via the rhs() method. - - @param[in] e a codim 0 entity reference - @param[in] localSolution The current solution on the entity, which is needed by nonlinear assemblers - @param[in] k order of Lagrange basis (default is 1) - */ - virtual void assemble (const Entity& e, const BlockVector<VBlockType>& localSolution, int k=1) = 0; - - //! print contents of local stiffness matrix void print (std::ostream& s, int width, int precision) {