Changeset 12094
- Timestamp:
- 04/20/12 15:03:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk-jpl/src/m/model/mesh/triangle.m
r12082 r12094 38 38 39 39 %Mesh using TriMesh 40 if strcmp(riftname,''), 41 [md.mesh.elements,md.mesh.x,md.mesh.y,md.mesh.segments,md.mesh.segmentmarkers]=TriMesh(domainname,area,true); 42 else 43 [elements,x,y,segments,segmentmarkers]=TriMeshRifts(domainname,riftname,area,true); 40 [elements,x,y,segments,segmentmarkers]=TriMesh(domainname,riftname,area); 44 41 45 %check that all the created nodes belong to at least one element 46 orphan=find(~ismember([1:length(x)],sort(unique(elements(:))))); 47 for i=1:length(orphan), 48 %get rid of the orphan node i 49 %update x and y 50 x=[x(1:orphan(i)-(i-1)-1); x(orphan(i)-(i-1)+1:end)]; 51 y=[y(1:orphan(i)-(i-1)-1); y(orphan(i)-(i-1)+1:end)]; 52 %update elements 53 pos=find(elements>orphan(i)-(i-1)); 54 elements(pos)=elements(pos)-1; 55 %update segments 56 pos1=find(segments(:,1)>orphan(i)-(i-1)); 57 pos2=find(segments(:,2)>orphan(i)-(i-1)); 58 segments(pos1,1)=segments(pos1,1)-1; 59 segments(pos2,2)=segments(pos2,2)-1; 60 end 42 %check that all the created nodes belong to at least one element 43 orphan=find(~ismember([1:length(x)],sort(unique(elements(:))))); 44 for i=1:length(orphan), 45 disp('WARNING: removing orphans'); 46 %get rid of the orphan node i 47 %update x and y 48 x=[x(1:orphan(i)-(i-1)-1); x(orphan(i)-(i-1)+1:end)]; 49 y=[y(1:orphan(i)-(i-1)-1); y(orphan(i)-(i-1)+1:end)]; 50 %update elements 51 pos=find(elements>orphan(i)-(i-1)); 52 elements(pos)=elements(pos)-1; 53 %update segments 54 pos1=find(segments(:,1)>orphan(i)-(i-1)); 55 pos2=find(segments(:,2)>orphan(i)-(i-1)); 56 segments(pos1,1)=segments(pos1,1)-1; 57 segments(pos2,2)=segments(pos2,2)-1; 58 end 61 59 62 %plug into md 63 md.mesh.x=x; 64 md.mesh.y=y; 65 md.mesh.elements=elements; 66 md.mesh.segments=segments; 67 md.mesh.segmentmarkers=segmentmarkers; 68 end 60 %plug into md 61 md.mesh.x=x; 62 md.mesh.y=y; 63 md.mesh.elements=elements; 64 md.mesh.segments=segments; 65 md.mesh.segmentmarkers=segmentmarkers; 69 66 70 67 %Fill in rest of fields:
Note:
See TracChangeset
for help on using the changeset viewer.