Skip to content
Snippets Groups Projects
Select Git revision
  • dbef107676767962d89710fb0ba4f9e5ab7d154c
  • master default
  • cgnsUnstructured
  • partitioning
  • poppler
  • HighOrderBLCurving
  • gmsh_3_0_4
  • gmsh_3_0_3
  • gmsh_3_0_2
  • gmsh_3_0_1
  • gmsh_3_0_0
  • gmsh_2_16_0
  • gmsh_2_15_0
  • gmsh_2_14_1
  • gmsh_2_14_0
  • gmsh_2_13_2
  • gmsh_2_13_1
  • gmsh_2_12_0
  • gmsh_2_11_0
  • gmsh_2_10_1
  • gmsh_2_10_0
  • gmsh_2_9_3
  • gmsh_2_9_2
  • gmsh_2_9_1
  • gmsh_2_9_0
  • gmsh_2_8_6
26 results

GModel.cpp

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    QuadNodeBasis.cpp 4.22 KiB
    #include "QuadNodeBasis.h"
    #include "QuadReferenceSpace.h"
    #include "Legendre.h"
    
    using namespace std;
    
    QuadNodeBasis::QuadNodeBasis(size_t order){
      // Reference Space //
      refSpace  = new QuadReferenceSpace;
      const size_t nRefSpace = getReferenceSpace().getNReferenceSpace();
    
      const vector<vector<vector<size_t> > >&
        edgeIdx = refSpace->getEdgeNodeIndex();
    
      const vector<vector<vector<size_t> > >&
        faceIdx = refSpace->getFaceNodeIndex();
    
      // Set Basis Type //
      this->order = order;
    
      type = 0;
      dim  = 2;
    
      nVertex   = 4;
      nEdge     = 4 * (order - 1);
      nFace     =     (order - 1) * (order - 1);
      nCell     = 0;
      nFunction = nVertex + nEdge + nFace + nCell;
    
      // Legendre Polynomial //
      Polynomial* legendre = new Polynomial[order];
      Legendre::integrated(legendre, order);
    
      // Lagrange & Lifting //
      const Polynomial lagrange[4] =
        {
          Polynomial((Polynomial(1, 0, 0, 0) - Polynomial(1, 1, 0, 0)) *
                     (Polynomial(1, 0, 0, 0) - Polynomial(1, 0, 1, 0))),
    
          Polynomial((Polynomial(1, 1, 0, 0)) *
                     (Polynomial(1, 0, 0, 0) - Polynomial(1, 0, 1, 0))),
    
          Polynomial((Polynomial(1, 1, 0, 0)) *
                     (Polynomial(1, 0, 1, 0))),
    
          Polynomial((Polynomial(1, 0, 0, 0) - Polynomial(1, 1, 0, 0)) *
                     (Polynomial(1, 0, 1, 0)))
        };
    
      const Polynomial lifting[4] =
        {
          Polynomial((Polynomial(1, 0, 0, 0) - Polynomial(1, 1, 0, 0)) +
                     (Polynomial(1, 0, 0, 0) - Polynomial(1, 0, 1, 0))),
    
          Polynomial((Polynomial(1, 1, 0, 0)) +
                     (Polynomial(1, 0, 0, 0) - Polynomial(1, 0, 1, 0))),
    
          Polynomial((Polynomial(1, 1, 0, 0)) +
                     (Polynomial(1, 0, 1, 0))),
    
          Polynomial((Polynomial(1, 0, 0, 0) - Polynomial(1, 1, 0, 0)) +
                     (Polynomial(1, 0, 1, 0)))
        };
    
      // Basis //
      basis = new Polynomial**[nRefSpace];
    
      for(size_t s = 0; s < nRefSpace; s++)
        basis[s] = new Polynomial*[nFunction];