Changeset 21714


Ignore:
Timestamp:
05/16/17 15:54:22 (8 years ago)
Author:
Mathieu Morlighem
Message:

CHG: added VerticalSegmentsBase

Location:
issm/trunk-jpl/src/c/classes/Elements
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Element.h

    r21620 r21714  
    292292                virtual int        VertexConnectivity(int vertexindex)=0;
    293293                virtual void       VerticalSegmentIndices(int** pindices,int* pnumseg)=0;
     294                virtual void       VerticalSegmentIndicesBase(int** pindices,int* pnumseg)=0;
    294295                virtual void       ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input)=0;
    295296                virtual void       WriteLevelsetSegment(DataSet* segments){_error_("not implemented yet");};
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r21626 r21714  
    33703370}
    33713371/*}}}*/
     3372void       Penta::VerticalSegmentIndicesBase(int** pindices,int* pnumseg){/*{{{*/
     3373
     3374        PentaRef::VerticalSegmentIndicesBase(pindices,pnumseg,this->GetElementType());
     3375
     3376        return;
     3377}
     3378/*}}}*/
    33723379void       Penta::ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){/*{{{*/
    33733380
  • issm/trunk-jpl/src/c/classes/Elements/Penta.h

    r21620 r21714  
    175175                int            VertexConnectivity(int vertexindex);
    176176                void           VerticalSegmentIndices(int** pindices,int* pnumseg);
     177                void           VerticalSegmentIndicesBase(int** pindices,int* pnumseg);
    177178                void           ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
    178179                void           ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum);
  • issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp

    r21586 r21714  
    10301030}
    10311031/*}}}*/
     1032void PentaRef::VerticalSegmentIndicesBase(int** pindices,int* pnumseg,int finiteelement){/*{{{*/
     1033
     1034        /*Output*/
     1035        int  numindices;
     1036        int* indices = NULL;
     1037
     1038        switch(finiteelement){
     1039                case P1Enum: case P1DGEnum:
     1040                        numindices = 3*2;
     1041                        indices    = xNew<int>(numindices);
     1042                        indices[0*2 + 0] = 0; indices[0*2 + 1] = 3;
     1043                        indices[1*2 + 0] = 1; indices[1*2 + 1] = 4;
     1044                        indices[2*2 + 0] = 2; indices[2*2 + 1] = 5;
     1045                        break;
     1046                case P1bubbleEnum: case P1bubblecondensedEnum:
     1047                        numindices = 3*2;
     1048                        indices    = xNew<int>(numindices);
     1049                        indices[0*2 + 0] = 0; indices[0*2 + 1] = 3;
     1050                        indices[1*2 + 0] = 1; indices[1*2 + 1] = 4;
     1051                        indices[2*2 + 0] = 2; indices[2*2 + 1] = 5;
     1052                        break;
     1053                case P2xP1Enum:
     1054                        numindices = 6*2;
     1055                        indices    = xNew<int>(numindices);
     1056                        indices[0*2 + 0] = 0; indices[0*2 + 1] = 3;
     1057                        indices[1*2 + 0] = 1; indices[1*2 + 1] = 4;
     1058                        indices[2*2 + 0] = 2; indices[2*2 + 1] = 5;
     1059                        indices[3*2 + 0] = 6; indices[3*2 + 1] = 9;
     1060                        indices[4*2 + 0] = 7; indices[4*2 + 1] = 10;
     1061                        indices[5*2 + 0] = 8; indices[5*2 + 1] = 11;
     1062                        break;
     1063                case P1xP2Enum:
     1064                        numindices = 3*2;
     1065                        indices    = xNew<int>(numindices);
     1066                        indices[0*2 + 0] = 0; indices[0*2 + 1] = 6;
     1067                        indices[1*2 + 0] = 1; indices[1*2 + 1] = 7;
     1068                        indices[2*2 + 0] = 2; indices[2*2 + 1] = 8;
     1069                        break;
     1070                case P1xP3Enum:
     1071                        numindices = 3*2;
     1072                        indices    = xNew<int>(numindices);
     1073                        indices[0*2 + 0] = 0; indices[0*2 + 1] = 6;
     1074                        indices[1*2 + 0] = 1; indices[1*2 + 1] = 7;
     1075                        indices[2*2 + 0] = 2; indices[2*2 + 1] = 8;
     1076                        break;
     1077                case P2Enum:
     1078                        numindices = 6*2;
     1079                        indices    = xNew<int>(numindices);
     1080                        indices[0*2 + 0] = 0;  indices[0*2 + 1] = 6;
     1081                        indices[1*2 + 0] = 1;  indices[1*2 + 1] = 7;
     1082                        indices[2*2 + 0] = 2;  indices[2*2 + 1] = 8;
     1083                        indices[3*2 + 0] = 9;  indices[3*2 + 1] = 15;
     1084                        indices[4*2 + 0] = 10; indices[4*2 + 1] = 16;
     1085                        indices[5*2 + 0] = 11; indices[5*2 + 1] = 17;
     1086                        break;
     1087                case P2bubbleEnum:
     1088                        numindices = 6*2;
     1089                        indices    = xNew<int>(numindices);
     1090                        indices[0*2 + 0] = 0;  indices[0*2 + 1] = 6;
     1091                        indices[1*2 + 0] = 1;  indices[1*2 + 1] = 7;
     1092                        indices[2*2 + 0] = 2;  indices[2*2 + 1] = 8;
     1093                        indices[3*2 + 0] = 9;  indices[3*2 + 1] = 15;
     1094                        indices[4*2 + 0] = 10; indices[4*2 + 1] = 16;
     1095                        indices[5*2 + 0] = 11; indices[5*2 + 1] = 17;
     1096                        break;
     1097                case P2xP4Enum:
     1098                        numindices = 6*2;
     1099                        indices    = xNew<int>(numindices);
     1100                        indices[0*2 + 0] = 0;  indices[0*2 + 1] = 6;
     1101                        indices[1*2 + 0] = 1;  indices[1*2 + 1] = 7;
     1102                        indices[2*2 + 0] = 2;  indices[2*2 + 1] = 8;
     1103                        indices[3*2 + 0] = 9;  indices[3*2 + 1] = 15;
     1104                        indices[4*2 + 0] = 10; indices[4*2 + 1] = 16;
     1105                        indices[5*2 + 0] = 11; indices[5*2 + 1] = 17;
     1106                        break;
     1107                default:
     1108                        _error_("Element type "<<EnumToStringx(finiteelement)<<" not supported yet");
     1109        }
     1110
     1111        /*Assign output pointer*/
     1112        *pnumseg   = numindices/2;
     1113        *pindices  = indices;
     1114}
     1115/*}}}*/
    10321116int  PentaRef::NumberofNodes(int finiteelement){/*{{{*/
    10331117
  • issm/trunk-jpl/src/c/classes/Elements/PentaRef.h

    r20810 r21714  
    2828                void GetSegmentJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss);
    2929                void GetTriaJacobianDeterminant(IssmDouble*  Jdet, IssmDouble* xyz_list,Gauss* gauss);
     30                void VerticalSegmentIndicesBase(int** pindices,int* pnumseg,int finiteelement);
    3031                void Marshall(char** pmarshalled_data,int* pmarshalled_data_size, int marshall_direction){ /*do nothing */};
    3132                int  NumberofNodes(int finiteelement);
  • issm/trunk-jpl/src/c/classes/Elements/Seg.h

    r21620 r21714  
    161161                int         VertexConnectivity(int vertexindex){_error_("not implemented yet");};
    162162                void        VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");};
     163                void        VerticalSegmentIndicesBase(int** pindices,int* pnumseg){_error_("not implemented yet");};
    163164                void        ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input){_error_("not implemented yet");};
    164165                void        ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum){_error_("not implemented");};
  • issm/trunk-jpl/src/c/classes/Elements/Tetra.h

    r21620 r21714  
    170170                int         VertexConnectivity(int vertexindex){_error_("not implemented yet");};
    171171                void        VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");};
     172                void        VerticalSegmentIndicesBase(int** pindices,int* pnumseg){_error_("not implemented yet");};
    172173                void        ViscousHeating(IssmDouble* pphi,IssmDouble* xyz_list,Gauss* gauss,Input* vx_input,Input* vy_input,Input* vz_input);
    173174                void        ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum);
  • issm/trunk-jpl/src/c/classes/Elements/Tria.h

    r21620 r21714  
    139139                int         VertexConnectivity(int vertexindex);
    140140                void        VerticalSegmentIndices(int** pindices,int* pnumseg){_error_("not implemented yet");};
     141                void        VerticalSegmentIndicesBase(int** pindices,int* pnumseg){_error_("not implemented yet");};
    141142                void                    WriteLevelsetSegment(DataSet* segments);
    142143                void        ZeroLevelsetCoordinates(IssmDouble** pxyz_zero,IssmDouble* xyz_list,int levelsetenum);
Note: See TracChangeset for help on using the changeset viewer.