Skip to content
Snippets Groups Projects
Select Git revision
  • 71f01c1c40f14a0767e544ae55779898c08c8138
  • 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

MLine.cpp

Blame
  • Forked from gmsh / gmsh
    Source project has a limited visibility.
    MLine.cpp 2.10 KiB
    // Gmsh - Copyright (C) 1997-2012 C. Geuzaine, J.-F. Remacle
    //
    // See the LICENSE.txt file for license information. Please report all
    // bugs and problems to <gmsh@geuz.org>.
    
    #include "GmshDefines.h"
    #include "MLine.h"
    #include "GaussLegendre1D.h"
    #include "Context.h"
    #include "qualityMeasures.h"
    
    const polynomialBasis* MLine::getFunctionSpace(int o) const
    {
      int order = (o == -1) ? getPolynomialOrder() : o;
      
      switch (order) {
      case 0: return polynomialBases::find(MSH_LIN_1);
      case 1: return polynomialBases::find(MSH_LIN_2);
      case 2: return polynomialBases::find(MSH_LIN_3);
      case 3: return polynomialBases::find(MSH_LIN_4);
      case 4: return polynomialBases::find(MSH_LIN_5);
      case 5: return polynomialBases::find(MSH_LIN_6);
      case 6: return polynomialBases::find(MSH_LIN_7);
      case 7: return polynomialBases::find(MSH_LIN_8);
      case 8: return polynomialBases::find(MSH_LIN_9);
      case 9: return polynomialBases::find(MSH_LIN_10);
      case 10: return polynomialBases::find(MSH_LIN_11);
      default: Msg::Error("Order %d line function space not implemented", order);
      }
      return 0;
    }
    
    const JacobianBasis* MLine::getJacobianFuncSpace(int o) const
    {
      int order = (o == -1) ? getPolynomialOrder() : o;
      
      switch (order) {
      case 1: return JacobianBasis::find(MSH_LIN_2);
      case 2: return JacobianBasis::find(MSH_LIN_3);
      case 3: return JacobianBasis::find(MSH_LIN_4);
      case 4: return JacobianBasis::find(MSH_LIN_5);
      case 5: return JacobianBasis::find(MSH_LIN_6);
      case 6: return JacobianBasis::find(MSH_LIN_7);
      case 7: return JacobianBasis::find(MSH_LIN_8);
      case 8: return JacobianBasis::find(MSH_LIN_9);
      case 9: return JacobianBasis::find(MSH_LIN_10);
      case 10: return JacobianBasis::find(MSH_LIN_11);
      default: Msg::Error("Order %d line function space not implemented", order);
      }
      return 0;
    }
    
    void MLine::getIntegrationPoints(int pOrder, int *npts, IntPt **pts)
    {
      *npts = getNGQLPts(pOrder);
      *pts = getGQLPts(pOrder);
    }
    
    double MLine::getInnerRadius()
    {
      return _v[0]->distance(_v[1]) * .5;
    }
    
    double MLine::getLength()
    {
      return _v[0]->distance(_v[1]);
    }
    
    double MLine::getVolume()
    {
      return getLength();
    }