From fee0b8bc588cce417dc7e107f23d47994a89cffd Mon Sep 17 00:00:00 2001
From: Jonathan Lambrechts <jonathan.lambrechts@uclouvain.be>
Date: Thu, 5 Nov 2009 09:48:30 +0000
Subject: [PATCH] dgGroupOfElements compilation ok

---
 Solver/CMakeLists.txt        |  1 +
 Solver/dgGroupOfElements.cpp |  8 ++++----
 Solver/dgGroupOfElements.h   | 15 ++++++++-------
 3 files changed, 13 insertions(+), 11 deletions(-)

diff --git a/Solver/CMakeLists.txt b/Solver/CMakeLists.txt
index 2fe862d6ba..ecd48affd1 100644
--- a/Solver/CMakeLists.txt
+++ b/Solver/CMakeLists.txt
@@ -10,6 +10,7 @@ set(SRC
   elasticitySolver.cpp
   SElement.cpp
   eigenSolver.cpp
+  dgGroupOfElements.cpp
 )
 
 file(GLOB HDR RELATIVE ${CMAKE_SOURCE_DIR}/Solver *.h) 
diff --git a/Solver/dgGroupOfElements.cpp b/Solver/dgGroupOfElements.cpp
index 43c6d2c48c..24e420a35a 100644
--- a/Solver/dgGroupOfElements.cpp
+++ b/Solver/dgGroupOfElements.cpp
@@ -199,7 +199,7 @@ void dgGroupOfFaces::createEdgeElements (const std::vector<MEdge> &topo_edges){
     }
   }
 }
-void dgGroupOfFace::init() {
+void dgGroupOfFaces::init(int pOrder) {
   _fsFace = _faces[0]->getFunctionSpace (pOrder);
   _integration=dgGetIntegrationRule (_faces[0],pOrder);
   _redistribution = new fullMatrix<double> (_fsFace->coefficients.size1(),_integration->size1());
@@ -208,7 +208,7 @@ void dgGroupOfFace::init() {
   for (int j=0;j<_integration->size1();j++) {
     _fsFace->f((*_integration)(j,0), (*_integration)(j,1), (*_integration)(j,2), f);
     const double weight = (*_integration)(j,3);
-    for (int k=0;k<_fs.coefficients.size1();k++){ 
+    for (int k=0;k<_fsFace->coefficients.size1();k++){ 
       (*_redistribution)(k,j) = f[j] * weight;
       (*_collocation)(k,j) = f[k];
     }
@@ -222,7 +222,7 @@ dgGroupOfFaces::dgGroupOfFaces (const std::vector<MFace> &topo_faces,
         _fsLeft(_left[0]->getFunctionSpace (pOrder)), _fsRight (_right[0]->getFunctionSpace (pOrder))
 {
   createFaceElements (topo_faces);
-  init();
+  init(pOrder);
 }
 
 dgGroupOfFaces::dgGroupOfFaces (const std::vector<MEdge> &topo_edges, 		  
@@ -232,5 +232,5 @@ dgGroupOfFaces::dgGroupOfFaces (const std::vector<MEdge> &topo_edges,
         _fsLeft(_left[0]->getFunctionSpace (pOrder)), _fsRight (_right[0]->getFunctionSpace (pOrder))
 {
   createEdgeElements (topo_edges);
-  init();
+  init(pOrder);
 }
diff --git a/Solver/dgGroupOfElements.h b/Solver/dgGroupOfElements.h
index 3d5912bde3..21eaa519df 100644
--- a/Solver/dgGroupOfElements.h
+++ b/Solver/dgGroupOfElements.h
@@ -27,7 +27,7 @@ public:
     : _element(e), _solution(sol), _integration(integ), _gradients(sol)
   {}
   dgElement (MElement *e, const fullMatrix<double> &sol, const fullMatrix<double> &grads, const fullMatrix<double> &integ)
-    : _element(e), _solution(sol), _integration(integ), _gradients(grad)
+    : _element(e), _solution(sol), _integration(integ), _gradients(grads)
   {}
 };
 
@@ -67,21 +67,22 @@ public:
   virtual ~dgGroupOfElements ();
   inline int getNbElements() const {return _elements.size();}
   inline int getNbFields() const {return _nbFields;}
-  inline int getNbNodes() const {return _collocation.size1();}
-  inline int getNbIntegrationPoints() const {return _collocation.size2();}
+  inline int getNbNodes() const {return _collocation->size1();}
+  inline int getNbIntegrationPoints() const {return _collocation->size2();}
   inline int getDimUVW () const {return _dimUVW;}
   inline int getDimXYZ () const {return _dimXYZ;}
   inline const MElement* getElement (int iElement) const {return _elements[iElement];}  
   inline const fullMatrix<double> & getIntegrationPointsMatrix () const {return *_integration;}
   inline const fullMatrix<double> & getCollocationMatrix () const {return *_collocation;}
-  inline const fullMatrix<double> & getRedistributionMatrix (int i) const {return *_redistribution[i];}
+  inline const fullMatrix<double> & getFluxRedistributionMatrix (int i) const {return *_redistributionFluxes[i];}
+  inline const fullMatrix<double> & getSourceRedistributionMatrix () const {return *_redistributionSource;}
   inline const fullMatrix<double> & getSolution () const {return *_solution;}
   inline const fullMatrix<double> & getGradientOfSolution () const {return *_gradSolution;}
   // get a proxy on the solution for element iElement
-  inline fullMatrix<double> & getSolution (int iElement) const {return fullMatrix<double>(*_solution, iElement*_nbFields, _nbFields);}
+  inline fullMatrix<double> getSolution (int iElement) const {return fullMatrix<double>(*_solution, iElement*_nbFields, _nbFields);}
   inline const fullMatrix<double> & getResidual () const {return *_solution;}
   // get a proxy on the residual for element iElement
-  inline fullMatrix<double> & getResidual (int iElement) const {return fullMatrix<double>(*_residual, iElement*_nbFields, _nbFields);}
+  inline fullMatrix<double> getResidual (int iElement) const {return fullMatrix<double>(*_residual, iElement*_nbFields, _nbFields);}
   inline double getDetJ (int iElement, int iGaussPoint) const {return (*_mapping)(iElement, 10*iGaussPoint + 9);}
   inline double getInvJ (int iElement, int iGaussPoint, int i, int j) const {return (*_mapping)(iElement, 10*iGaussPoint + i + 3*j);}
   inline fullMatrix<double> getMapping (int iElement) const {return fullMatrix<double>(*_mapping, iElement, 1);}
@@ -126,7 +127,7 @@ class dgGroupOfFaces {
   // redistribution matrices \psi_i (GP_j) * weight_j
   fullMatrix<double> *_redistribution;
   //common part of the 3 constructors
-  void init();
+  void init(int pOrder);
 public:
   dgGroupOfFaces (const std::vector<MFace> &faces, 		  
 		  const std::vector<MElement*> &l, 
-- 
GitLab