From 7f526360a911d9422793fcecd6f2c7427b1ace44 Mon Sep 17 00:00:00 2001 From: Oliver Sander <sander@igpm.rwth-aachen.de> Date: Mon, 8 Mar 2010 16:57:25 +0000 Subject: [PATCH] get rid of the polOrd template parameter of PlanarRodAssembler [[Imported from SVN: r5692]] --- rodobstacle.cc | 5 +++-- src/rodassembler.cc | 26 +++++++++++++------------- src/rodassembler.hh | 2 +- 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/rodobstacle.cc b/rodobstacle.cc index c07ba497..c6938d88 100644 --- a/rodobstacle.cc +++ b/rodobstacle.cc @@ -152,11 +152,12 @@ int main (int argc, char *argv[]) try // ////////////////////////// for (int i=0; i<x.size(); i++) { - x[i].r[1] = i;//double(i)/(x.size()-1); x[i].r[0] = 0; + x[i].r[1] = i;//double(i)/(x.size()-1); x[i].q = Rotation<2,double>::identity(); } + x.back().r[1] += 1; // ///////////////////////////////////////////////////////////////////// // Refinement Loop @@ -180,7 +181,7 @@ int main (int argc, char *argv[]) try MatrixType hessianMatrix; - PlanarRodAssembler<GridType,4> rodAssembler(grid); + PlanarRodAssembler<GridType> rodAssembler(grid); rodAssembler.setParameters(1, 350000, 350000); diff --git a/src/rodassembler.cc b/src/rodassembler.cc index 5e439209..db05fafb 100644 --- a/src/rodassembler.cc +++ b/src/rodassembler.cc @@ -214,8 +214,8 @@ getResultantForce(const BoundaryPatchBase<PatchGridView>& boundary, } -template <class GridType, int polOrd> -void PlanarRodAssembler<GridType, polOrd>::getNeighborsPerVertex(Dune::MatrixIndexSet& nb) const +template <class GridType> +void PlanarRodAssembler<GridType>::getNeighborsPerVertex(Dune::MatrixIndexSet& nb) const { const int gridDim = GridType::dimension; const typename GridType::Traits::LevelIndexSet& indexSet = grid_->levelIndexSet(grid_->maxLevel()); @@ -247,8 +247,8 @@ void PlanarRodAssembler<GridType, polOrd>::getNeighborsPerVertex(Dune::MatrixInd } -template <class GridType, int polOrd> -void PlanarRodAssembler<GridType, polOrd>:: +template <class GridType> +void PlanarRodAssembler<GridType>:: assembleMatrix(const std::vector<RigidBodyMotion<2> >& sol, Dune::BCRSMatrix<MatrixBlock>& matrix) { @@ -301,9 +301,9 @@ assembleMatrix(const std::vector<RigidBodyMotion<2> >& sol, -template <class GridType, int polOrd> +template <class GridType> template <class MatrixType> -void PlanarRodAssembler<GridType, polOrd>:: +void PlanarRodAssembler<GridType>:: getLocalMatrix( EntityType &entity, const std::vector<RigidBodyMotion<2> >& localSolution, const int matSize, MatrixType& localMat) const @@ -320,7 +320,7 @@ getLocalMatrix( EntityType &entity, Dune::P1LocalFiniteElement<double,double,gridDim> localFiniteElement; // Get quadrature rule - const Dune::QuadratureRule<double, gridDim>& quad = Dune::QuadratureRules<double, gridDim>::rule(entity.type(), polOrd); + const Dune::QuadratureRule<double, gridDim>& quad = Dune::QuadratureRules<double, gridDim>::rule(entity.type(), 2); /* Loop over all integration points */ for (int ip=0; ip<quad.size(); ip++) { @@ -453,8 +453,8 @@ getLocalMatrix( EntityType &entity, } -template <class GridType, int polOrd> -void PlanarRodAssembler<GridType, polOrd>:: +template <class GridType> +void PlanarRodAssembler<GridType>:: assembleGradient(const std::vector<RigidBodyMotion<2> >& sol, Dune::BlockVector<Dune::FieldVector<double, blocksize> >& grad) const { @@ -483,7 +483,7 @@ assembleGradient(const std::vector<RigidBodyMotion<2> >& sol, localSolution[i] = sol[indexSet.subIndex(*it,i,gridDim)]; // Get quadrature rule - const Dune::QuadratureRule<double, gridDim>& quad = Dune::QuadratureRules<double, gridDim>::rule(it->type(), polOrd); + const Dune::QuadratureRule<double, gridDim>& quad = Dune::QuadratureRules<double, gridDim>::rule(it->type(), 2); for (int pt=0; pt<quad.size(); pt++) { @@ -555,8 +555,8 @@ assembleGradient(const std::vector<RigidBodyMotion<2> >& sol, } -template <class GridType, int polOrd> -double PlanarRodAssembler<GridType, polOrd>:: +template <class GridType> +double PlanarRodAssembler<GridType>:: computeEnergy(const std::vector<RigidBodyMotion<2> >& sol) const { const int maxlevel = grid_->maxLevel(); @@ -584,7 +584,7 @@ computeEnergy(const std::vector<RigidBodyMotion<2> >& sol) const localSolution[i] = sol[indexSet.subIndex(*it,i,gridDim)]; // Get quadrature rule - const Dune::QuadratureRule<double, gridDim>& quad = Dune::QuadratureRules<double, gridDim>::rule(it->type(), polOrd); + const Dune::QuadratureRule<double, gridDim>& quad = Dune::QuadratureRules<double, gridDim>::rule(it->type(), 2); for (int pt=0; pt<quad.size(); pt++) { diff --git a/src/rodassembler.hh b/src/rodassembler.hh index 3f699d79..2cc2023c 100644 --- a/src/rodassembler.hh +++ b/src/rodassembler.hh @@ -79,7 +79,7 @@ public: /** \brief The FEM operator for a 2D extensible, shearable rod */ -template <class GridType, int polOrd> +template <class GridType> class PlanarRodAssembler : public GeodesicFEAssembler<typename GridType::LeafGridView, RigidBodyMotion<2> > { -- GitLab