From c07a7936fc315587db351f8e9525121e71531277 Mon Sep 17 00:00:00 2001
From: Oliver Sander <sander@igpm.rwth-aachen.de>
Date: Sun, 23 Jan 2011 16:56:17 +0000
Subject: [PATCH] make computeAveragePressure take a single force/torque vector

[[Imported from SVN: r6846]]
---
 dune/gfe/averageinterface.hh | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/dune/gfe/averageinterface.hh b/dune/gfe/averageinterface.hh
index 3897d5c5..cf55b7b1 100644
--- a/dune/gfe/averageinterface.hh
+++ b/dune/gfe/averageinterface.hh
@@ -468,8 +468,7 @@ void computeTotalForceAndTorque(const BoundaryPatchBase<GridView>& interface,
 // Given a resultant force and torque (from a rod problem), this method computes the corresponding
 // Neumann data for a 3d elasticity problem.
 template <class GridView>
-void computeAveragePressure(const Dune::FieldVector<double,GridView::dimension>& resultantForce,
-                            const Dune::FieldVector<double,GridView::dimension>& resultantTorque,
+void computeAveragePressure(const typename RigidBodyMotion<GridView::dimension>::TangentVector& resultantForceTorque,
                             const BoundaryPatchBase<GridView>& interface,
                             const Dune::FieldVector<double,GridView::dimension>& centerOfTorque,
                             Dune::BlockVector<Dune::FieldVector<double, GridView::dimension> >& pressure)
@@ -599,6 +598,12 @@ void computeAveragePressure(const Dune::FieldVector<double,GridView::dimension>&
     //   Set up and start the interior-point solver
     // /////////////////////////////////////////////////////////////////////////////////////
 
+    Dune::FieldVector<double,dim> resultantForce, resultantTorque;
+    for (int i=0; i<dim; i++) {
+        resultantForce[i]  = resultantForceTorque[i];
+        resultantTorque[i] = resultantForceTorque[dim+i];
+    }
+    
     // Create a new instance of IpoptApplication
     Ipopt::SmartPtr<Ipopt::IpoptApplication> app = new Ipopt::IpoptApplication();
     
-- 
GitLab