Changeset 17692


Ignore:
Timestamp:
04/09/14 13:15:54 (11 years ago)
Author:
Mathieu Morlighem
Message:

CHG: starting to change iomodel->domaintype to iomodel->meshelementtype when necessary (useful for Tetras)

Location:
issm/trunk-jpl/src/c
Files:
16 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/analyses/DepthAverageAnalysis.cpp

    r17686 r17692  
    5959                case Mesh2DverticalEnum: dim = 2; break;
    6060                case Mesh3DEnum:         dim = 3; break;
    61                 case Mesh3DtetrasEnum:    dim = 3; break;
    6261                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    6362        }
  • issm/trunk-jpl/src/c/analyses/L2ProjectionBaseAnalysis.cpp

    r17686 r17692  
    3636void L2ProjectionBaseAnalysis::CreateNodes(Nodes* nodes,IoModel* iomodel){/*{{{*/
    3737
    38         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum){
     38        if(iomodel->domaintype==Mesh3DEnum){
    3939                iomodel->FetchData(2,MeshVertexonbaseEnum,MeshVertexonsurfaceEnum);
    4040        }
     
    8282                        break;
    8383                case Mesh3DEnum:
    84                         if(!element->IsOnBase()) return NULL;
    85                         basalelement = element->SpawnBasalElement();
    86                         break;
    87                 case Mesh3DtetrasEnum:
    8884                        if(!element->IsOnBase()) return NULL;
    8985                        basalelement = element->SpawnBasalElement();
     
    145141                        break;
    146142                case Mesh3DEnum:
    147                         if(!element->IsOnBase()) return NULL;
    148                         basalelement = element->SpawnBasalElement();
    149                         break;
    150                 case Mesh3DtetrasEnum:
    151143                        if(!element->IsOnBase()) return NULL;
    152144                        basalelement = element->SpawnBasalElement();
     
    212204void L2ProjectionBaseAnalysis::InputUpdateFromSolution(IssmDouble* solution,Element* element){/*{{{*/
    213205
    214         int inputenum,domaintype;
     206        int inputenum,domaintype,elementtype;
    215207
    216208        element->FindParam(&inputenum,InputToL2ProjectEnum);
    217209        element->FindParam(&domaintype,DomainTypeEnum);
     210        element->FindParam(&elementtype,MeshElementtypeEnum);
    218211        switch(domaintype){
    219212                case Mesh2DhorizontalEnum:
     
    221214                        break;
    222215                case Mesh2DverticalEnum:
    223                 case Mesh3DtetrasEnum:
    224216                        element->InputUpdateFromSolutionOneDof(solution,inputenum);
    225217                        break;
    226218                case Mesh3DEnum:
    227                         element->InputUpdateFromSolutionOneDofCollapsed(solution,inputenum);
     219                        if(elementtype==TetraEnum)
     220                         element->InputUpdateFromSolutionOneDof(solution,inputenum);
     221                        else
     222                         element->InputUpdateFromSolutionOneDofCollapsed(solution,inputenum);
    228223                        break;
    229224                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
  • issm/trunk-jpl/src/c/analyses/LsfReinitializationAnalysis.cpp

    r17686 r17692  
    261261                case Mesh2DverticalEnum:   dim = 2; dofpernode = 1; break;
    262262                case Mesh3DEnum:           dim = 3; dofpernode = 1; break;
    263                 case Mesh3DtetrasEnum:     dim = 3; dofpernode = 1; break;
    264263                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    265264        }
  • issm/trunk-jpl/src/c/analyses/StressbalanceAnalysis.cpp

    r17686 r17692  
    2020                         switch(domaintype){
    2121                                 case Mesh3DEnum:           numdofs=2; break;
    22                                  case Mesh3DtetrasEnum:     numdofs=2; break;
    2322                                 case Mesh2DhorizontalEnum: numdofs=2; break;
    2423                                 case Mesh2DverticalEnum:   numdofs=1; break;
     
    3029                         switch(domaintype){
    3130                                 case Mesh3DEnum:         numdofs=2; break;
    32                                  case Mesh3DtetrasEnum:   numdofs=2; break;
    3331                                 case Mesh2DverticalEnum: numdofs=1; break;
    3432                                 default: _error_("mesh type not supported yet");
     
    3937                         switch(domaintype){
    4038                                 case Mesh3DEnum:         numdofs=3; break;
    41                                  case Mesh3DtetrasEnum:   numdofs=3; break;
    4239                                 case Mesh2DverticalEnum: numdofs=2; break;
    4340                                 default: _error_("mesh type not supported yet");
     
    4845                         switch(domaintype){
    4946                                 case Mesh3DEnum:         numdofs=4; break;
    50                                  case Mesh3DtetrasEnum:   numdofs=4; break;
    5147                                 case Mesh2DverticalEnum: numdofs=3; break;
    5248                                 default: _error_("mesh type not supported yet");
     
    227223                if(dakota_analysis)elements->InputDuplicate(VzEnum,QmuVzEnum);
    228224        }
    229         if(iomodel->domaintype==Mesh3DtetrasEnum){
    230                 iomodel->FetchDataToInput(elements,MeshVertexonbaseEnum);
    231                 iomodel->FetchDataToInput(elements,MeshVertexonsurfaceEnum);
    232                 iomodel->FetchDataToInput(elements,BasalforcingsMeltingRateEnum);
    233                 iomodel->FetchDataToInput(elements,LoadingforceZEnum);
    234                 iomodel->FetchDataToInput(elements,VzEnum,0.);
    235                 if(dakota_analysis)elements->InputDuplicate(VzEnum,QmuVzEnum);
    236         }
    237225        if(iomodel->domaintype==Mesh2DverticalEnum){
    238226                iomodel->FetchDataToInput(elements,MeshVertexonsurfaceEnum);
     
    431419                        iomodel->FetchData(&nodeonbase,NULL,NULL,MeshVertexonbaseEnum);
    432420                        iomodel->FetchData(&groundedice_ls,NULL,NULL,MaskGroundediceLevelsetEnum);
    433                         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum){
     421                        if(iomodel->domaintype==Mesh3DEnum){
    434422                                iomodel->FetchData(&spcvz,&Mz,&Nz,StressbalanceSpcvzEnum);
    435423                        }
     
    440428                                _error_("not supported yet");
    441429                        }
    442                         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum){
     430                        if(iomodel->domaintype==Mesh3DEnum){
    443431                                IoModelToConstraintsx(constraints,iomodel,StressbalanceSpcvxEnum,StressbalanceAnalysisEnum,finiteelement,0);
    444432                                IoModelToConstraintsx(constraints,iomodel,StressbalanceSpcvyEnum,StressbalanceAnalysisEnum,finiteelement,1);
     
    520508        iomodel->FetchData(&spcvz,&Mz,&Nz,StressbalanceSpcvzEnum);
    521509        iomodel->FetchData(&nodeonSSA,NULL,NULL,FlowequationBorderSSAEnum);
    522         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum)iomodel->FetchData(&nodeonHO,NULL,NULL,FlowequationBorderHOEnum);
    523         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum)iomodel->FetchData(&nodeonFS,NULL,NULL,FlowequationBorderFSEnum);
    524         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum)iomodel->FetchData(&nodeonbase,NULL,NULL,MeshVertexonbaseEnum);
    525         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum)iomodel->FetchData(&groundedice_ls,NULL,NULL,MaskGroundediceLevelsetEnum);
     510        if(iomodel->domaintype==Mesh3DEnum)iomodel->FetchData(&nodeonHO,NULL,NULL,FlowequationBorderHOEnum);
     511        if(iomodel->domaintype==Mesh3DEnum)iomodel->FetchData(&nodeonFS,NULL,NULL,FlowequationBorderFSEnum);
     512        if(iomodel->domaintype==Mesh3DEnum)iomodel->FetchData(&nodeonbase,NULL,NULL,MeshVertexonbaseEnum);
     513        if(iomodel->domaintype==Mesh3DEnum)iomodel->FetchData(&groundedice_ls,NULL,NULL,MaskGroundediceLevelsetEnum);
    526514        iomodel->FetchData(&vertices_type,NULL,NULL,FlowequationVertexEquationEnum);
    527515        iomodel->FetchData(&surface,NULL,NULL,SurfaceEnum);
     
    750738        iomodel->DeleteData(spcvz,StressbalanceSpcvzEnum);
    751739        iomodel->DeleteData(nodeonSSA,FlowequationBorderSSAEnum);
    752         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum)iomodel->DeleteData(nodeonHO,FlowequationBorderHOEnum);
    753         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum)iomodel->DeleteData(nodeonFS,FlowequationBorderFSEnum);
    754         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum)iomodel->DeleteData(nodeonbase,MeshVertexonbaseEnum);
    755         if(iomodel->domaintype==Mesh3DEnum || iomodel->domaintype==Mesh3DtetrasEnum)iomodel->DeleteData(groundedice_ls,MaskGroundediceLevelsetEnum);
     740        if(iomodel->domaintype==Mesh3DEnum)iomodel->DeleteData(nodeonHO,FlowequationBorderHOEnum);
     741        if(iomodel->domaintype==Mesh3DEnum)iomodel->DeleteData(nodeonFS,FlowequationBorderFSEnum);
     742        if(iomodel->domaintype==Mesh3DEnum)iomodel->DeleteData(nodeonbase,MeshVertexonbaseEnum);
     743        if(iomodel->domaintype==Mesh3DEnum)iomodel->DeleteData(groundedice_ls,MaskGroundediceLevelsetEnum);
    756744        iomodel->DeleteData(vertices_type,FlowequationVertexEquationEnum);
    757745        iomodel->DeleteData(surface,SurfaceEnum);
     
    998986                case Mesh2DverticalEnum:   dim = 2; dofpernode = 1; break;
    999987                case Mesh3DEnum:           dim = 3; dofpernode = 2; break;
    1000                 case Mesh3DtetrasEnum:     dim = 3; dofpernode = 2; break;
    1001988                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    1002989        }
     
    12161203                case Mesh2DhorizontalEnum: dim = 2;break;
    12171204                case Mesh3DEnum:           dim = 2;break;
    1218                 case Mesh3DtetrasEnum:     dim = 2;break;
    12191205                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    12201206        }
     
    13021288                case Mesh2DhorizontalEnum: dim = 2; bsize = 3; break;
    13031289                case Mesh3DEnum:           dim = 2; bsize = 3; break;
    1304                 case Mesh3DtetrasEnum:     dim = 2; bsize = 3; break;
    13051290                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    13061291        }
     
    14151400                case Mesh2DhorizontalEnum: dim = 2;break;
    14161401                case Mesh3DEnum:           dim = 2;break;
    1417                 case Mesh3DtetrasEnum:     dim = 2;break;
    14181402                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    14191403        }
     
    14811465                case Mesh2DhorizontalEnum: dim = 2;break;
    14821466                case Mesh3DEnum:           dim = 2;break;
    1483                 case Mesh3DtetrasEnum:     dim = 2;break;
    14841467                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    14851468        }
     
    21802163                case Mesh2DverticalEnum: dim = 2; bsize = 2; break;
    21812164                case Mesh3DEnum:         dim = 3; bsize = 5; break;
    2182                 case Mesh3DtetrasEnum:   dim = 3; bsize = 5; break;
    21832165                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    21842166        }
     
    22602242                case Mesh2DverticalEnum: dim = 2; break;
    22612243                case Mesh3DEnum:         dim = 3; break;
    2262                 case Mesh3DtetrasEnum:   dim = 3; break;
    22632244                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    22642245        }
     
    23462327                case Mesh2DverticalEnum: dim = 2; break;
    23472328                case Mesh3DEnum:         dim = 3; break;
    2348                 case Mesh3DtetrasEnum:   dim = 3; break;
    23492329                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    23502330        }
     
    24232403                case Mesh2DverticalEnum: dim = 2; break;
    24242404                case Mesh3DEnum:         dim = 3; break;
    2425                 case Mesh3DtetrasEnum:   dim = 3; break;
    24262405                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    24272406        }
     
    24852464                case Mesh2DverticalEnum: dim = 2; break;
    24862465                case Mesh3DEnum:         dim = 3; break;
    2487                 case Mesh3DtetrasEnum:   dim = 3; break;
    24882466                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    24892467        }
     
    26842662                case Mesh2DverticalEnum: dim = 2; break;
    26852663                case Mesh3DEnum:         dim = 3; break;
    2686                 case Mesh3DtetrasEnum:   dim = 3; break;
    26872664                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    26882665        }
     
    27722749                case Mesh2DverticalEnum: dim = 2; break;
    27732750                case Mesh3DEnum:         dim = 3; break;
    2774                 case Mesh3DtetrasEnum:   dim = 3; break;
    27752751                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    27762752        }
     
    29142890                case Mesh2DverticalEnum: dim = 2; epssize = 3; break;
    29152891                case Mesh3DEnum:         dim = 3; epssize = 6; break;
    2916                 case Mesh3DtetrasEnum:   dim = 3; epssize = 6; break;
    29172892                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    29182893        }
     
    29862961                case Mesh2DverticalEnum: dim = 2; epssize = 3; break;
    29872962                case Mesh3DEnum:         dim = 3; epssize = 6; break;
    2988                 case Mesh3DtetrasEnum:   dim = 3; epssize = 6; break;
    29892963                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    29902964        }
     
    30723046                case Mesh2DverticalEnum: dim = 2;break;
    30733047                case Mesh3DEnum:         dim = 3;break;
    3074                 case Mesh3DtetrasEnum:   dim = 3;break;
    30753048                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    30763049        }
     
    31433116                case Mesh2DverticalEnum: dim = 2;break;
    31443117                case Mesh3DEnum:         dim = 3;break;
    3145                 case Mesh3DtetrasEnum:   dim = 3;break;
    31463118                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    31473119        }
     
    32073179                case Mesh2DverticalEnum: dim = 2; break;
    32083180                case Mesh3DEnum:         dim = 3; break;
    3209                 case Mesh3DtetrasEnum:   dim = 3; break;
    32103181                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    32113182        }
     
    32933264                case Mesh2DverticalEnum: dim = 2;break;
    32943265                case Mesh3DEnum:         dim = 3;break;
    3295                 case Mesh3DtetrasEnum:   dim = 3;break;
    32963266                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    32973267        }
     
    34083378                case Mesh2DverticalEnum: dim = 2; break;
    34093379                case Mesh3DEnum:         dim = 3; break;
    3410                 case Mesh3DtetrasEnum:   dim = 3; break;
    34113380                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    34123381        }
     
    34863455                case Mesh2DverticalEnum: dim = 2; tausize = 3; break;
    34873456                case Mesh3DEnum:         dim = 3; tausize = 6; break;
    3488                 case Mesh3DtetrasEnum:   dim = 3; tausize = 6; break;
    34893457                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    34903458        }
     
    36633631                case Mesh2DverticalEnum: dim = 2; break;
    36643632                case Mesh3DEnum:         dim = 3; break;
    3665                 case Mesh3DtetrasEnum:   dim = 3; break;
    36663633                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    36673634        }
     
    37403707                case Mesh2DverticalEnum: dim = 2; break;
    37413708                case Mesh3DEnum:         dim = 3; break;
    3742                 case Mesh3DtetrasEnum:   dim = 3; break;
    37433709                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    37443710        }
     
    40934059                case Mesh2DverticalEnum: dim = 2; break;
    40944060                case Mesh3DEnum:         dim = 3; break;
    4095                 case Mesh3DtetrasEnum:   dim = 3; break;
    40964061                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    40974062        }
     
    41604125                case Mesh2DverticalEnum: dim = 2; break;
    41614126                case Mesh3DEnum:         dim = 3; break;
    4162                 case Mesh3DtetrasEnum:   dim = 3; break;
    41634127                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    41644128        }
     
    42464210                case Mesh2DverticalEnum: dim = 2; break;
    42474211                case Mesh3DEnum:         dim = 3; break;
    4248                 case Mesh3DtetrasEnum:   dim = 3; break;
    42494212                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    42504213        }
     
    43444307                case Mesh2DverticalEnum: dim = 2; tausize = 3; break;
    43454308                case Mesh3DEnum:         dim = 3; tausize = 6; break;
    4346                 case Mesh3DtetrasEnum:   dim = 3; tausize = 6; break;
    43474309                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    43484310        }
     
    45584520                case Mesh2DverticalEnum: dim = 2; tausize = 3; break;
    45594521                case Mesh3DEnum:         dim = 3; tausize = 6; break;
    4560                 case Mesh3DtetrasEnum:   dim = 3; tausize = 6; break;
    45614522                default: _error_("mesh "<<EnumToStringx(domaintype)<<" not supported yet");
    45624523        }
  • issm/trunk-jpl/src/c/classes/IoModel.cpp

    r17686 r17692  
    3131
    3232        this->domaintype=-1;
     33        this->domaindim=-1;
     34        this->meshelementtype=-1;
    3335        this->numberofvertices=-1;
    3436        this->numberofelements=-1;
     
    7678
    7779        FetchData(&this->domaintype,DomainTypeEnum);
     80        FetchData(&this->domaindim,DomainDimensionEnum);
     81        FetchData(&this->meshelementtype,MeshElementtypeEnum);
    7882        FetchData(&this->numberofvertices,MeshNumberofverticesEnum);
    7983        FetchData(&this->numberofelements,MeshNumberofelementsEnum);
  • issm/trunk-jpl/src/c/classes/IoModel.h

    r17686 r17692  
    3232                /*Mesh properties and connectivity tables*/
    3333                int  domaintype;
     34                int  domaindim;
     35                int  meshelementtype;
    3436                int  numberofvertices;
    3537                int  numberofelements;
  • issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp

    r17686 r17692  
    5151                        break;
    5252                case P1bubbleEnum:
    53                         switch(iomodel->domaintype){
    54                                 case Mesh2DhorizontalEnum: elementnbv = 3; break;
    55                                 case Mesh2DverticalEnum:   elementnbv = 3; break;
    56                                 case Mesh3DtetrasEnum:     elementnbv = 4; break;
    57                                 case Mesh3DEnum:           elementnbv = 6; break;
     53                        switch(iomodel->meshelementtype){
     54                                case TriaEnum:  elementnbv = 3; break;
     55                                case TetraEnum: elementnbv = 4; break;
     56                                case PentaEnum: elementnbv = 6; break;
    5857                                default: _error_("mesh type not supported yet");
    5958                        }
     
    7372                case P2Enum:
    7473                        EdgesPartitioning(&my_edges,iomodel);
    75               if(iomodel->domaintype==Mesh3DEnum){
     74              if(iomodel->meshelementtype==PentaEnum){
    7675                                FacesPartitioning(&my_faces,iomodel);
    7776                        }
     
    118117                                        }
    119118                                }
    120                                 if(iomodel->domaintype==Mesh3DEnum){
     119                                if(iomodel->meshelementtype==PentaEnum){
    121120                                        for(i=0;i<iomodel->numberoffaces;i++){
    122121                                                if(iomodel->faces[i*6+5]==2){/*Vertical quads*/
  • issm/trunk-jpl/src/c/modules/MeshPartitionx/MeshPartitionx.h

    r17686 r17692  
    1111template <class doubletype>
    1212int MeshPartitionx(int** pepart, int** pnpart, int numberofelements,int numberofnodes,int* elements,
    13                 int numberofelements2d,int numberofnodes2d,doubletype* elements2d,int numlayers,int elements_width, int domaintype,int num_procs){
     13                int numberofelements2d,int numberofnodes2d,doubletype* elements2d,int numlayers,int elements_width, int meshelementtype,int num_procs){
    1414
    1515        int noerr=1;
     
    3131        int  edgecut=1;
    3232
    33         switch(domaintype){
    34                 case Mesh2DhorizontalEnum:
    35                 case Mesh2DverticalEnum:
    36                 case Mesh3DtetrasEnum:
     33        switch(meshelementtype){
     34                case TriaEnum:
     35                case TetraEnum:
    3736                        epart=xNew<int>(numberofelements);
    3837                        npart=xNew<int>(numberofnodes);
     
    5958                        else _error_("At least one processor is required");
    6059                        break;
    61                 case Mesh3DEnum:
     60                case PentaEnum:
    6261                        /*We have a 3d mesh, made of a regularly extruded 2d mesh. We first partition the 2d mesh, then we extrude the partition: */
    6362
     
    111110                        break;
    112111                default:
    113                         _error_("mesh type "<<EnumToStringx(domaintype)<<" not supported yet");
     112                        _error_("mesh type "<<EnumToStringx(meshelementtype)<<" not supported yet");
    114113        }
    115114
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateEdges.cpp

    r17686 r17692  
    2323
    2424        /*Mesh dependent variables*/
    25         if(iomodel->domaintype==Mesh2DhorizontalEnum){
    26                 elementnbv = 3;
    27                 elementnbe = 3;
    28                 elementedges         = xNew<int>(elementnbe*2);
    29                 elementedges_markers = xNew<int>(elementnbe);
    30                 elementedges[2*0+0] = 1; elementedges[2*0+1] = 2; elementedges_markers[0] = 1;
    31                 elementedges[2*1+0] = 2; elementedges[2*1+1] = 0; elementedges_markers[1] = 1;
    32                 elementedges[2*2+0] = 0; elementedges[2*2+1] = 1; elementedges_markers[2] = 1;
    33         }
    34         else if(iomodel->domaintype==Mesh2DverticalEnum){
    35                 elementnbv = 3;
    36                 elementnbe = 3;
    37                 elementedges         = xNew<int>(elementnbe*2);
    38                 elementedges_markers = xNew<int>(elementnbe);
    39                 elementedges[2*0+0] = 1; elementedges[2*0+1] = 2; elementedges_markers[0] = 1;
    40                 elementedges[2*1+0] = 2; elementedges[2*1+1] = 0; elementedges_markers[1] = 1;
    41                 elementedges[2*2+0] = 0; elementedges[2*2+1] = 1; elementedges_markers[2] = 1;
    42         }
    43         else if(iomodel->domaintype==Mesh3DtetrasEnum){
    44                 elementnbv = 4;
    45                 elementnbe = 6;
    46                 elementedges         = xNew<int>(elementnbe*2);
    47                 elementedges_markers = xNew<int>(elementnbe);
    48                 elementedges[2*0+0] = 1; elementedges[2*0+1] = 2; elementedges_markers[0] = 1;
    49                 elementedges[2*1+0] = 2; elementedges[2*1+1] = 0; elementedges_markers[1] = 1;
    50                 elementedges[2*2+0] = 0; elementedges[2*2+1] = 1; elementedges_markers[2] = 1;
    51                 elementedges[2*3+0] = 0; elementedges[2*3+1] = 3; elementedges_markers[3] = 1;
    52                 elementedges[2*4+0] = 1; elementedges[2*4+1] = 3; elementedges_markers[4] = 1;
    53                 elementedges[2*5+0] = 2; elementedges[2*5+1] = 3; elementedges_markers[5] = 1;
    54         }
    55         else if(iomodel->domaintype==Mesh3DEnum){
    56                 elementnbv = 6;
    57                 elementnbe = 9;
    58                 elementedges         = xNew<int>(elementnbe*2);
    59                 elementedges_markers = xNew<int>(elementnbe);
    60                 elementedges[2*0+0] = 0; elementedges[2*0+1] = 3; elementedges_markers[0] = 2;
    61                 elementedges[2*1+0] = 1; elementedges[2*1+1] = 4; elementedges_markers[1] = 2;
    62                 elementedges[2*2+0] = 2; elementedges[2*2+1] = 5; elementedges_markers[2] = 2;
    63                 elementedges[2*3+0] = 1; elementedges[2*3+1] = 2; elementedges_markers[3] = 1;
    64                 elementedges[2*4+0] = 2; elementedges[2*4+1] = 0; elementedges_markers[4] = 1;
    65                 elementedges[2*5+0] = 0; elementedges[2*5+1] = 1; elementedges_markers[5] = 1;
    66                 elementedges[2*6+0] = 4; elementedges[2*6+1] = 5; elementedges_markers[6] = 1;
    67                 elementedges[2*7+0] = 5; elementedges[2*7+1] = 3; elementedges_markers[7] = 1;
    68                 elementedges[2*8+0] = 3; elementedges[2*8+1] = 4; elementedges_markers[8] = 1;
    69         }
    70         else{
     25        switch(iomodel->meshelementtype){
     26                case TriaEnum:
     27                        elementnbv = 3;
     28                        elementnbe = 3;
     29                        elementedges         = xNew<int>(elementnbe*2);
     30                        elementedges_markers = xNew<int>(elementnbe);
     31                        elementedges[2*0+0] = 1; elementedges[2*0+1] = 2; elementedges_markers[0] = 1;
     32                        elementedges[2*1+0] = 2; elementedges[2*1+1] = 0; elementedges_markers[1] = 1;
     33                        elementedges[2*2+0] = 0; elementedges[2*2+1] = 1; elementedges_markers[2] = 1;
     34                        break;
     35                case TetraEnum:
     36                        elementnbv = 4;
     37                        elementnbe = 6;
     38                        elementedges         = xNew<int>(elementnbe*2);
     39                        elementedges_markers = xNew<int>(elementnbe);
     40                        elementedges[2*0+0] = 1; elementedges[2*0+1] = 2; elementedges_markers[0] = 1;
     41                        elementedges[2*1+0] = 2; elementedges[2*1+1] = 0; elementedges_markers[1] = 1;
     42                        elementedges[2*2+0] = 0; elementedges[2*2+1] = 1; elementedges_markers[2] = 1;
     43                        elementedges[2*3+0] = 0; elementedges[2*3+1] = 3; elementedges_markers[3] = 1;
     44                        elementedges[2*4+0] = 1; elementedges[2*4+1] = 3; elementedges_markers[4] = 1;
     45                        elementedges[2*5+0] = 2; elementedges[2*5+1] = 3; elementedges_markers[5] = 1;
     46                        break;
     47                case PentaEnum:
     48                        elementnbv = 6;
     49                        elementnbe = 9;
     50                        elementedges         = xNew<int>(elementnbe*2);
     51                        elementedges_markers = xNew<int>(elementnbe);
     52                        elementedges[2*0+0] = 0; elementedges[2*0+1] = 3; elementedges_markers[0] = 2;
     53                        elementedges[2*1+0] = 1; elementedges[2*1+1] = 4; elementedges_markers[1] = 2;
     54                        elementedges[2*2+0] = 2; elementedges[2*2+1] = 5; elementedges_markers[2] = 2;
     55                        elementedges[2*3+0] = 1; elementedges[2*3+1] = 2; elementedges_markers[3] = 1;
     56                        elementedges[2*4+0] = 2; elementedges[2*4+1] = 0; elementedges_markers[4] = 1;
     57                        elementedges[2*5+0] = 0; elementedges[2*5+1] = 1; elementedges_markers[5] = 1;
     58                        elementedges[2*6+0] = 4; elementedges[2*6+1] = 5; elementedges_markers[6] = 1;
     59                        elementedges[2*7+0] = 5; elementedges[2*7+1] = 3; elementedges_markers[7] = 1;
     60                        elementedges[2*8+0] = 3; elementedges[2*8+1] = 4; elementedges_markers[8] = 1;
     61                        break;
     62                default:
    7163                _error_("mesh dimension not supported yet");
    7264        }
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateElementsVerticesAndMaterials.cpp

    r17686 r17692  
    2626        /*Create elements*/
    2727        if(control_analysis)iomodel->FetchData(3,InversionControlParametersEnum,InversionMinParametersEnum,InversionMaxParametersEnum);
    28         switch(iomodel->domaintype){
    29                 case Mesh2DhorizontalEnum:
     28        switch(iomodel->meshelementtype){
     29                case TriaEnum:
    3030                        for(i=0;i<iomodel->numberofelements;i++){
    3131                                if(iomodel->my_elements[i]) elements->AddObject(new Tria(i+1,i,i,iomodel,nummodels));
    3232                        }
    3333                        break;
    34                 case Mesh2DverticalEnum:
    35                         for(i=0;i<iomodel->numberofelements;i++){
    36                                 if(iomodel->my_elements[i]) elements->AddObject(new Tria(i+1,i,i,iomodel,nummodels));
    37                         }
    38                         break;
    39                 case Mesh3DtetrasEnum:
     34                case TetraEnum:
    4035                        for(i=0;i<iomodel->numberofelements;i++){
    4136                                if(iomodel->my_elements[i]) elements->AddObject(new Tetra(i+1,i,i,iomodel,nummodels));
    4237                        }
    4338                        break;
    44                 case Mesh3DEnum:
     39                case PentaEnum:
    4540                        iomodel->FetchData(2,MeshUpperelementsEnum,MeshLowerelementsEnum);
    4641                        for(i=0;i<iomodel->numberofelements;i++){
     
    5954                        iomodel->FetchDataToInput(elements,DamageDEnum);
    6055                        for (i=0;i<iomodel->numberofelements;i++) if(iomodel->my_elements[i]) materials->AddObject(new Matice(i+1,i,iomodel));
    61                         switch(iomodel->domaintype){
    62                                 case Mesh2DhorizontalEnum: case Mesh2DverticalEnum:
     56                        switch(iomodel->domaindim){
     57                                case 2:
    6358                                        elements->InputDuplicate(MaterialsRheologyBEnum,MaterialsRheologyBbarEnum);
    6459                                        elements->InputDuplicate(DamageDEnum,DamageDbarEnum);
    6560                                        if(dakota_analysis) elements->InputDuplicate(MaterialsRheologyBbarEnum,QmuMaterialsRheologyBEnum);
    6661                                        break;
    67                                 case Mesh3DEnum: case Mesh3DtetrasEnum:
     62                                case 3:
    6863                                        if(dakota_analysis) elements->InputDuplicate(MaterialsRheologyBEnum,QmuMaterialsRheologyBEnum);
    6964                                        break;
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateFaces.cpp

    r17686 r17692  
    144144
    145145        /*Mesh specific face indexing per element*/
    146         if(iomodel->domaintype==Mesh3DEnum){
     146        if(iomodel->meshelementtype==PentaEnum){
    147147                elementnbv = 6; /*Number of vertices per element*/
    148148                elementnbf = 5; /*Number of faces per element*/
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp

    r17686 r17692  
    144144                        }
    145145                        id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
    146               if(iomodel->domaintype==Mesh3DEnum){
     146              if(iomodel->meshelementtype==PentaEnum){
    147147                                FacesPartitioning(&my_faces,iomodel);
    148148                                for(i=0;i<iomodel->numberoffaces;i++){
     
    309309                        }
    310310                        id0 = id0+iomodel->numberofvertices+iomodel->numberofedges;
    311               if(iomodel->domaintype==Mesh3DEnum){
     311              if(iomodel->meshelementtype==PentaEnum){
    312312                                FacesPartitioning(&my_faces,iomodel);
    313313                                for(i=0;i<iomodel->numberoffaces;i++){
     
    328328
    329329                        /*P1 pressure*/
    330               if(iomodel->domaintype==Mesh3DEnum){
     330              if(iomodel->meshelementtype==PentaEnum){
    331331                                numberoffaces=iomodel->numberoffaces;
    332332                        }
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNumberNodeToElementConnectivity.cpp

    r17686 r17692  
    3636
    3737        /*Get element width*/
    38         switch(iomodel->domaintype){
    39                 case Mesh2DhorizontalEnum: elementswidth=3; break;
    40                 case Mesh2DverticalEnum:   elementswidth=3; break;
    41                 case Mesh3DtetrasEnum:     elementswidth=4; break;
    42                 case Mesh3DEnum:           elementswidth=6; break;
     38        switch(iomodel->meshelementtype){
     39                case TriaEnum:  elementswidth=3; break;
     40                case TetraEnum: elementswidth=4; break;
     41                case PentaEnum: elementswidth=6; break;
    4342                default:                   _error_("mesh not supported yet");
    4443        }
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateParameters.cpp

    r17686 r17692  
    4242        /*Copy some constants from iomodel */
    4343        parameters->AddObject(iomodel->CopyConstantObject(DomainTypeEnum));
     44        parameters->AddObject(iomodel->CopyConstantObject(DomainDimensionEnum));
     45        parameters->AddObject(iomodel->CopyConstantObject(MeshElementtypeEnum));
    4446        parameters->AddObject(iomodel->CopyConstantObject(SettingsOutputFrequencyEnum));
    4547        parameters->AddObject(iomodel->CopyConstantObject(SteadystateReltolEnum));
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/EdgesPartitioning.cpp

    r17686 r17692  
    1818
    1919        /*Mesh dependent variables*/
    20         if(iomodel->domaintype==Mesh2DhorizontalEnum){
    21                 elementnbe = 3;
     20        switch(iomodel->meshelementtype){
     21                case TriaEnum:  elementnbe = 3; break;
     22                case TetraEnum: elementnbe = 6; break;
     23                case PentaEnum: elementnbe = 9; break;
     24                default: _error_("mesh dimension not supported yet");
    2225        }
    23         else if(iomodel->domaintype==Mesh2DverticalEnum){
    24                 elementnbe = 3;
    25         }
    26         else if(iomodel->domaintype==Mesh3DtetrasEnum){
    27                 elementnbe = 6;
    28         }
    29         else if(iomodel->domaintype==Mesh3DEnum){
    30                 elementnbe = 9;
    31         }
    32         else{
    33                 _error_("mesh dimension not supported yet");
    34         }
     26
    3527        /*output: */
    3628        bool* my_edges=xNewZeroInit<bool>(iomodel->numberofedges);
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/ElementsAndVerticesPartitioning.cpp

    r17686 r17692  
    5151        /*Number of vertices per elements, needed to correctly retrieve data: */
    5252        /*Determine parallel partitioning of elements: we use Metis for now. First load the data, then partition*/
    53         switch(iomodel->domaintype){
    54                 case Mesh2DhorizontalEnum:
     53        switch(iomodel->meshelementtype){
     54                case TriaEnum:
    5555                        elements_width=3;
    5656                        numberofelements2d = 0;
     
    5858                        numlayers          = 0;
    5959                        break;
    60                 case Mesh2DverticalEnum:
    61                         elements_width=3;
     60                case TetraEnum:
     61                        elements_width=4;
    6262                        numberofelements2d = 0;
    6363                        numberofvertices2d = 0;
    6464                        numlayers          = 0;
    6565                        break;
    66                 case Mesh3DtetrasEnum:
    67                         elements_width=4; //penta elements
    68                         numberofelements2d = 0;
    69                         numberofvertices2d = 0;
    70                         numlayers          = 0;
    71                         break;
    72                 case Mesh3DEnum:
    73                         elements_width=6; //penta elements
     66                case PentaEnum:
     67                        elements_width=6;
    7468                        iomodel->FetchData(&elements2d,NULL,NULL,MeshElements2dEnum);
    7569                        iomodel->Constant(&numberofelements2d,MeshNumberofelements2dEnum);
     
    8175        }
    8276
    83         MeshPartitionx(&epart,&npart,iomodel->numberofelements,iomodel->numberofvertices,iomodel->elements,numberofelements2d,numberofvertices2d,elements2d,numlayers,elements_width,iomodel->domaintype,num_procs);
     77        MeshPartitionx(&epart,&npart,iomodel->numberofelements,iomodel->numberofvertices,iomodel->elements,numberofelements2d,numberofvertices2d,elements2d,numlayers,elements_width,iomodel->meshelementtype,num_procs);
    8478
    8579        /*Free elements2d: */
Note: See TracChangeset for help on using the changeset viewer.