Changeset 4659
- Timestamp:
- 07/19/10 13:53:48 (15 years ago)
- Location:
- issm/trunk/src/m/partition
- Files:
-
- 2 deleted
- 1 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/partition/partitioner.m
r4643 r4659 27 27 npart=getfieldvalue(options,'npart'); 28 28 29 %adjacency matrix if needed: 30 if (strcmpi(package,'chaco') || strcmpi(package,'scotch')), 31 md=adjacency(md); 32 end 33 34 29 35 if strcmpi(package,'chaco'), 30 31 % create adjacency matrix, vertex list, and vertex weights32 if isempty(md.adjacency)33 [md.adjacency,vlist,md.vwgt]=adjacency_matrix(md.elements,[md.x md.y md.z]);34 end35 36 36 37 % default method (from chaco.m) 37 38 method=[1 1 0 0 1 1 50 0 .001 7654321]'; 38 39 method(1)=3; % global method (3=inertial (geometric)) 39 method(3)= 1; % vertex weights (0=off, 1=on)40 method(3)=0; % vertex weights (0=off, 1=on) 40 41 41 42 %specify bisection … … 44 45 %are we using weights? 45 46 if strcmpi(getfieldvalue(options,'weighting'),'on'), 47 weights=floor(md.vwgt/min(md.vwgt)); 48 method(3)=1; 49 else 50 weights=[]; 51 end 46 52 47 % add integer scaled vertex weights into adjacency matrix for chaco (on diagonal) 48 % adj_mat2=md.adjacency+sparse(1:size(md.adjacency,1),1:size(md.adjacency,2),floor(md.vwgt/min(md.vwgt))); 49 50 % partition into nparts 51 part=Chaco(md.adjacency,floor(md.vwgt/min(md.vwgt)),[],md.x, md.y ,md.z,method,npart,[])'; 52 else 53 % partition into nparts 54 method(3)=0; % vertex weights (0=off, 1=on) 55 part=Chaco(md.adjacency,[],[],md.x, md.y, md.z,method,npart,[])'; 56 end 57 part=part+1; %index partitions from 1 up. like metis. 53 % partition into nparts 54 part=Chaco(md.adjacency,weights,[],md.x, md.y ,md.z,method,npart,[])'+1; %index partitions from 1 up. like metis. 58 55 59 56 elseif strcmpi(package,'scotch'), 60 57 61 % create adjacency matrix, vertex list, and vertex weights62 if isempty(md.adjacency)63 [md.adjacency,vlist,md.vwgt]=adjacency_matrix(md.elements,[md.x md.y md.z]);58 %are we using weights? 59 if strcmpi(getfieldvalue(options,'weighting'),'on'), 60 weights=floor(md.vwgt/min(md.vwgt)); 64 61 end 62 maptab=Scotch(md.adjacency,[],weights,[],'cmplt',[npart]); 63 64 part=maptab(:,2)+1;%index partitions from 1 up. like metis. 65 65 66 % partition into 100 parts, but ignore vertex and edge weights67 %maptab=gmap(md.adjacency,[],[],[],'cmplt',[npart],'-vm','-vs','-vt');68 69 if strcmpi(getfieldvalue(options,'weighting'),'on'),70 maptab=gmap(md.adjacency,[],floor(md.vwgt/min(md.vwgt)),[],'cmplt',[npart]);71 else72 maptab=gmap(md.adjacency,[],[],[],'cmplt',[npart]);73 end74 75 part=maptab(:,2)+1;76 66 77 67 elseif strcmpi(package,'linear'),
Note:
See TracChangeset
for help on using the changeset viewer.