From d3841df3ed94f3f804c0c56f2528cb809eb3c8f8 Mon Sep 17 00:00:00 2001
From: Nicolas Marsic <nicolas.marsic@gmail.com>
Date: Wed, 9 Jan 2013 16:31:29 +0000
Subject: [PATCH] Doc + Name change: ReferenceSpace::getReferenceSpace()
 becomes ReferenceSpace::getPermutation()

---
 FunctionSpace/BasisScalar.h        |  2 +-
 FunctionSpace/BasisVector.h        |  2 +-
 FunctionSpace/CurlBasis.cpp        |  2 +-
 FunctionSpace/DivBasis.cpp         |  2 +-
 FunctionSpace/EvaluatedBasis.cpp   |  4 +-
 FunctionSpace/EvaluatedBasis.h     |  2 +-
 FunctionSpace/GradBasis.cpp        |  2 +-
 FunctionSpace/LineEdgeBasis.cpp    |  2 +-
 FunctionSpace/LineNedelecBasis.cpp |  2 +-
 FunctionSpace/LineNodeBasis.cpp    |  2 +-
 FunctionSpace/LineReferenceSpace.h | 18 ++++++-
 FunctionSpace/ReferenceSpace.cpp   |  2 +-
 FunctionSpace/ReferenceSpace.h     | 81 ++++++++++++++++++++++++++++--
 FunctionSpace/TetEdgeBasis.cpp     |  2 +-
 FunctionSpace/TetNodeBasis.cpp     |  2 +-
 FunctionSpace/TetReferenceSpace.h  | 18 ++++++-
 FunctionSpace/TriEdgeBasis.cpp     |  2 +-
 FunctionSpace/TriNedelecBasis.cpp  |  2 +-
 FunctionSpace/TriNodeBasis.cpp     |  2 +-
 FunctionSpace/TriReferenceSpace.h  | 18 ++++++-
 20 files changed, 145 insertions(+), 24 deletions(-)

diff --git a/FunctionSpace/BasisScalar.h b/FunctionSpace/BasisScalar.h
index 9b4b39f346..01e295baa0 100644
--- a/FunctionSpace/BasisScalar.h
+++ b/FunctionSpace/BasisScalar.h
@@ -76,7 +76,7 @@ BasisScalar::getFunction(unsigned int refSpace) const{
 inline  
 const std::vector<const Polynomial*>&
 BasisScalar::getFunction(const MElement& element) const{
-  return *(*basis)[refSpace->getReferenceSpace(element)];
+  return *(*basis)[refSpace->getPermutation(element)];
 }
 
 #endif
diff --git a/FunctionSpace/BasisVector.h b/FunctionSpace/BasisVector.h
index d202662723..eefdead46c 100644
--- a/FunctionSpace/BasisVector.h
+++ b/FunctionSpace/BasisVector.h
@@ -76,7 +76,7 @@ BasisVector::getFunction(unsigned int refSpace) const{
 inline  
 const std::vector<const std::vector<Polynomial>*>&
 BasisVector::getFunction(const MElement& element) const{
-  return *(*basis)[refSpace->getReferenceSpace(element)];
+  return *(*basis)[refSpace->getPermutation(element)];
 }
 
 #endif
diff --git a/FunctionSpace/CurlBasis.cpp b/FunctionSpace/CurlBasis.cpp
index dae7fd5c3c..ba2c320185 100644
--- a/FunctionSpace/CurlBasis.cpp
+++ b/FunctionSpace/CurlBasis.cpp
@@ -5,7 +5,7 @@ using namespace std;
 CurlBasis::CurlBasis(const BasisVector& other){
   // Reference Space //
   refSpace  = &other.getReferenceSpace();
-  nRefSpace = other.getReferenceSpace().getNReferenceSpace();
+  nRefSpace = other.getReferenceSpace().getNPermutation();
 
   // Set Basis Type //
   order = other.getOrder() - 1;
diff --git a/FunctionSpace/DivBasis.cpp b/FunctionSpace/DivBasis.cpp
index 3467948196..774d411da5 100644
--- a/FunctionSpace/DivBasis.cpp
+++ b/FunctionSpace/DivBasis.cpp
@@ -5,7 +5,7 @@ using namespace std;
 DivBasis::DivBasis(const BasisVector& other){
   // Reference Space //
   refSpace  = &other.getReferenceSpace();
-  nRefSpace = other.getReferenceSpace().getNReferenceSpace();
+  nRefSpace = other.getReferenceSpace().getNPermutation();
 
   // Set Basis Type //
   order = other.getOrder() - 1;
diff --git a/FunctionSpace/EvaluatedBasis.cpp b/FunctionSpace/EvaluatedBasis.cpp
index e2739d3ebd..4bc2debdda 100644
--- a/FunctionSpace/EvaluatedBasis.cpp
+++ b/FunctionSpace/EvaluatedBasis.cpp
@@ -8,7 +8,7 @@ EvaluatedBasis(const BasisScalar& basis,
 	       const fullMatrix<double>& point){
   // Data //
   refSpace  = &basis.getReferenceSpace(); 
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
   scalar    = true;
   nFunction = basis.getNFunction();
   nPoint    = point.size1();
@@ -34,7 +34,7 @@ EvaluatedBasis(const BasisVector& basis,
 	       const fullMatrix<double>& point){
   // Data //
   refSpace  = &basis.getReferenceSpace(); 
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
   scalar    = false;
   nFunction = basis.getNFunction();  
   nPoint    = point.size1();
diff --git a/FunctionSpace/EvaluatedBasis.h b/FunctionSpace/EvaluatedBasis.h
index a6e4b50de2..3ff8a8d2aa 100644
--- a/FunctionSpace/EvaluatedBasis.h
+++ b/FunctionSpace/EvaluatedBasis.h
@@ -100,7 +100,7 @@ EvaluatedBasis::getEvaluation(unsigned int refSpace) const{
 
 inline const fullMatrix<double>& 
 EvaluatedBasis::getEvaluation(const MElement& element) const{
-  return *(*eBasis)[refSpace->getReferenceSpace(element)];
+  return *(*eBasis)[refSpace->getPermutation(element)];
 }
 
 #endif
diff --git a/FunctionSpace/GradBasis.cpp b/FunctionSpace/GradBasis.cpp
index 68830057e6..7507d11b92 100644
--- a/FunctionSpace/GradBasis.cpp
+++ b/FunctionSpace/GradBasis.cpp
@@ -5,7 +5,7 @@ using namespace std;
 GradBasis::GradBasis(const BasisScalar& other){
   // Reference Space //
   refSpace  = &other.getReferenceSpace();
-  nRefSpace = other.getReferenceSpace().getNReferenceSpace();
+  nRefSpace = other.getReferenceSpace().getNPermutation();
 
   // Set Basis Type //
   order = other.getOrder() - 1;
diff --git a/FunctionSpace/LineEdgeBasis.cpp b/FunctionSpace/LineEdgeBasis.cpp
index 0dcf2c85b8..d822a81b84 100644
--- a/FunctionSpace/LineEdgeBasis.cpp
+++ b/FunctionSpace/LineEdgeBasis.cpp
@@ -7,7 +7,7 @@ using namespace std;
 LineEdgeBasis::LineEdgeBasis(unsigned int order){
   // Reference Space //
   refSpace  = new LineReferenceSpace;
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
 
   const vector<const vector<const vector<unsigned int>*>*>&
     edgeV = refSpace->getAllEdge();
diff --git a/FunctionSpace/LineNedelecBasis.cpp b/FunctionSpace/LineNedelecBasis.cpp
index f0d2f16bcb..3dd3545bb9 100644
--- a/FunctionSpace/LineNedelecBasis.cpp
+++ b/FunctionSpace/LineNedelecBasis.cpp
@@ -7,7 +7,7 @@ using namespace std;
 LineNedelecBasis::LineNedelecBasis(void){
   // Reference Space //
   refSpace  = new LineReferenceSpace;
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
 
   // Set Basis Type //
   order = 1;
diff --git a/FunctionSpace/LineNodeBasis.cpp b/FunctionSpace/LineNodeBasis.cpp
index ec3bd6e41c..0c80278d59 100644
--- a/FunctionSpace/LineNodeBasis.cpp
+++ b/FunctionSpace/LineNodeBasis.cpp
@@ -7,7 +7,7 @@ using namespace std;
 LineNodeBasis::LineNodeBasis(unsigned int order){
   // Reference Space //
   refSpace  = new LineReferenceSpace;
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
 
   const vector<const vector<const vector<unsigned int>*>*>&
     edgeV = refSpace->getAllEdge();
diff --git a/FunctionSpace/LineReferenceSpace.h b/FunctionSpace/LineReferenceSpace.h
index 16f0cc5c6f..9059d23ff0 100644
--- a/FunctionSpace/LineReferenceSpace.h
+++ b/FunctionSpace/LineReferenceSpace.h
@@ -4,12 +4,28 @@
 #include <string>
 #include "ReferenceSpace.h"
 
+/**
+   @class LineReferenceSpace
+   @brief ReferenceSpace for a Line
+
+   This class implements a ReferenceSpace for a Line.
+ */
+
 class LineReferenceSpace: public ReferenceSpace{
  public:
   LineReferenceSpace(void);
   virtual ~LineReferenceSpace(void);
 
-  std::string toLatex(void) const;  
+  virtual std::string toLatex(void) const;  
 };
 
+/**
+   @fn LineReferenceSpace::LineReferenceSpace
+   Instatiate a new ReferenceSpace for a Line
+   **
+
+   @fn LineReferenceSpace::~LineReferenceSpace
+   Deletes this LineReferenceSpace
+*/
+
 #endif
diff --git a/FunctionSpace/ReferenceSpace.cpp b/FunctionSpace/ReferenceSpace.cpp
index 5f09a4e099..a56ab022bd 100644
--- a/FunctionSpace/ReferenceSpace.cpp
+++ b/FunctionSpace/ReferenceSpace.cpp
@@ -222,7 +222,7 @@ inOrder(unsigned int permutation,
   return inorder;  
 }
 
-unsigned int ReferenceSpace::getReferenceSpace(const MElement& elem) const{
+unsigned int ReferenceSpace::getPermutation(const MElement& elem) const{
   // Const_Cast //
   MElement& element = const_cast<MElement&>(elem);
 
diff --git a/FunctionSpace/ReferenceSpace.h b/FunctionSpace/ReferenceSpace.h
index c8f341cc3b..580d56239f 100644
--- a/FunctionSpace/ReferenceSpace.h
+++ b/FunctionSpace/ReferenceSpace.h
@@ -6,8 +6,18 @@
 #include <string>
 #include "MElement.h"
 
+/**
+   @interface ReferenceSpace
+   @brief Base interface for all ReferenceSpace%s
+
+   This class represents the notion of Reference Space.@n
+   A Reference Space is the set of all the @em permutations
+   of the @em reference @em element of a @em particular
+   @em geometrical entity.@n
+ */
+
 class ReferenceSpace{
- protected:
+ private:
   // Permuation Tree Structure //
   struct node_s{
     unsigned int  depth;    // Depth
@@ -23,6 +33,7 @@ class ReferenceSpace{
 
   typedef node_s node;
 
+ protected:
   // Permutation (Tree + Leaf) //
   unsigned int   nextLeafId;
   unsigned int   nVertex;
@@ -45,9 +56,9 @@ class ReferenceSpace{
  public:
   virtual ~ReferenceSpace(void);
 
-  unsigned int getNReferenceSpace(void) const;
+  unsigned int getNPermutation(void) const;
   
-  unsigned int getReferenceSpace(const MElement& element) const;
+  unsigned int getPermutation(const MElement& element) const;
 
   std::vector<const std::vector<const std::vector<unsigned int>*>*>&
     getAllEdge(void) const;
@@ -57,6 +68,8 @@ class ReferenceSpace{
 
   std::string toString(void) const;
 
+  virtual std::string toLatex(void) const = 0;
+
  protected:
   ReferenceSpace(void);
 
@@ -86,13 +99,73 @@ class ReferenceSpace{
   std::string toString(const node* node) const;
 };
 
+
+/**
+   @internal
+   @fn ReferenceSpace::ReferenceSpace
+   Instatiate a new ReferenceSpace
+   @endinternal
+   **
+
+   @fn ReferenceSpace::~ReferenceSpace
+   Deletes this ReferenceSpace
+   **
+   
+   @fn ReferenceSpace::getNPermutation
+   @returns Returns the number of permutation of this
+   ReferenceSpace
+   **
+
+   @fn ReferenceSpace::getPermutation
+   @param element A MElement
+   @returns Returns the a natural number defining 
+   the permutation of the given element
+   
+   @note If no permutation is found (e.g. the given
+   element does not belong the @em same @em geometrical 
+   entity as this ReferenceSpace) an Exception is thrown
+   **
+
+   @fn ReferenceSpace::getAllEdge
+   @return Returns every Edge permutation of this ReferenceSpace
+   
+   @note
+   @li The fisrt vector represents a particular permutation 
+   (see ReferenceSpace::getPermutation())
+   @li The second vector represents a particular edge 
+   (for a given permutation) 
+   @li The last vector represents the Vertex @c IDs of 
+   the given edge (in the @em geometrical reference space)
+   **
+
+   @fn ReferenceSpace::getAllFace
+   @return Returns every Face permutation of this ReferenceSpace
+   
+   @note
+   @li The fisrt vector represents a particular permutation 
+   (see ReferenceSpace::getPermutation())
+   @li The second vector represents a particular face 
+   (for a given permutation) 
+   @li The last vector represents the Vertex @c IDs of 
+   the given face (in the @em geometrical reference space)
+   **
+
+   @fn ReferenceSpace::toString
+   @return Returns a string describing this ReferenceSpace
+   **
+
+   @fn ReferenceSpace::toLatex
+   @return Returns a string (of a Latex file) 
+   describing this ReferenceSpace   
+ */
+
 //////////////////////
 // Inline Functions //
 //////////////////////
 
 inline 
 unsigned int 
-ReferenceSpace::getNReferenceSpace(void) const{
+ReferenceSpace::getNPermutation(void) const{
   return nPerm;
 }
   
diff --git a/FunctionSpace/TetEdgeBasis.cpp b/FunctionSpace/TetEdgeBasis.cpp
index 176ddef8d1..6d51adbfd9 100644
--- a/FunctionSpace/TetEdgeBasis.cpp
+++ b/FunctionSpace/TetEdgeBasis.cpp
@@ -7,7 +7,7 @@ using namespace std;
 TetEdgeBasis::TetEdgeBasis(unsigned int order){
   // Reference Space //
   refSpace  = new TetReferenceSpace;
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
 
   const vector<const vector<const vector<unsigned int>*>*>&
     edgeV = refSpace->getAllEdge();
diff --git a/FunctionSpace/TetNodeBasis.cpp b/FunctionSpace/TetNodeBasis.cpp
index de93f406b1..118c0bd5c2 100644
--- a/FunctionSpace/TetNodeBasis.cpp
+++ b/FunctionSpace/TetNodeBasis.cpp
@@ -7,7 +7,7 @@ using namespace std;
 TetNodeBasis::TetNodeBasis(unsigned int order){
   // Reference Space //
   refSpace  = new TetReferenceSpace;
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
 
   const vector<const vector<const vector<unsigned int>*>*>&
     edgeV = refSpace->getAllEdge();
diff --git a/FunctionSpace/TetReferenceSpace.h b/FunctionSpace/TetReferenceSpace.h
index 53532863d4..4895fa8490 100644
--- a/FunctionSpace/TetReferenceSpace.h
+++ b/FunctionSpace/TetReferenceSpace.h
@@ -4,12 +4,28 @@
 #include <string>
 #include "ReferenceSpace.h"
 
+/**
+   @class TetReferenceSpace
+   @brief ReferenceSpace for Tetrahedron
+
+   This class implements a ReferenceSpace for a Tetrahedron.
+ */
+
 class TetReferenceSpace: public ReferenceSpace{
  public:
   TetReferenceSpace(void);
   virtual ~TetReferenceSpace(void);
 
-  std::string toLatex(void) const;  
+  virtual std::string toLatex(void) const;  
 };
 
+/**
+   @fn TetReferenceSpace::TetReferenceSpace
+   Instatiate a new ReferenceSpace for a Tetrahedron
+   **
+
+   @fn TetReferenceSpace::~TetReferenceSpace
+   Deletes this TetReferenceSpace
+*/
+
 #endif
diff --git a/FunctionSpace/TriEdgeBasis.cpp b/FunctionSpace/TriEdgeBasis.cpp
index b0a705c52c..99b56254ae 100644
--- a/FunctionSpace/TriEdgeBasis.cpp
+++ b/FunctionSpace/TriEdgeBasis.cpp
@@ -7,7 +7,7 @@ using namespace std;
 TriEdgeBasis::TriEdgeBasis(unsigned int order){
   // Reference Space //
   refSpace  = new TriReferenceSpace;
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
 
   const vector<const vector<const vector<unsigned int>*>*>&
     edgeV = refSpace->getAllEdge();
diff --git a/FunctionSpace/TriNedelecBasis.cpp b/FunctionSpace/TriNedelecBasis.cpp
index dab1f19c86..d88d0be855 100644
--- a/FunctionSpace/TriNedelecBasis.cpp
+++ b/FunctionSpace/TriNedelecBasis.cpp
@@ -6,7 +6,7 @@ using namespace std;
 TriNedelecBasis::TriNedelecBasis(void){
   // Reference Space //
   refSpace  = new TriReferenceSpace;
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
 
   const vector<const vector<const vector<unsigned int>*>*>&
     edgeV = refSpace->getAllEdge();
diff --git a/FunctionSpace/TriNodeBasis.cpp b/FunctionSpace/TriNodeBasis.cpp
index ae3d6d8e5e..d4556c5575 100644
--- a/FunctionSpace/TriNodeBasis.cpp
+++ b/FunctionSpace/TriNodeBasis.cpp
@@ -7,7 +7,7 @@ using namespace std;
 TriNodeBasis::TriNodeBasis(unsigned int order){
   // Reference Space //
   refSpace  = new TriReferenceSpace;
-  nRefSpace = refSpace->getNReferenceSpace();
+  nRefSpace = refSpace->getNPermutation();
 
   const vector<const vector<const vector<unsigned int>*>*>&
     edgeV = refSpace->getAllEdge();
diff --git a/FunctionSpace/TriReferenceSpace.h b/FunctionSpace/TriReferenceSpace.h
index 9866c8e48b..0ac863a416 100644
--- a/FunctionSpace/TriReferenceSpace.h
+++ b/FunctionSpace/TriReferenceSpace.h
@@ -4,12 +4,28 @@
 #include <string>
 #include "ReferenceSpace.h"
 
+/**
+   @class TriReferenceSpace
+   @brief ReferenceSpace for a Triangle
+
+   This class implements a ReferenceSpace for a Triangle.
+ */
+
 class TriReferenceSpace: public ReferenceSpace{
  public:
   TriReferenceSpace(void);
   virtual ~TriReferenceSpace(void);
 
-  std::string toLatex(void) const;  
+  virtual std::string toLatex(void) const;  
 };
 
+/**
+   @fn TriReferenceSpace::TriReferenceSpace
+   Instatiate a new ReferenceSpace for a Triangle
+   **
+
+   @fn TriReferenceSpace::~TriReferenceSpace
+   Deletes this TriReferenceSpace
+*/
+
 #endif
-- 
GitLab