Changeset 4659


Ignore:
Timestamp:
07/19/10 13:53:48 (15 years ago)
Author:
Eric.Larour
Message:

Some cleanup in these routines

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  
    2727npart=getfieldvalue(options,'npart');
    2828
     29%adjacency matrix if needed:
     30if (strcmpi(package,'chaco') || strcmpi(package,'scotch')),
     31        md=adjacency(md);
     32end
     33
     34
    2935if strcmpi(package,'chaco'),
    30 
    31         %  create adjacency matrix, vertex list, and vertex weights
    32         if isempty(md.adjacency)
    33                 [md.adjacency,vlist,md.vwgt]=adjacency_matrix(md.elements,[md.x md.y md.z]);
    34         end
    3536
    3637        %  default method (from chaco.m)
    3738        method=[1 1 0 0 1 1 50 0 .001 7654321]';
    3839        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)
    4041       
    4142        %specify bisection
     
    4445        %are we using weights?
    4546        if strcmpi(getfieldvalue(options,'weighting'),'on'),
     47                weights=floor(md.vwgt/min(md.vwgt));
     48                method(3)=1;
     49        else
     50                weights=[];
     51        end
    4652       
    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.
    5855
    5956elseif strcmpi(package,'scotch'),
    6057
    61         %  create adjacency matrix, vertex list, and vertex weights
    62         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));
    6461        end
     62        maptab=Scotch(md.adjacency,[],weights,[],'cmplt',[npart]);
     63       
     64        part=maptab(:,2)+1;%index partitions from 1 up. like metis.
    6565
    66         %  partition into 100 parts, but ignore vertex and edge weights
    67         %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         else
    72                 maptab=gmap(md.adjacency,[],[],[],'cmplt',[npart]);
    73         end
    74 
    75         part=maptab(:,2)+1;
    7666
    7767elseif strcmpi(package,'linear'),
Note: See TracChangeset for help on using the changeset viewer.