Skip to content
Snippets Groups Projects
Commit 5c1c2d75 authored by Oliver Sander's avatar Oliver Sander Committed by sander@PCPOOL.MI.FU-BERLIN.DE
Browse files

class RodAssembler has a template parameter 'spaceDim' now. The old...

class RodAssembler has a template parameter 'spaceDim' now.  The old implementation becomes the 'spaceDim==3' specialization

[[Imported from SVN: r5721]]
parent 1e4e4f2e
No related branches found
No related tags found
No related merge requests found
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
template <class GridView> template <class GridView>
void RodAssembler<GridView>:: void RodAssembler<GridView,3>::
assembleGradient(const std::vector<RigidBodyMotion<3> >& sol, assembleGradient(const std::vector<RigidBodyMotion<3> >& sol,
Dune::BlockVector<Dune::FieldVector<double, blocksize> >& grad) const Dune::BlockVector<Dune::FieldVector<double, blocksize> >& grad) const
{ {
...@@ -56,7 +56,7 @@ assembleGradient(const std::vector<RigidBodyMotion<3> >& sol, ...@@ -56,7 +56,7 @@ assembleGradient(const std::vector<RigidBodyMotion<3> >& sol,
template <class GridView> template <class GridView>
void RodAssembler<GridView>:: void RodAssembler<GridView,3>::
getStrain(const std::vector<RigidBodyMotion<3> >& sol, getStrain(const std::vector<RigidBodyMotion<3> >& sol,
Dune::BlockVector<Dune::FieldVector<double, blocksize> >& strain) const Dune::BlockVector<Dune::FieldVector<double, blocksize> >& strain) const
{ {
...@@ -119,7 +119,7 @@ getStrain(const std::vector<RigidBodyMotion<3> >& sol, ...@@ -119,7 +119,7 @@ getStrain(const std::vector<RigidBodyMotion<3> >& sol,
} }
template <class GridView> template <class GridView>
void RodAssembler<GridView>:: void RodAssembler<GridView,3>::
getStress(const std::vector<RigidBodyMotion<3> >& sol, getStress(const std::vector<RigidBodyMotion<3> >& sol,
Dune::BlockVector<Dune::FieldVector<double, blocksize> >& stress) const Dune::BlockVector<Dune::FieldVector<double, blocksize> >& stress) const
{ {
...@@ -141,7 +141,7 @@ getStress(const std::vector<RigidBodyMotion<3> >& sol, ...@@ -141,7 +141,7 @@ getStress(const std::vector<RigidBodyMotion<3> >& sol,
template <class GridView> template <class GridView>
template <class PatchGridView> template <class PatchGridView>
Dune::FieldVector<double,3> RodAssembler<GridView>:: Dune::FieldVector<double,3> RodAssembler<GridView,3>::
getResultantForce(const BoundaryPatchBase<PatchGridView>& boundary, getResultantForce(const BoundaryPatchBase<PatchGridView>& boundary,
const std::vector<RigidBodyMotion<3> >& sol, const std::vector<RigidBodyMotion<3> >& sol,
Dune::FieldVector<double,3>& canonicalTorque) const Dune::FieldVector<double,3>& canonicalTorque) const
......
...@@ -12,10 +12,19 @@ ...@@ -12,10 +12,19 @@
#include "rodlocalstiffness.hh" #include "rodlocalstiffness.hh"
#include "geodesicfeassembler.hh" #include "geodesicfeassembler.hh"
/** \brief The FEM operator for an extensible, shearable rod /** \brief The FEM operator for an extensible, shearable rod in 3d
*/
template <class GridView, int spaceDim>
class RodAssembler
{
dune_static_assert(spaceDim==2 || spaceDim==3,
"You can only instantiate the class RodAssembler for 2d and 3d spaces");
};
/** \brief The FEM operator for an extensible, shearable rod in 3d
*/ */
template <class GridView> template <class GridView>
class RodAssembler : public GeodesicFEAssembler<GridView, RigidBodyMotion<3> > class RodAssembler<GridView,3> : public GeodesicFEAssembler<GridView, RigidBodyMotion<3> >
{ {
//typedef typename GridType::template Codim<0>::Entity EntityType; //typedef typename GridType::template Codim<0>::Entity EntityType;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment