Ejemplo n.º 1
0
UInt ExporterVTK<MeshType>::whichCellType ( const feSpacePtr_Type& _feSpacePtr )
{
    ASSERT ( _feSpacePtr.get(), "\nA pointer to a valid FE object is required!");

    UInt vtkCellType (0);

    switch ( _feSpacePtr->fe().refFE().type() )
    {
        case FE_P1_2D:
            // case FE_P1bubble_2D:
            vtkCellType = VTK_TRIANGLE;
            break;
        case FE_P2_2D:
            vtkCellType = VTK_QUADRATIC_TRIANGLE;
            break;
        case FE_P0_3D:
        case FE_P1_3D:
            vtkCellType = VTK_TETRA;
            break;
        case FE_P2_3D:
        case FE_P2tilde_3D:
            vtkCellType = VTK_QUADRATIC_TETRA;
            break;
        case FE_Q1_2D:
            vtkCellType = VTK_QUAD;
            break;
        case FE_Q2_2D:
            vtkCellType = VTK_QUADRATIC_QUAD;
            break;
        case FE_Q0_3D:
        case FE_Q1_3D:
            vtkCellType = VTK_HEXAHEDRON;
            break;
        case FE_Q2_3D:
            vtkCellType = VTK_QUADRATIC_HEXAHEDRON;
            break;
        default:
            ERROR_MSG ( "WARNING: the element is not yet implemented in ExporterVTK\n" )
            break;
    }

    return vtkCellType;
}