Changeset 15627


Ignore:
Timestamp:
07/25/13 16:46:08 (12 years ago)
Author:
Mathieu Morlighem
Message:

CHG: preparing P2xP1 3d to debug P2

Location:
issm/trunk-jpl/src
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • issm/trunk-jpl/src/c/classes/Elements/Penta.cpp

    r15625 r15627  
    31773177                        penta_node_ids[4]=iomodel->nodecounter+iomodel->elements[6*index+4];
    31783178                        penta_node_ids[5]=iomodel->nodecounter+iomodel->elements[6*index+5];
     3179                        break;
     3180                case P2xP1Enum:
     3181                        numnodes         = 12;
     3182                        penta_node_ids   = xNew<int>(numnodes);
     3183                        penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0];
     3184                        penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1];
     3185                        penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2];
     3186                        penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3];
     3187                        penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4];
     3188                        penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5];
     3189                        penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+3]+1;
     3190                        penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+4]+1;
     3191                        penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+5]+1;
     3192                        penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+6]+1;
     3193                        penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+7]+1;
     3194                        penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
    31793195                        break;
    31803196                case P2Enum:
     
    69756991        xDelete<IssmDouble>(Bprime);
    69766992        xDelete<IssmDouble>(B);
     6993        if(id==1) Ke->Echo();
    69776994        return Ke;
    69786995}
  • issm/trunk-jpl/src/c/classes/Elements/PentaRef.cpp

    r15621 r15627  
    16251625
    16261626        switch(this->element_type){
    1627                 case P1Enum:   return NUMNODESP1;
    1628                 case P2Enum:   return NUMNODESP2;
    1629                 case MINIEnum: return NUMNODESP1b;
     1627                case P1Enum:    return NUMNODESP1;
     1628                case P2Enum:    return NUMNODESP2;
     1629                case P2xP1Enum: return NUMNODESP2xP1;
     1630                case MINIEnum:  return NUMNODESP1b;
    16301631                default:       _error_("Element type "<<EnumToStringx(this->element_type)<<" not supported yet");
    16311632        }
  • issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp

    r15625 r15627  
    415415                        }
    416416                        break;
     417                case 12: //P2xP1 Lagrange element
     418                        switch(iv){
     419                                case 0: coord1=1.; coord2=0.; coord3=0.; coord4=-1.; break;
     420                                case 1: coord1=0.; coord2=1.; coord3=0.; coord4=-1.; break;
     421                                case 2: coord1=0.; coord2=0.; coord3=1.; coord4=-1.; break;
     422                                case 3: coord1=1.; coord2=0.; coord3=0.; coord4=+1.; break;
     423                                case 4: coord1=0.; coord2=1.; coord3=0.; coord4=+1.; break;
     424                                case 5: coord1=0.; coord2=0.; coord3=1.; coord4=+1.; break;
     425
     426                                case  6: coord1=0.; coord2=.5; coord3=.5; coord4=-1.;break;
     427                                case  7: coord1=.5; coord2=0.; coord3=.5; coord4=-1.;break;
     428                                case  8: coord1=.5; coord2=.5; coord3=0.; coord4=-1.;break;
     429                                case  9: coord1=0.; coord2=.5; coord3=.5; coord4=+1.;break;
     430                                case 10: coord1=.5; coord2=0.; coord3=.5; coord4=+1.;break;
     431                                case 11: coord1=.5; coord2=.5; coord3=0.; coord4=+1.;break;
     432                                default: _error_("node index should be in [0 5]");
     433                        }
     434                        break;
    417435                case 15: //P2 Lagrange element
    418436                        switch(iv){
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp

    r15611 r15627  
    4343                        break;
    4444
     45                case P2xP1Enum:
     46                        EdgesPartitioning(&my_edges,iomodel);
     47                        for(i=0;i<iomodel->numberofvertices;i++){
     48                                if(iomodel->my_vertices[i]){
     49                                        nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,i,iomodel,analysis,approximation));
     50                                }
     51                        }
     52                        int numberofvertices2d;
     53                        Node* node = NULL;
     54                        iomodel->Constant(&numberofvertices2d,MeshNumberofvertices2dEnum);
     55                        /*Create all P2 nodes anyway*/
     56                        for(i=0;i<iomodel->numberofedges;i++){
     57                                if(my_edges[i]){
     58                                        node = new Node(iomodel->nodecounter+iomodel->numberofvertices+i+1,iomodel->numberofvertices+i,0,iomodel,analysis,approximation);
     59                                        nodes->AddObject(node);
     60                                }
     61                        }
     62                        break;
     63
    4564                case P2Enum:
    4665                        EdgesPartitioning(&my_edges,iomodel);
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateConstraintsDiagnosticHoriz.cpp

    r15626 r15627  
    8585                        iomodel->Constant(&temp,FlowequationFeHOEnum);
    8686                        switch(temp){
    87                                 case 0 : finiteelement = P1Enum; break;
    88                                 case 1 : finiteelement = P2Enum; break;
     87                                case 0 : finiteelement = P1Enum;    break;
     88                                case 1 : finiteelement = P2Enum;    break;
     89                                case 2 : finiteelement = P2xP1Enum; break;
    8990                                default: _error_("finite element "<<temp<<" not supported");
    9091                        }
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/CreateNodesDiagnosticHoriz.cpp

    r15621 r15627  
    5151                        iomodel->Constant(&temp,FlowequationFeHOEnum);
    5252                        switch(temp){
    53                                 case 0 : finiteelement = P1Enum; break;
    54                                 case 1 : finiteelement = P2Enum; break;
     53                                case 0 : finiteelement = P1Enum;    break;
     54                                case 1 : finiteelement = P2Enum;    break;
     55                                case 2 : finiteelement = P2xP1Enum; break;
    5556                                default: _error_("finite element "<<temp<<" not supported");
    5657                        }
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/DiagnosticHoriz/UpdateElementsDiagnosticHoriz.cpp

    r15621 r15627  
    5656                        iomodel->Constant(&temp,FlowequationFeHOEnum);
    5757                        switch(temp){
    58                                 case 0 : finiteelement = P1Enum; break;
    59                                 case 1 : finiteelement = P2Enum; break;
     58                                case 0 : finiteelement = P1Enum;    break;
     59                                case 1 : finiteelement = P2Enum;    break;
     60                                case 2 : finiteelement = P2xP1Enum; break;
    6061                                default: _error_("finite element "<<temp<<" not supported");
    6162                        }
  • issm/trunk-jpl/src/m/classes/flowequation.m

    r15621 r15627  
    8080                                md = checkfield(md,'flowequation.isFS','numel',[1],'values',[0 1]);
    8181                                md = checkfield(md,'flowequation.fe_SSA','numel',[1],'values',[0 1]);
    82                                 md = checkfield(md,'flowequation.fe_HO','numel',[1],'values',[0 1]);
     82                                md = checkfield(md,'flowequation.fe_HO','numel',[1],'values',[0 1 2]);
    8383                                md = checkfield(md,'flowequation.fe_FS','numel',[1],'values',[0]);
    8484                                md = checkfield(md,'flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]);
Note: See TracChangeset for help on using the changeset viewer.