diff --git a/FunctionSpace/Basis.h b/FunctionSpace/Basis.h index 9e3f8412eaba564358a23600fc71b0026c8455b1..828044e0b6061dd8bd61d32e3ab261825bdb9a28 100644 --- a/FunctionSpace/Basis.h +++ b/FunctionSpace/Basis.h @@ -9,38 +9,37 @@ @interface Basis @brief Common Interface of all Basis - This class is the @em common @em interface for all Basis.@n + This class is the common interface for all Basis. - A Basis is @em set of @em linearly @em independent Polynomial%s - (or Vector%s of Polynomial%s).@n + A Basis is set of linearly independent Polynomial%s + (or Vector%s of Polynomial%s). - @note The returned matrices are the result of the evaluation - of the basis functions (at @c N points).@n + of the basis functions (at N points). - The @c i-th row of these matrices is always refering to the - @c i-th function of the basis.@n + The i-th row of these matrices is always refering to the + i-th function of the basis. Depending on the nature of the returned value - (@em scalar or @em vector), the columns are organized + (scalar or vector), the columns are organized diferently. - For @em scalar values, we have: - @li The @c j-th column of the @c i-th row is - the evaluation of the @c i-th function at the @c j-th point + For scalar values, we have: + @li The j-th column of the i-th row is + the evaluation of the i-th function at the j-th point - For @em vectorial values, we have: - @li The @c j-th column of the @c i-th row is - the @em first @em coordinate of - the evaluation of the @c i-th function at the @c 3 @c x @c j-th point + For vectorial values, we have: + @li The j-th column of the i-th row is + the first coordinate of + the evaluation of the i-th function at the 3 x j-th point - @li The @c (@c j-th @c + @c 1 @c ) column of the @c i-th row is - the @em second @em coordinate of - the evaluation of the @c i-th function at the @c 3 @c x @c j-th point + @li The (j-th + 1) column of the i-th row is + the second coordinate of + the evaluation of the i-th function at the 3 x j-th point - @li The @c (@c j-th @c + @c 2 @c ) column of the @c i-th row is - the @em third @em coordinate of - the evaluation of the @c i-th function at the @c 3 @c x @c j-th point + @li The (j-th + 2) column of the i-th row is + the third coordinate of + the evaluation of the i-th function at the 3 x j-th point */ class Basis{ @@ -134,32 +133,25 @@ class Basis{ @fn Basis::isScalar @return Returns: - @li @c true, if this is a - @em scalar Basis - @li @c false, if this is a - @em vectorial Basis - - @note - Scalar basis are sets of - Polynomial%s@n - Vectorial basis are sets of - Vector%s of Polynomial%s + @li true, if this is a scalar Basis + @li false, if this is a vectorial Basis + + Scalar basis are sets of Polynomial%s, and + Vectorial basis are sets of Vector%s of Polynomial%s ** @fn Basis::isLocal @return Returns: - @li @c true, if this is a - @em Local Basis - @li @c false, if this is a - @em Global Basis + @li true, if this is a Local Basis + @li false, if this is a Global Basis ** @fn Basis::getOrder - @return Returns the @em polynomial @em order of the Basis + @return Returns the polynomial order of the Basis ** @fn Basis::getType - @return Returns the @em type of the Basis: + @return Returns the type of the Basis: @li 0 for 0-form @li 1 for 1-form @li 2 for 2-form @@ -167,118 +159,100 @@ class Basis{ ** @fn Basis::getDim - @return Returns the @em dimension - (@c 1D, @c 2D or @c 3D) of the Basis + @return Returns the dimension (1D, 2D or 3D) of the Basis ** @fn Basis::getNVertexBased - @return Returns the number of @em Vertex - @em Based functions of this Basis + @return Returns the number of Vertex Based functions of this Basis ** @fn Basis::getNEdgeBased - @return Returns the number of @em Edge - @em Based functions of this Basis + @return Returns the number of Edge Based functions of this Basis ** @fn Basis::getNFaceBased - @return Returns the number of @em Face - @em Based functions of this Basis + @return Returns the number of Face Based functions of this Basis ** @fn Basis::getNCellBased - @return Returns the number of @em Cell - @em Based functions of this Basis + @return Returns the number of Cell Based functions of this Basis ** @fn Basis::getNFunction @return Returns the number of Polynomial%s - (or Vector%s of Polynomial%s) Functions - in this Basis + (or Vector%s of Polynomial%s) Functions in this Basis ** - @fn Basis::getNOrientation - @return Returns the number of - @em orientation of this Basis - Reference Space + @fn Basis::getReferenceSpace + @return Returns the ReferenceSpace associated to this basis ** - @fn Basis::getOrientation + @fn Basis::getFunctions(fullMatrix<double>&, const MElement&, double, double, double) const + @param retValues An allocated matrix @param element A MElement - @return Returns a number - (from 0 to Basis::getNOrientation() - 1) - charaterizing the @em orientation - of the given element - ** - - @fn Basis::getFunctions(size_t, double, double, double) const - @param orientation A natural number defining the reference space @em orientation - @param u A @c u coordinate in the reference space of this Basis - @param v A @c v coordinate in the reference space of this Basis - @param w A @c w coordinate in the reference space of this Basis - @return Instanciates a new fullMatrix<double> with the @em evaluation - of every basis function at the given coordinates, and for the - given orientation - - @warning - The Instanciated Matrix must be deleted by the @em calling function + @param u A u coordinate in the reference space of this Basis + @param v A v coordinate in the reference space of this Basis + @param w A w coordinate in the reference space of this Basis + @return The given matrix is populated with the evaluation + of every basis function at the given coordinates, + and for the orientation of the given element ** - @fn Basis::getFunctions(const MElement&, double, double, double) const - @param element A MElement - @param u A @c u coordinate in the reference space of this Basis - @param v A @c v coordinate in the reference space of this Basis - @param w A @c w coordinate in the reference space of this Basis - @return Same as Basis::getFunction(Basis::getOrientation(@c element), - @c u, @c u, @c w) + @fn Basis::getFunctions(fullMatrix<double>&, size_t, double, double, double) const + @param retValues An allocated matrix + @param orientation A integer + @param u A u coordinate in the reference space of this Basis + @param v A v coordinate in the reference space of this Basis + @param w A w coordinate in the reference space of this Basis + @return The given matrix is populated with the evaluation + of every basis function at the given coordinates, + and for the given orientation ** @fn Basis::preEvaluateFunctions @param point A Matrix with points coordinate - (each line is a point and got 3 coordinates, @em i.e. 3 rows) + (each line is a point and got 3 coordinates, i.e. 3 rows) @return Pre Evaluates every basis function at the given points ** @fn Basis::preEvaluateDerivatives @param point A Matrix with points coordinate - (each line is a point and got 3 coordinates, @em i.e. 3 rows) - @return Pre Evaluates every basis function @em derivative at the given points - - @note - @li For 0-Form it computes the @em gradient - @li For 1-Form it computes the @em curl - @li For 2-Form it computes the @em divergence - @li For 3-Form it computes the @em ??? - @todo What is the derivative of a 3-Form - (does it exists -- discontinous field nope ?) ? + (each line is a point and got 3 coordinates, i.e. 3 rows) + @return Pre Evaluates every basis function derivative at the given points + + @li For 0-Form it computes the gradient + @li For 1-Form it computes the curl + @li For 2-Form it computes the divergence ** @fn Basis::getPreEvaluatedFunctions(size_t) const - @param orientation A natural number defining the reference space @em orientation + @param orientation A natural number defining the reference space orientation @return Returns a Matrix with the PreEvaluated basis functions - (see Basis::preEvaluateFunctions()), with the given @em orientation + (see Basis::preEvaluateFunctions()), with the given orientation - @note If no PreEvaluation has been done before calling this function, an Exception is thrown ** @fn Basis::getPreEvaluatedDerivatives(size_t) const - @param orientation A natural number defining the reference space @em orientation - @return Returns a Matrix with the PreEvaluated basis functions @em derivatives - (see Basis::preEvaluateDerivatives()), with the given @em orientation + @param orientation A natural number defining the reference space orientation + @return Returns a Matrix with the PreEvaluated basis functions derivatives + (see Basis::preEvaluateDerivatives()), with the given orientation - @note If no PreEvaluation of the gradient has been done before calling this function, an Exception is thrown ** @fn Basis::getPreEvaluatedFunctions(const MElement&) const - @return Same as Basis::getPreEvaluatedFunctions(Basis::getOrientation(@c element)) + @param element A MElement + @return Same as Basis::getPreEvaluatedFunctions, + but the orientation is computed with the given element ** @fn Basis::getPreEvaluatedDerivatives(const MElement&) const - @return Same as Basis::getPreEvaluatedDerivatives(Basis::getOrientation(@c element)) + @param element A MElement + @return Same as Basis::getPreEvaluatedFunctions, + but the orientation is computed with the given element */ ////////////////////// diff --git a/FunctionSpace/BasisLagrange.cpp b/FunctionSpace/BasisLagrange.cpp index df435aab1bbb4431e1331b0c0e744c25a0350f27..aa5901dd625807c3c5148f71c092954beb1934ff 100644 --- a/FunctionSpace/BasisLagrange.cpp +++ b/FunctionSpace/BasisLagrange.cpp @@ -225,7 +225,7 @@ BasisLagrange::getPreEvaluatedDerivatives(size_t orientation) const{ vector<double> BasisLagrange:: project(const MElement& element, - const vector<double>& coef, + const std::vector<double>& coef, const FunctionSpaceScalar& fSpace){ // Init New Coefs // @@ -264,7 +264,7 @@ project(const MElement& element, vector<fullVector<double> > BasisLagrange:: project(const MElement& element, - const vector<double>& coef, + const std::vector<double>& coef, const FunctionSpaceVector& fSpace){ // Init New Coefs // diff --git a/FunctionSpace/BasisLagrange.h b/FunctionSpace/BasisLagrange.h index 4124edfab995ef9fb40926febe1320b7a6597ba5..8abd5afe3ba56229bf52b2f121847bb2a894f3ba 100644 --- a/FunctionSpace/BasisLagrange.h +++ b/FunctionSpace/BasisLagrange.h @@ -11,16 +11,13 @@ @interface BasisLagrange @brief Interface for Lagrange Basis - This is an interface for Lagrange Basis.@n + This is an interface for Lagrange Basis. - These Local Scalar Basis allow a @em Coefficient Matrix, - and a Monomial Matrix, to be consulted.@n + These Local Scalar Basis allow a Coefficient Matrix, + and a Monomial Matrix, to be consulted. A vector from an Other Basis (set of Functions) - can also be projected into a Lagrange Basis.@n - - @todo - Add a method to get lagrange Point in polynomialBasis + can also be projected into a Lagrange Basis. */ class BasisLagrange: public BasisLocal{ diff --git a/FunctionSpace/CMakeLists.txt b/FunctionSpace/CMakeLists.txt index 44ea8b673811a84a41320009ea07aba30f09d83e..724e30c5ce17c4ede7b338f26005e8811178095c 100644 --- a/FunctionSpace/CMakeLists.txt +++ b/FunctionSpace/CMakeLists.txt @@ -14,6 +14,7 @@ set(SRC TriReferenceSpace.cpp QuadReferenceSpace.cpp TetReferenceSpace.cpp + HexReferenceSpace.cpp ReferenceSpaceLagrange.cpp TriLagrangeReferenceSpace.cpp diff --git a/FunctionSpace/FunctionSpace.h b/FunctionSpace/FunctionSpace.h index bdaed37a29aed24bb4f0c9e3be1b53d88423e832..75f6b3eb7d4ff7a94b45155a4491bf132284da48 100644 --- a/FunctionSpace/FunctionSpace.h +++ b/FunctionSpace/FunctionSpace.h @@ -22,20 +22,20 @@ @interface FunctionSpace @brief Common Interface of all Function Spaces - This is the @em common @em interface of - all Function Spaces.@n + This is the common interface of + all Function Spaces. - A FunctionSpace is defined on a @em support, - which is a collection of MElement%s (GroupOfElement).@n + A FunctionSpace is defined on a support, + which is a collection of MElement%s (GroupOfElement). - Those MElement%s @em must belong to the @em same Mesh. + Those MElement%s must belong to the same Mesh. A FunctionSpace is also responsible for the generation of all - the Dof%s and GroupOfDof%s related to its geometrical @em Support. + the Dof%s and GroupOfDof%s related to its geometrical Support. @todo - Allow Hybrid Mesh@n - Remove call to GroupOfElement:::orientAllElements() + Allow Hybrid Mesh + Remove call to GroupOfElement::orientAllElements() */ class Mesh; @@ -121,8 +121,8 @@ class FunctionSpace{ @fn FunctionSpace::isScalar @return Returns: - @li @c true, if this FunstionSpace is scalar - @li @c flase, otherwise + @li true, if this FunstionSpace is scalar + @li flase, otherwise ** @fn vector<Dof> FunctionSpace::getKeys(const MElement& element) const @@ -146,20 +146,20 @@ class FunctionSpace{ ** @fn FunctionSpace::getAllDofs - @return Returns all the @em Dof%s associated to every Element%s - of this FunctionSpace @em support + @return Returns all the Dof%s associated to every Element%s + of this FunctionSpace support ** @fn FunctionSpace::getAllGroups - @return Returns all the @em GroupOfDof%s associated to every Element%s - of this FunctionSpace @em support + @return Returns all the GroupOfDof%s associated to every Element%s + of this FunctionSpace support ** @fn FunctionSpace::getGoDFromElement @param element An Element of the FunctionSpace Support - @return Returns the @em GroupOfDof%s associated to - the given @em Element - @note + @return Returns the GroupOfDof%s associated to + the given Element + If the given Element is not in the FunctionSpace Support, an Exception is thrown ** diff --git a/FunctionSpace/LineReferenceSpace.cpp b/FunctionSpace/LineReferenceSpace.cpp index 7106c8b6f7230ffd29343d835b41ca598194372d..c87a3d56bdc2a4ca6568e1fe73e837db22308e29 100644 --- a/FunctionSpace/LineReferenceSpace.cpp +++ b/FunctionSpace/LineReferenceSpace.cpp @@ -16,6 +16,7 @@ LineReferenceSpace::LineReferenceSpace(void){ // Face Definition // refFaceNodeIdx.clear(); // No Face in Line + parallelFaceId.clear(); // And no parallel Face init(); } diff --git a/FunctionSpace/PermutationTree.h b/FunctionSpace/PermutationTree.h index 7f13431d263a4a5d66f64d6dbdbec2f2d48177e7..9c54628692ff50c819c85e19a808502b3ce5dd16 100644 --- a/FunctionSpace/PermutationTree.h +++ b/FunctionSpace/PermutationTree.h @@ -6,6 +6,19 @@ #include <list> #include <string> +/** + @class PermutationTree + @brief A Permutation Tree + + This class represents a permutation tree. + That is, given a sequence of length N, + this tree will hold all the possible permutations + of the N elements of the given sequence. + + Every permuted sequence can be associated an ID and a tag. + By default all sequences are assigned the tag 0. + */ + class PermutationTree{ private: // Tree node // @@ -45,6 +58,8 @@ class PermutationTree{ void addTagToPermutation(size_t permutationId, size_t tag); size_t getTagFromPermutation(size_t permutationId); + //std::vector<size_t> getAllTags(void) const; + std::string toString(void) const; private: @@ -58,6 +73,57 @@ class PermutationTree{ size_t offset); }; +/** + @fn PermutationTree::PermutationTree + @param refSequence A vector of integers + + Instanciates a new PermutationTree build on the given vector + ** + + @fn PermutationTree::~PermutationTree + + Deletes this PermutationTree + ** + + @fn PermutationTree::getSequenceSize + @return Returns the size of the sequences + ** + + @fn PermutationTree::getNPermutation + @return Returns the number of permutation of the original sequence + (including the original sequence) + ** + + @fn PermutationTree::getPermutationId + @param sequence A sequence + @return Returns the ID of the given sequence + ** + + @fn PermutationTree::fillWithPermutation + @param permutationId A permuted sequence ID + @param vectorToFill An allocated vector of size + PermutationTree::getSequenceSize() + + Populates the given vector with the permuted sequence of + the given ID + ** + + @fn PermutationTree::addTagToPermutation + @param permutationId A permuted sequence ID + @param tag An integer + + Associates the given permutation with the given tag + ** + + @fn PermutationTree::getTagFromPermutation + @param permutationId A permuted sequence ID + @return Returns the tag of the given sequence + ** + + @fn PermutationTree::toString + @return Returns a string describing this PermutationTree + */ + ////////////////////// // Inline Functions // ////////////////////// diff --git a/FunctionSpace/QuadReferenceSpace.cpp b/FunctionSpace/QuadReferenceSpace.cpp index 47495dd8d718e063b1e65e4d0f3b0d504ab6cf53..318c3e3c9e2ac8bd7f33c1d1f0fe56c500b917ac 100644 --- a/FunctionSpace/QuadReferenceSpace.cpp +++ b/FunctionSpace/QuadReferenceSpace.cpp @@ -27,6 +27,9 @@ QuadReferenceSpace::QuadReferenceSpace(void){ refFaceNodeIdx[0][2] = 2; refFaceNodeIdx[0][3] = 3; + parallelFaceId.resize(1); + parallelFaceId[0] = -1; // Face zero has no parallel face + // Init All // init(); } diff --git a/FunctionSpace/ReferenceSpace.cpp b/FunctionSpace/ReferenceSpace.cpp index d11afb6f8101b636ecf0827ad51c8cc5103d468b..3959ee9f12a00e088ca44d2980cf76af195fc420 100644 --- a/FunctionSpace/ReferenceSpace.cpp +++ b/FunctionSpace/ReferenceSpace.cpp @@ -35,7 +35,7 @@ void ReferenceSpace::init(void){ listOfReverseNodeIndexPermutation); // Iterators // - list<size_t>::iterator refSpaceIt = listOfTrueReferenceSpace.begin(); + list<size_t>::iterator refSpaceIt = listOfTrueReferenceSpace.begin(); // Reference Spaces Node Id // const size_t nRefSpace = listOfTrueReferenceSpace.size(); @@ -216,6 +216,27 @@ size_t ReferenceSpace::findCorrespondingFace(vector<size_t>& face, return -1; } +bool ReferenceSpace::haveSameNode(vector<size_t> face0, + vector<size_t> face1){ + // Check Sizes + const size_t size = face0.size(); + + if(size != face1.size()) + return false; + + // Sort both vectors + sort(face0.begin(), face0.end()); + sort(face1.begin(), face1.end()); + + // Check if elements are the same and at same position + bool match = true; + + for(size_t i = 0; i < size && match; i++) + match = (face0[i] == face1[i]); + + return match; +} + bool ReferenceSpace::isFacePermutation(vector<size_t>& refNode, vector<size_t>& testNode){ // Check Size @@ -279,27 +300,6 @@ vector<size_t> ReferenceSpace::getReverseIndexPermutation(vector<size_t>& ref, return idxVec; } -bool ReferenceSpace::haveSameNode(vector<size_t> face0, - vector<size_t> face1){ - // Check Sizes - const size_t size = face0.size(); - - if(size != face1.size()) - return false; - - // Sort both vectors - sort(face0.begin(), face0.end()); - sort(face1.begin(), face1.end()); - - // Check if elements are the same and at same position - bool match = true; - - for(size_t i = 0; i < size && match; i++) - match = (face0[i] == face1[i]); - - return match; -} - void ReferenceSpace::getOrderedEdge(void){ // Fill orderedEdgeNodeIdx[s][e] // // (for all reference space 's' and edge 'e') such that: // @@ -740,6 +740,7 @@ string ReferenceSpace::toString(void) const{ } } + //stream << endl << pTree->getNPermutation() << endl; stream << endl; return stream.str(); diff --git a/FunctionSpace/ReferenceSpace.h b/FunctionSpace/ReferenceSpace.h index 1518a1fbec100df947e110bc69ae4433d698ecef..910eefb59189416e4b667dbe92413daa0c4295f5 100644 --- a/FunctionSpace/ReferenceSpace.h +++ b/FunctionSpace/ReferenceSpace.h @@ -13,10 +13,9 @@ @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 + This class represents the notion of Reference Space. + A Reference Space is the set of all the permutations + of the reference element of a particular geometrical entity. */ class ReferenceSpace{ @@ -32,6 +31,7 @@ class ReferenceSpace{ size_t nVertex; std::vector<std::vector<size_t> > refEdgeNodeIdx; std::vector<std::vector<size_t> > refFaceNodeIdx; + std::vector<size_t> parallelFaceId; // Permutation Tree // PermutationTree* pTree; @@ -107,6 +107,9 @@ class ReferenceSpace{ size_t findCorrespondingFace(std::vector<size_t>& face, std::vector<size_t>& node); + static bool haveSameNode(std::vector<size_t> face0, + std::vector<size_t> face1); + static bool isFacePermutation(std::vector<size_t>& refNode, std::vector<size_t>& testNode); @@ -116,9 +119,6 @@ class ReferenceSpace{ std::vector<size_t> getReverseIndexPermutation(std::vector<size_t>& ref, std::vector<size_t>& test); - static bool haveSameNode(std::vector<size_t> face0, - std::vector<size_t> face1); - size_t getPermutationIdx(const MElement& element) const; static void @@ -148,8 +148,7 @@ class ReferenceSpace{ ** @fn ReferenceSpace::getNReferenceSpace - @returns Returns the number of permutation of this - ReferenceSpace + @returns Returns the number of permutation of this ReferenceSpace ** @fn ReferenceSpace::getReferenceSpace @@ -157,33 +156,29 @@ class ReferenceSpace{ @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 + If no permutation is found (e.g. the given + element does not belong the same geometrical entity as this ReferenceSpace) an Exception is thrown ** - @fn ReferenceSpace::getAllEdge - @return Returns every Edge permutation of this ReferenceSpace + @fn ReferenceSpace::getEdgeNodeIndex + @return Returns every Edge Node Index permutation of this ReferenceSpace - @note @li The fisrt vector represents a particular permutation (see ReferenceSpace::getReferenceSpace()) - @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) + @li The second vector represents a particular edge (for a given permutation) + @li The last vector represents the Vertex IDs of + the given edge (in the geometrical reference space) ** - @fn ReferenceSpace::getAllFace - @return Returns every Face permutation of this ReferenceSpace + @fn ReferenceSpace::getFaceNodeIndex + @return Returns every Face Node Index permutation of this ReferenceSpace - @note @li The fisrt vector represents a particular permutation (see ReferenceSpace::getReferenceSpace()) - @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) + @li The second vector represents a particular face (for a given permutation) + @li The last vector represents the Vertex IDs of + the given face (in the geometrical reference space) ** @fn ReferenceSpace::toString @@ -191,8 +186,7 @@ class ReferenceSpace{ ** @fn ReferenceSpace::toLatex - @return Returns a string (of a Latex file) - describing this ReferenceSpace + @return Returns a string (of a Latex file) describing this ReferenceSpace */ ////////////////////// diff --git a/FunctionSpace/TetNedelecBasis.h b/FunctionSpace/TetNedelecBasis.h index 151296554cbc386202cf5d5598378ad12e47a04f..79381974cf25612e12dfc1ac10475faa7a1517a0 100644 --- a/FunctionSpace/TetNedelecBasis.h +++ b/FunctionSpace/TetNedelecBasis.h @@ -7,15 +7,13 @@ @class TetNedelecBasis @brief A Nedelec Basis for Tetrahedra - This class can instantiate - a Nedelec Basis for Tetrahedra. + This class can instantiate a Nedelec Basis for Tetrahedra. */ class TetNedelecBasis: public BasisHierarchical1Form{ public: - //! @param order The order of the Basis - //! //! Returns a new Nedelec Basis for Tetrahedra + //! TetNedelecBasis(void); //! Deletes this Basis diff --git a/FunctionSpace/TetReferenceSpace.cpp b/FunctionSpace/TetReferenceSpace.cpp index 402d9104df9feed0af1cb70314c4e2a7c2e7c7df..8f5fbe33e60756def9ad180c86267f01c72bb008 100644 --- a/FunctionSpace/TetReferenceSpace.cpp +++ b/FunctionSpace/TetReferenceSpace.cpp @@ -29,6 +29,11 @@ TetReferenceSpace::TetReferenceSpace(void){ refFaceNodeIdx[i][2] = MTetrahedron::faces_tetra(i, 2); } + parallelFaceId.resize(nFace); + + for(size_t i = 0; i < nFace; i++) + parallelFaceId[i] = -1; // Face i has no parallel face + // Init All // init(); } diff --git a/FunctionSpace/TriReferenceSpace.cpp b/FunctionSpace/TriReferenceSpace.cpp index e7b9399f6233fca7e7fe6fd624c97650226e5414..0494373e00b8ea5fae9e0b06d3d4fefd96054c16 100644 --- a/FunctionSpace/TriReferenceSpace.cpp +++ b/FunctionSpace/TriReferenceSpace.cpp @@ -26,6 +26,9 @@ TriReferenceSpace::TriReferenceSpace(void){ refFaceNodeIdx[0][1] = 1; refFaceNodeIdx[0][2] = 2; + parallelFaceId.resize(1); + parallelFaceId[0] = -1; // Face zero has no parallel face + // Init All // init(); }