source: issm/oecreview/Archive/12081-12100/ISSM-12085-12086.diff@ 12325

Last change on this file since 12325 was 12325, checked in by Eric.Larour, 13 years ago

11990 to 12321 oec compliance

File size: 7.0 KB
RevLine 
[12325]1Index: /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/shared/TriMesh/SplitMeshForRifts.cpp
2===================================================================
3--- /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/shared/TriMesh/SplitMeshForRifts.cpp (revision 12085)
4+++ /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/shared/TriMesh/SplitMeshForRifts.cpp (revision 12086)
5@@ -46,10 +46,9 @@
6 segments=*psegments;
7 segmentmarkerlist=*psegmentmarkerlist;
8
9-
10 /*Establish list of segments that belong to a rift: */
11- RiftSegmentsFromSegments(&nriftsegs,&riftsegments,nel,index,nsegs,segments); /*riftsegments of size nriftsegsx4 (4 for first element on segment,second element,
12- first node and second snode)*/
13+ /*riftsegments of size nriftsegsx4 (4 for first element on segment,second element,first node and second snode)*/
14+ RiftSegmentsFromSegments(&nriftsegs,&riftsegments,nel,index,nsegs,segments);
15
16 /*Go through all nodes of the rift segments, and start splitting the mesh: */
17 flags=(int*)xcalloc(nods,sizeof(int)); //to make sure we don't split the same nodes twice!
18@@ -69,9 +68,13 @@
19
20 DetermineGridElementListOnOneSideOfRift(&NumGridElementListOnOneSideOfRift,&GridElementListOnOneSideOfRift,i,nriftsegs,riftsegments,node,index,nel);
21
22- /*Summary: we have for node, a list of elements (GridElementListOnOneSideOfRift, of size NumGridElementListOnOneSideOfRift) that all contain node
23- *and that are on the same side of the rift. For all these elements, we clone node into another node, and we swap all instances of node in the triangulation
24- *for those elements, to the new node.*/
25+ /*Summary: we have for node, a list of elements
26+ * (GridElementListOnOneSideOfRift, of size
27+ * NumGridElementListOnOneSideOfRift) that all contain node
28+ *and that are on the same side of the rift. For all these
29+ elements, we clone node into another node, and we swap all
30+ instances of node in the triangulation *for those elements, to the
31+ new node.*/
32
33 //augment number of nodes
34 nods=nods+1;
35Index: /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/shared/TriMesh/TriMeshUtils.cpp
36===================================================================
37--- /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/shared/TriMesh/TriMeshUtils.cpp (revision 12085)
38+++ /proj/ice/larour/issm-uci-clean/trunk-jpl/src/c/shared/TriMesh/TriMeshUtils.cpp (revision 12086)
39@@ -277,13 +277,13 @@
40 *we can only rely on the position (x,y) of the rift nodes to create a segment:*/
41 for (k=0;k<3;k++){
42 if ((x[(int)*(index+el1*3+k)-1]==x[(int)*(segments+3*j+0)-1]) && (y[(int)*(index+el1*3+k)-1]==y[(int)*(segments+3*j+0)-1])){
43- *(segments+3*j+0)=*(index+el1*3+k); _assert_(segments[3*j+0]<nods);
44+ *(segments+3*j+0)=*(index+el1*3+k); _assert_(segments[3*j+0]<nods+1);
45 break;
46 }
47 }
48 for (k=0;k<3;k++){
49 if ((x[(int)*(index+el1*3+k)-1]==x[(int)*(segments+3*j+1)-1]) && (y[(int)*(index+el1*3+k)-1]==y[(int)*(segments+3*j+1)-1])){
50- *(segments+3*j+1)=*(index+el1*3+k); _assert_(segments[3*j+1]<nods);
51+ *(segments+3*j+1)=*(index+el1*3+k); _assert_(segments[3*j+1]<nods+1);
52 break;
53 }
54 }
55@@ -292,13 +292,13 @@
56 *(segmentmarkerlist+(nsegs+i))=*(segmentmarkerlist+j);
57 for (k=0;k<3;k++){
58 if ((x[(int)*(index+el2*3+k)-1]==x[(int)*(segments+3*j+0)-1]) && (y[(int)*(index+el2*3+k)-1]==y[(int)*(segments+3*j+0)-1])){
59- *(segments+3*(nsegs+i)+0)=*(index+el2*3+k); _assert_(segments[3*(nsegs+i)+0]<nods);
60+ *(segments+3*(nsegs+i)+0)=*(index+el2*3+k); _assert_(segments[3*(nsegs+i)+0]<nods+1);
61 break;
62 }
63 }
64 for (k=0;k<3;k++){
65 if ((x[(int)*(index+el2*3+k)-1]==x[(int)*(segments+3*j+1)-1]) && (y[(int)*(index+el2*3+k)-1]==y[(int)*(segments+3*j+1)-1])){
66- *(segments+3*(nsegs+i)+1)=*(index+el2*3+k); _assert_(segments[3*(nsegs+i)+1]<nods);
67+ *(segments+3*(nsegs+i)+1)=*(index+el2*3+k); _assert_(segments[3*(nsegs+i)+1]<nods+1);
68 break;
69 }
70 }
71@@ -308,13 +308,13 @@
72 /*Let's update segments[j][:] using element el2 and the corresponding rift segment: */
73 for (k=0;k<3;k++){
74 if ((x[(int)*(index+el2*3+k)-1]==x[(int)*(segments+3*j+0)-1]) && (y[(int)*(index+el2*3+k)-1]==y[(int)*(segments+3*j+0)-1])){
75- *(segments+3*j+0)=*(index+el2*3+k); _assert_(segments[3*j+0]<nods);
76+ *(segments+3*j+0)=*(index+el2*3+k); _assert_(segments[3*j+0]<nods+1);
77 break;
78 }
79 }
80 for (k=0;k<3;k++){
81 if ((x[(int)*(index+el2*3+k)-1]==x[(int)*(segments+3*j+1)-1]) && (y[(int)*(index+el2*3+k)-1]==y[(int)*(segments+3*j+1)-1])){
82- *(segments+3*j+1)=*(index+el2*3+k);_assert_(segments[3*j+1]<nods);
83+ *(segments+3*j+1)=*(index+el2*3+k);_assert_(segments[3*j+1]<nods+1);
84 break;
85 }
86 }
87@@ -323,13 +323,13 @@
88 *(segmentmarkerlist+(nsegs+i))=*(segmentmarkerlist+j);
89 for (k=0;k<3;k++){
90 if ((x[(int)*(index+el1*3+k)-1]==x[(int)*(segments+3*j+0)-1]) && (y[(int)*(index+el1*3+k)-1]==y[(int)*(segments+3*j+0)-1])){
91- *(segments+3*(nsegs+i)+0)=*(index+el1*3+k);_assert_(segments[3*(nsegs+i)+0]<nods);
92+ *(segments+3*(nsegs+i)+0)=*(index+el1*3+k);_assert_(segments[3*(nsegs+i)+0]<nods+1);
93 break;
94 }
95 }
96 for (k=0;k<3;k++){
97 if ((x[(int)*(index+el1*3+k)-1]==x[(int)*(segments+3*j+1)-1]) && (y[(int)*(index+el1*3+k)-1]==y[(int)*(segments+3*j+1)-1])){
98- *(segments+3*(nsegs+i)+1)=*(index+el1*3+k);_assert_(segments[3*(nsegs+i)+1]<nods);
99+ *(segments+3*(nsegs+i)+1)=*(index+el1*3+k);_assert_(segments[3*(nsegs+i)+1]<nods+1);
100 break;
101 }
102 }
103@@ -435,9 +435,9 @@
104 counter=0;
105 for (j=0;j<numsegs;j++){
106 if (segmentmarkerlist[j]==(2+i)){
107- riftsegment[3*counter+0]=segments[3*j+0];_assert_(riftsegment[3*counter+0]<nods);
108- riftsegment[3*counter+1]=segments[3*j+1];_assert_(riftsegment[3*counter+1]<nods);
109- riftsegment[3*counter+2]=segments[3*j+2];_assert_(riftsegment[3*counter+2]<nel);
110+ riftsegment[3*counter+0]=segments[3*j+0];_assert_(riftsegment[3*counter+0]<nods+1);
111+ riftsegment[3*counter+1]=segments[3*j+1];_assert_(riftsegment[3*counter+1]<nods+1);
112+ riftsegment[3*counter+2]=segments[3*j+2];_assert_(riftsegment[3*counter+2]<nel+1);
113 counter++;
114 }
115 }
116@@ -742,7 +742,6 @@
117 /*output: */
118 double* riftstips=NULL;
119
120-
121 /*Allocate byproduct of this routine, riftstips: */
122 riftstips=(double*)xmalloc(numrifts*2*sizeof(double));
123
124@@ -752,7 +751,6 @@
125 riftpairs=riftspairs[i];
126 numsegs=riftsnumsegments[i];
127
128-
129 /*Allocate copy of riftsegments and riftpairs,
130 *as well as ordering vector: */
131 riftsegments_copy=(double*)xmalloc(numsegs*3*sizeof(double));
132@@ -777,8 +775,9 @@
133 }
134 }
135 /* Make sure node3 faces node1 and node4 faces node2: */
136- _assert_(node1<nods && node4<nods);
137- if ((x[node1]==x[node4]) && (y[node1]==y[node4])){
138+ _assert_(node1<nods+1 && node4<nods+1);
139+ _assert_(node1>0 && node4>0);
140+ if ((x[node1-1]==x[node4-1]) && (y[node1-1]==y[node4-1])){
141 /*Swap node3 and node4:*/
142 temp_node=node3;
143 node3=node4;
Note: See TracBrowser for help on using the repository browser.