Skip to content
Snippets Groups Projects
Commit 25deaf11 authored by Oliver Sander's avatar Oliver Sander Committed by sander
Browse files

Add a cpp switch for the new nonquadratic membrane energy

    
Very surprisingly, it appears to work...

[[Imported from SVN: r9286]]
parent dafe58c6
No related branches found
No related tags found
No related merge requests found
...@@ -16,6 +16,8 @@ ...@@ -16,6 +16,8 @@
#define DONT_USE_CURL #define DONT_USE_CURL
//#define QUADRATIC_MEMBRANE_ENERGY
template<class GridView, class LocalFiniteElement, int dim> template<class GridView, class LocalFiniteElement, int dim>
class CosseratEnergyLocalStiffness class CosseratEnergyLocalStiffness
...@@ -525,8 +527,12 @@ energy(const Entity& element, ...@@ -525,8 +527,12 @@ energy(const Entity& element,
// Add the local energy density // Add the local energy density
if (gridDim==2) { if (gridDim==2) {
#ifdef QUADRATIC_MEMBRANE_ENERGY
//energy += weight * thickness_ * quadraticMembraneEnergy(U); //energy += weight * thickness_ * quadraticMembraneEnergy(U);
energy += weight * thickness_ * longQuadraticMembraneEnergy(U); energy += weight * thickness_ * longQuadraticMembraneEnergy(U);
#else
energy += weight * thickness_ * nonquadraticMembraneEnergy(U);
#endif
energy += weight * thickness_ * curvatureEnergy(DR); energy += weight * thickness_ * curvatureEnergy(DR);
energy += weight * std::pow(thickness_,3) / 12.0 * bendingEnergy(R,DR); energy += weight * std::pow(thickness_,3) / 12.0 * bendingEnergy(R,DR);
} else if (gridDim==3) { } else if (gridDim==3) {
...@@ -953,7 +959,11 @@ assembleGradient(const Entity& element, ...@@ -953,7 +959,11 @@ assembleGradient(const Entity& element,
// Add the local energy density // Add the local energy density
if (gridDim==2) { if (gridDim==2) {
typename TargetSpace::EmbeddedTangentVector tmp(0); typename TargetSpace::EmbeddedTangentVector tmp(0);
#ifdef QUADRATIC_MEMBRANE_ENERGY
longQuadraticMembraneEnergyGradient(tmp,R,dR_dv,derivative,derOfGradientWRTCoefficient,U); longQuadraticMembraneEnergyGradient(tmp,R,dR_dv,derivative,derOfGradientWRTCoefficient,U);
#else
nonquadraticMembraneEnergyGradient(tmp,R,dR_dv,derivative,derOfGradientWRTCoefficient,U);
#endif
embeddedLocalGradient[i].axpy(weight * thickness_, tmp); embeddedLocalGradient[i].axpy(weight * thickness_, tmp);
tmp = 0; tmp = 0;
......
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