Changeset 22077


Ignore:
Timestamp:
09/13/17 14:36:40 (8 years ago)
Author:
Mathieu Morlighem
Message:

CHG: continuing implementation of P1xP4

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

Legend:

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

    r22044 r22077  
    28192819                        penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+8]+1;
    28202820                        break;
     2821                case P1xP4Enum:
     2822                        numnodes         = 15;
     2823                        penta_node_ids   = xNew<int>(numnodes);
     2824                        penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0]; /*Vertex 1*/
     2825                        penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1]; /*Vertex 2*/
     2826                        penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2]; /*Vertex 3*/
     2827                        penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3]; /*Vertex 4*/
     2828                        penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4]; /*Vertex 5*/
     2829                        penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5]; /*Vertex 6*/
     2830                        penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+1; /*mid vertical edge 1*/
     2831                        penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+1; /*mid vertical edge 2*/
     2832                        penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+1; /*mid vertical edge 3*/
     2833                        penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+2; /* 1/4 vertical edge 1*/
     2834                        penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+2; /* 1/4 vertical edge 2*/
     2835                        penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+2; /* 1/4 vertical edge 3*/
     2836                        penta_node_ids[12]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+3; /* 3/4 vertical edge 1*/
     2837                        penta_node_ids[13]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+3; /* 3/4 vertical edge 2*/
     2838                        penta_node_ids[14]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+3; /* 3/4 vertical edge 3*/
     2839                        break;
    28212840                case P2xP4Enum:
    28222841                        numnodes         = 30;
     
    28402859                        penta_node_ids[16]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+2; /* 1/4 vertical edge 2*/
    28412860                        penta_node_ids[17]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+2; /* 1/4 vertical edge 3*/
    2842                         penta_node_ids[18]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+3; /* 2/4 vertical edge 1*/
    2843                         penta_node_ids[19]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+3; /* 2/4 vertical edge 2*/
    2844                         penta_node_ids[20]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+3; /* 2/4 vertical edge 3*/
     2861                        penta_node_ids[18]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+0]+3; /* 3/4 vertical edge 1*/
     2862                        penta_node_ids[19]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+1]+3; /* 3/4 vertical edge 2*/
     2863                        penta_node_ids[20]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->elementtoedgeconnectivity[9*index+2]+3; /* 3/4 vertical edge 3*/
    28452864                        penta_node_ids[21]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+2]+1; /* 1/4 vertical face 1*/
    28462865                        penta_node_ids[22]=iomodel->nodecounter+iomodel->numberofvertices+3*iomodel->numberofedges+3*iomodel->elementtofaceconnectivity[5*index+3]+1; /* 1/4 vertical face 2*/
  • issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp

    r21717 r22077  
    8282                        break;
    8383                case P1xP2Enum:
    84                         EdgesPartitioning(&my_edges,iomodel);
    85                         break;
    8684                case P1xP3Enum:
     85                case P1xP4Enum:
    8786                        EdgesPartitioning(&my_edges,iomodel);
    8887                        break;
     
    370369                                }
    371370                                break;
     371                        case P1xP4Enum:
     372                                for(i=0;i<iomodel->numberofvertices;i++){
     373                                        if((iomodel->my_vertices[i])){
     374                                                if (!xIsNan<IssmDouble>(spcdata[i])){
     375                                                        constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type));
     376                                                        count++;
     377                                                }
     378                                        }
     379                                }
     380                                for(i=0;i<iomodel->numberofedges;i++){
     381                                        if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
     382                                                if(my_edges[i]){
     383                                                        v1 = iomodel->edges[3*i+0]-1;
     384                                                        v2 = iomodel->edges[3*i+1]-1;
     385                                                        if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){
     386                                                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+3*i+1,
     387                                                                                                dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
     388                                                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+2,iomodel->nodecounter+iomodel->numberofvertices+3*i+2,
     389                                                                                                dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
     390                                                                constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+3,iomodel->nodecounter+iomodel->numberofvertices+3*i+3,
     391                                                                                                dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type));
     392                                                                count=count+3;
     393                                                        }
     394                                                }
     395                                        }
     396                                }
     397                                break;
    372398                        case P2xP1Enum:
    373399                                for(i=0;i<iomodel->numberofvertices;i++){
  • issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp

    r20474 r22077  
    107107                                        }
    108108                                        counter=counter+2;
     109                                }
     110                        }
     111                        break;
     112                case P1xP4Enum:
     113                        EdgesPartitioning(&my_edges,iomodel);
     114                        for(i=0;i<iomodel->numberofvertices;i++){
     115                                if(iomodel->my_vertices[i]){
     116                                        nodes->AddObject(new Node(id0+i+1,i,lid++,i,iomodel,analysis,approximation));
     117                                }
     118                        }
     119                        counter = iomodel->numberofvertices;
     120                        for(i=0;i<iomodel->numberofedges;i++){
     121                                if(iomodel->edges[i*3+2]==2){/*Vertical edges*/
     122                                        if(my_edges[i]){
     123                                                node = new Node(id0+iomodel->numberofvertices+3*i+1,counter+1,lid++,0,iomodel,analysis,approximation);
     124                                                nodes->AddObject(node);
     125                                                node = new Node(id0+iomodel->numberofvertices+3*i+2,counter+2,lid++,0,iomodel,analysis,approximation);
     126                                                nodes->AddObject(node);
     127                                                node = new Node(id0+iomodel->numberofvertices+3*i+3,counter+3,lid++,0,iomodel,analysis,approximation);
     128                                                nodes->AddObject(node);
     129                                        }
     130                                        counter=counter+3;
    109131                                }
    110132                        }
Note: See TracChangeset for help on using the changeset viewer.