Esempio n. 1
0
int isPredefinedCell(const CellTopology& cell) {
  
  switch(cell.getKey() ) {
    case Node::key:
    case Particle::key:
    case Line<2>::key:
    case Line<3>::key:
    case ShellLine<2>::key:
    case ShellLine<3>::key:
    case Beam<2>::key:
    case Beam<3>::key:
      
    case Triangle<3>::key:
    case Triangle<4>::key:
    case Triangle<6>::key:
    case ShellTriangle<3>::key:
    case ShellTriangle<6>::key:
      
    case Quadrilateral<4>::key:
    case Quadrilateral<8>::key:
    case Quadrilateral<9>::key:
    case ShellQuadrilateral<4>::key:
    case ShellQuadrilateral<8>::key:
    case ShellQuadrilateral<9>::key:
      
    case Tetrahedron<4>::key:
    case Tetrahedron<8>::key:
    case Tetrahedron<10>::key:
    case Tetrahedron<11>::key:
      
    case Hexahedron<8>::key:
    case Hexahedron<20>::key:
    case Hexahedron<27>::key:
      
    case Pyramid<5>::key:
    case Pyramid<13>::key:
    case Pyramid<14>::key:
      
    case Wedge<6>::key:
    case Wedge<15>::key:
    case Wedge<18>::key:
      
    case Pentagon<5>::key:
    case Hexagon<6>::key:
      return 1;
      break;
      
    default:
      return 0;
  }
  
}
Esempio n. 2
0
    double GeometryVerifier::getEquiVol(CellTopology& cell_topo)
    {
      double volEqui = 1.0;
      switch(cell_topo.getKey() )
        {

          // Tet cells
        case shards::Tetrahedron<4>::key:
        case shards::Tetrahedron<8>::key:
        case shards::Tetrahedron<10>::key:
          volEqui = std::sqrt(2.)/12.;
          break;

          // Hex cells
        case shards::Hexahedron<8>::key:
        case shards::Hexahedron<20>::key:
        case shards::Hexahedron<27>::key:
          volEqui = 1.0;
          break;

          // Pyramid cells
        case shards::Pyramid<5>::key:
        case shards::Pyramid<13>::key:
        case shards::Pyramid<14>::key:
          volEqui = std::sqrt(2.)/6.;
          break;

          // Wedge cells
        case shards::Wedge<6>::key:
        case shards::Wedge<15>::key:
        case shards::Wedge<18>::key:
          volEqui = std::sqrt(3.)/4.;
          break;

        case shards::Triangle<3>::key:
        case shards::Triangle<4>::key:
        case shards::Triangle<6>::key:
          volEqui = std::sqrt(3.)/4.;
          break;

        case shards::Quadrilateral<4>::key:
        case shards::Quadrilateral<8>::key:
        case shards::Quadrilateral<9>::key:
          volEqui = 1.0;
          break;

        case shards::ShellTriangle<3>::key:
        case shards::ShellTriangle<6>::key:
          volEqui = std::sqrt(3.)/4.;
          break;

        case shards::ShellQuadrilateral<4>::key:
        case shards::ShellQuadrilateral<8>::key:
        case shards::ShellQuadrilateral<9>::key:
          volEqui = 1.0;
          break;

        case shards::ShellLine<2>::key:
        case shards::ShellLine<3>::key:
        case shards::Beam<2>::key:
        case shards::Beam<3>::key:
          volEqui = 1.0;
          break;

        default:
          break;
        }//cell key
      return volEqui;
    }