Skip to content
Snippets Groups Projects
Commit c5c85401 authored by Sander, Oliver's avatar Sander, Oliver
Browse files

Merge branch 'master' into 'master'

Remove wrong template parameter (GradientRT) from usages of LocalFEStiffness in film-on-substrate

See merge request !18
parents ac6c5b40 0aafd3f5
No related branches found
No related tags found
1 merge request!18Remove wrong template parameter (GradientRT) from usages of LocalFEStiffness in film-on-substrate
Pipeline #2334 failed
......@@ -8,7 +8,7 @@
namespace Dune {
namespace GFE {
template<class Basis, class TargetSpace, class field_type=double, class GradientRT=double>
template<class Basis, class TargetSpace, class field_type=double>
class SumCosseratEnergy
: public LocalGeodesicFEStiffness<Basis, TargetSpace>
{
......@@ -27,7 +27,7 @@ public:
* \param elasticEnergy The elastic energy
* \param cosseratEnergy The cosserat energy
*/
SumCosseratEnergy(std::shared_ptr<LocalFEStiffness<GridView,LocalFiniteElement,std::vector<Dune::FieldVector<field_type,dim> > , std::vector<GradientRT> > > elasticEnergy,
SumCosseratEnergy(std::shared_ptr<LocalFEStiffness<GridView,LocalFiniteElement,std::vector<Dune::FieldVector<field_type,dim> > > > elasticEnergy,
std::shared_ptr<LocalGeodesicFEStiffness<Basis, TargetSpace>> cosseratEnergy)
: elasticEnergy_(elasticEnergy),
......@@ -49,7 +49,7 @@ public:
private:
std::shared_ptr<LocalFEStiffness<GridView,LocalFiniteElement,std::vector<Dune::FieldVector<field_type,dim> >, std::vector<GradientRT> > > elasticEnergy_;
std::shared_ptr<LocalFEStiffness<GridView,LocalFiniteElement,std::vector<Dune::FieldVector<field_type,dim> > > > elasticEnergy_;
std::shared_ptr<LocalGeodesicFEStiffness<Basis, TargetSpace> > cosseratEnergy_;
};
......
......@@ -61,7 +61,6 @@ const int order = 1;
//differentiation method
typedef adouble ValueType;
typedef adouble GradientValueType;
using namespace Dune;
......@@ -339,43 +338,42 @@ int main (int argc, char *argv[]) try
std::cout << "Selected energy is: " << parameterSet.get<std::string>("energy") << std::endl;
std::shared_ptr<LocalFEStiffness<GridView,
FEBasis::LocalView::Tree::FiniteElement,
std::vector<Dune::FieldVector<ValueType, dim>>,
std::vector<GradientValueType> > > elasticEnergy;
std::vector<Dune::FieldVector<ValueType, dim>> > > elasticEnergy;
if (parameterSet.get<std::string>("energy") == "stvenantkirchhoff")
elasticEnergy = std::make_shared<StVenantKirchhoffEnergy<GridView,
FEBasis::LocalView::Tree::FiniteElement,
ValueType, GradientValueType> >(materialParameters);
ValueType> >(materialParameters);
if (parameterSet.get<std::string>("energy") == "mooneyrivlin")
elasticEnergy = std::make_shared<MooneyRivlinEnergy<GridView,
FEBasis::LocalView::Tree::FiniteElement,
ValueType, GradientValueType> >(materialParameters);
ValueType> >(materialParameters);
if (parameterSet.get<std::string>("energy") == "neohooke")
elasticEnergy = std::make_shared<NeoHookeEnergy<GridView,
FEBasis::LocalView::Tree::FiniteElement,
ValueType, GradientValueType> >(materialParameters);
ValueType> >(materialParameters);
if (parameterSet.get<std::string>("energy") == "hencky")
elasticEnergy = std::make_shared<HenckyEnergy<GridView,
FEBasis::LocalView::Tree::FiniteElement,
ValueType, GradientValueType> >(materialParameters);
ValueType> >(materialParameters);
if (parameterSet.get<std::string>("energy") == "exphencky")
elasticEnergy = std::make_shared<ExpHenckyEnergy<GridView,
FEBasis::LocalView::Tree::FiniteElement,
ValueType, GradientValueType> >(materialParameters);
ValueType> >(materialParameters);
if(!elasticEnergy)
DUNE_THROW(Exception, "Error: Selected energy not available!");
auto neumannEnergy = std::make_shared<NeumannEnergy<GridView,
FEBasis::LocalView::Tree::FiniteElement,
ValueType, GradientValueType> >(&neumannBoundary,neumannFunction.get());
ValueType> >(&neumannBoundary,neumannFunction.get());
auto elasticAndNeumann = std::make_shared<SumEnergy<GridView,
FEBasis::LocalView::Tree::FiniteElement,
ValueType, GradientValueType>>(elasticEnergy, neumannEnergy);
ValueType>>(elasticEnergy, neumannEnergy);
using LocalEnergyBase = LocalGeodesicFEStiffness<FEBasis,RigidBodyMotion<adouble, dim> >;
......@@ -390,7 +388,7 @@ int main (int argc, char *argv[]) try
surfaceCosseratEnergy = std::make_shared<SurfaceCosseratEnergy<FEBasis,RigidBodyMotion<adouble, dim>, adouble, adouble>>(materialParameters, std::move(vertexNormals), &surfaceShellBoundary);
std::shared_ptr<LocalEnergyBase> totalEnergy;
totalEnergy = std::make_shared<GFE::SumCosseratEnergy<FEBasis,RigidBodyMotion<adouble, dim>, adouble, adouble>> (elasticAndNeumann, surfaceCosseratEnergy);
totalEnergy = std::make_shared<GFE::SumCosseratEnergy<FEBasis,RigidBodyMotion<adouble, dim>, adouble>> (elasticAndNeumann, surfaceCosseratEnergy);
LocalGeodesicFEADOLCStiffness<FEBasis,
......
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