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 @@
template <class GridView>
void RodAssembler<GridView>::
void RodAssembler<GridView,3>::
assembleGradient(const std::vector<RigidBodyMotion<3> >& sol,
Dune::BlockVector<Dune::FieldVector<double, blocksize> >& grad) const
{
......@@ -56,7 +56,7 @@ assembleGradient(const std::vector<RigidBodyMotion<3> >& sol,
template <class GridView>
void RodAssembler<GridView>::
void RodAssembler<GridView,3>::
getStrain(const std::vector<RigidBodyMotion<3> >& sol,
Dune::BlockVector<Dune::FieldVector<double, blocksize> >& strain) const
{
......@@ -119,7 +119,7 @@ getStrain(const std::vector<RigidBodyMotion<3> >& sol,
}
template <class GridView>
void RodAssembler<GridView>::
void RodAssembler<GridView,3>::
getStress(const std::vector<RigidBodyMotion<3> >& sol,
Dune::BlockVector<Dune::FieldVector<double, blocksize> >& stress) const
{
......@@ -141,7 +141,7 @@ getStress(const std::vector<RigidBodyMotion<3> >& sol,
template <class GridView>
template <class PatchGridView>
Dune::FieldVector<double,3> RodAssembler<GridView>::
Dune::FieldVector<double,3> RodAssembler<GridView,3>::
getResultantForce(const BoundaryPatchBase<PatchGridView>& boundary,
const std::vector<RigidBodyMotion<3> >& sol,
Dune::FieldVector<double,3>& canonicalTorque) const
......
......@@ -12,10 +12,19 @@
#include "rodlocalstiffness.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>
class RodAssembler : public GeodesicFEAssembler<GridView, RigidBodyMotion<3> >
class RodAssembler<GridView,3> : public GeodesicFEAssembler<GridView, RigidBodyMotion<3> >
{
//typedef typename GridType::template Codim<0>::Entity EntityType;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment