Changeset 17041
- Timestamp:
- 12/21/13 13:42:01 (11 years ago)
- Location:
- issm/trunk-jpl/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/classes/Elements/Penta.cpp
r17028 r17041 2769 2769 penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+iomodel->elementtoedgeconnectivity[9*index+2]+1; 2770 2770 break; 2771 case P1xP3Enum: 2772 numnodes = 12; 2773 penta_node_ids = xNew<int>(numnodes); 2774 penta_node_ids[ 0]=iomodel->nodecounter+iomodel->elements[6*index+0]; 2775 penta_node_ids[ 1]=iomodel->nodecounter+iomodel->elements[6*index+1]; 2776 penta_node_ids[ 2]=iomodel->nodecounter+iomodel->elements[6*index+2]; 2777 penta_node_ids[ 3]=iomodel->nodecounter+iomodel->elements[6*index+3]; 2778 penta_node_ids[ 4]=iomodel->nodecounter+iomodel->elements[6*index+4]; 2779 penta_node_ids[ 5]=iomodel->nodecounter+iomodel->elements[6*index+5]; 2780 penta_node_ids[ 6]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+0]+1; 2781 penta_node_ids[ 7]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+1]+1; 2782 penta_node_ids[ 8]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+2]+1; 2783 penta_node_ids[ 9]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+0]+2; 2784 penta_node_ids[10]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+1]+2; 2785 penta_node_ids[11]=iomodel->nodecounter+iomodel->numberofvertices+2*iomodel->elementtoedgeconnectivity[9*index+2]+2; 2786 break; 2771 2787 case P2xP1Enum: 2772 2788 numnodes = 12; -
issm/trunk-jpl/src/c/classes/gauss/GaussPenta.cpp
r16892 r17041 587 587 } 588 588 break; 589 case P1xP3Enum: 590 switch(iv){ 591 case 0 : coord1=1.; coord2=0.; coord3=0.; coord4=-1.; break; 592 case 1 : coord1=0.; coord2=1.; coord3=0.; coord4=-1.; break; 593 case 2 : coord1=0.; coord2=0.; coord3=1.; coord4=-1.; break; 594 case 3 : coord1=1.; coord2=0.; coord3=0.; coord4=+1.; break; 595 case 4 : coord1=0.; coord2=1.; coord3=0.; coord4=+1.; break; 596 case 5 : coord1=0.; coord2=0.; coord3=1.; coord4=+1.; break; 597 598 case 6 : coord1=1.; coord2=0.; coord3=0.; coord4=-1./3.; break; 599 case 7 : coord1=0.; coord2=1.; coord3=0.; coord4=-1./3.; break; 600 case 8 : coord1=0.; coord2=0.; coord3=1.; coord4=-1./3.; break; 601 case 9 : coord1=1.; coord2=0.; coord3=0.; coord4=+1./3.; break; 602 case 10: coord1=0.; coord2=1.; coord3=0.; coord4=+1./3.; break; 603 case 11: coord1=0.; coord2=0.; coord3=1.; coord4=+1./3.; break; 604 default: _error_("node index should be in [0 11]"); 605 } 606 break; 589 607 case P2xP1Enum: 590 608 switch(iv){ -
issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
r16336 r17041 61 61 EdgesPartitioning(&my_edges,iomodel); 62 62 break; 63 case P1xP3Enum: 64 EdgesPartitioning(&my_edges,iomodel); 65 break; 63 66 case P2xP1Enum: 64 67 EdgesPartitioning(&my_edges,iomodel); 65 68 break; 66 69 case P2Enum: 70 EdgesPartitioning(&my_edges,iomodel); 71 break; 72 case P2xP4Enum: 67 73 EdgesPartitioning(&my_edges,iomodel); 68 74 break; … … 160 166 } 161 167 break; 168 case P1xP3Enum: 169 for(i=0;i<iomodel->numberofvertices;i++){ 170 if((iomodel->my_vertices[i])){ 171 if (!xIsNan<IssmDouble>(spcdata[i])){ 172 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+i+1,dof,spcdata[i],analysis_type)); 173 count++; 174 } 175 } 176 } 177 for(i=0;i<iomodel->numberofedges;i++){ 178 if(iomodel->edges[i*3+2]==2){ 179 if(my_edges[i]){ 180 v1 = iomodel->edges[3*i+0]-1; 181 v2 = iomodel->edges[3*i+1]-1; 182 if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){ 183 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+2*count+1,iomodel->nodecounter+iomodel->numberofvertices+2*i+1, 184 dof,2./3.*spcdata[v1]+1./3.*spcdata[v2],analysis_type)); 185 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+2*count+2,iomodel->nodecounter+iomodel->numberofvertices+2*i+2, 186 dof,1./3.*spcdata[v1]+2./3.*spcdata[v2],analysis_type)); 187 count=count+2; 188 } 189 } 190 } 191 } 192 break; 162 193 case P2xP1Enum: 163 194 for(i=0;i<iomodel->numberofvertices;i++){ -
issm/trunk-jpl/src/c/modules/ModelProcessorx/CreateNodes.cpp
r16542 r17041 85 85 } 86 86 break; 87 88 case P1xP3Enum: 89 EdgesPartitioning(&my_edges,iomodel); 90 for(i=0;i<iomodel->numberofvertices;i++){ 91 if(iomodel->my_vertices[i]){ 92 nodes->AddObject(new Node(iomodel->nodecounter+i+1,i,lid++,i,iomodel,analysis,approximation)); 93 } 94 } 95 96 counter = iomodel->numberofvertices; 97 for(i=0;i<iomodel->numberofedges;i++){ 98 if(iomodel->edges[i*3+2]==2){ 99 if(my_edges[i]){ 100 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+2*i+1,counter+1,lid++,0,iomodel,analysis,approximation); 101 nodes->AddObject(node); 102 node = new Node(iomodel->nodecounter+iomodel->numberofvertices+2*i+2,counter+2,lid++,0,iomodel,analysis,approximation); 103 nodes->AddObject(node); 104 } 105 counter=counter+2; 106 } 107 } 108 break; 109 87 110 case P2xP1Enum: 88 111 EdgesPartitioning(&my_edges,iomodel); … … 213 236 } 214 237 } 238 break; 239 case OneLayerP4zEnum: 240 _assert_(approximation==FSApproximationEnum); 241 /*P2xP4 velocity*/ 242 EdgesPartitioning(&my_edges,iomodel); 243 /*P1xP3 pressure*/ 244 _error_("Not supported"); 215 245 break; 216 246 -
issm/trunk-jpl/src/m/classes/flowequation.m
r17040 r17041 86 86 md = checkfield(md,'fieldname','flowequation.isFS','numel',[1],'values',[0 1]); 87 87 md = checkfield(md,'fieldname','flowequation.fe_SSA','values',{'P1','P1bubble','P1bubblecondensed','P2'}); 88 md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2' });88 md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',{'P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2','P1xP3','P2xP4'}); 89 89 md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',{'P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','OneLayerP4z'}); 90 90 md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices 1],'values',[0 1]); -
issm/trunk-jpl/src/m/classes/flowequation.py
r17040 r17041 75 75 md = checkfield(md,'fieldname','flowequation.fe_SSA','values',['P1','P1bubble','P1bubblecondensed','P2']) 76 76 md = checkfield(md,'fieldname','flowequation.fe_HO' ,'values',['P1','P1bubble','P1bubblecondensed','P1xP2','P2xP1','P2']) 77 md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','OneLayerP4z' ])77 md = checkfield(md,'fieldname','flowequation.fe_FS' ,'values',['P1P1','P1P1GLS','MINIcondensed','MINI','TaylorHood','OneLayerP4z','P1xP3','P2xP4']) 78 78 md = checkfield(md,'fieldname','flowequation.borderSSA','size',[md.mesh.numberofvertices],'values',[0,1]) 79 79 md = checkfield(md,'fieldname','flowequation.borderHO','size',[md.mesh.numberofvertices],'values',[0,1])
Note:
See TracChangeset
for help on using the changeset viewer.