- Timestamp:
- 01/06/14 12:27:49 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/c/modules/IoModelToConstraintsx/IoModelToConstraintsx.cpp
r17057 r17062 120 120 } 121 121 } 122 _printf0_("WARNING: Skipping constraints along edges\n"); 122 for(i=0;i<iomodel->numberofedges;i++){ 123 if(iomodel->edges[i*3+2]==2){/*Vertical edges*/ 124 if(my_edges[i]){ 125 v1 = iomodel->edges[3*i+0]-1; 126 v2 = iomodel->edges[3*i+1]-1; 127 if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){ 128 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+4*i+1, 129 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type)); 130 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+2,iomodel->nodecounter+iomodel->numberofvertices+4*i+2, 131 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type)); 132 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+3,iomodel->nodecounter+iomodel->numberofvertices+4*i+3, 133 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type)); 134 count=count+3; 135 } 136 } 137 } 138 if(iomodel->edges[i*3+2]==1){/*Basal edges*/ 139 if(my_edges[i]){ 140 v1 = iomodel->edges[3*i+0]-1; 141 v2 = iomodel->edges[3*i+1]-1; 142 if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){ 143 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+4*i+1, 144 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type)); 145 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+2,iomodel->nodecounter+iomodel->numberofvertices+4*i+2, 146 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type)); 147 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+3,iomodel->nodecounter+iomodel->numberofvertices+4*i+3, 148 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type)); 149 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+4,iomodel->nodecounter+iomodel->numberofvertices+4*i+4, 150 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type)); 151 count=count+4; 152 } 153 } 154 } 155 if(iomodel->edges[i*3+2]==3){/*Top edges*/ 156 if(my_edges[i]){ 157 v1 = iomodel->edges[3*i+0]-1; 158 v2 = iomodel->edges[3*i+1]-1; 159 if(!xIsNan<IssmDouble>(spcdata[v1]) && !xIsNan<IssmDouble>(spcdata[v2])){ 160 constraints->AddObject(new SpcStatic(iomodel->constraintcounter+count+1,iomodel->nodecounter+iomodel->numberofvertices+4*i+1, 161 dof,1./2.*spcdata[v1]+1./2.*spcdata[v2],analysis_type)); 162 count=count+1; 163 } 164 } 165 } 166 } 123 167 break; 124 168 case P1bubbleEnum:
Note:
See TracChangeset
for help on using the changeset viewer.