diff --git a/src/cosserat-continuum.cc b/src/cosserat-continuum.cc index c086218ef05372efd42aaab6e000e74e55486714..a8a6b3ca9ee0412d5b7c84c1a02f760e4c77a289 100644 --- a/src/cosserat-continuum.cc +++ b/src/cosserat-continuum.cc @@ -37,6 +37,7 @@ #include <dune/gfe/rigidbodymotion.hh> #include <dune/gfe/localgeodesicfeadolcstiffness.hh> #include <dune/gfe/cosseratenergystiffness.hh> +#include <dune/gfe/nonplanarcosseratshellenergy.hh> #include <dune/gfe/cosseratvtkwriter.hh> #include <dune/gfe/cosseratvtkreader.hh> #include <dune/gfe/geodesicfeassembler.hh> @@ -290,8 +291,11 @@ int main (int argc, char *argv[]) try } // Assembler using ADOL-C - CosseratEnergyLocalStiffness<FEBasis, - 3,adouble> cosseratEnergyADOLCLocalStiffness(materialParameters, + using LocalEnergy = std::conditional<dim==dimworld, + CosseratEnergyLocalStiffness<FEBasis,3,adouble>, + NonplanarCosseratShellEnergy<FEBasis,3,adouble> >::type; + + LocalEnergy cosseratEnergyADOLCLocalStiffness(materialParameters, &neumannBoundary, neumannFunction, volumeLoad);