- Timestamp:
- 07/16/11 01:38:53 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
issm/trunk/src/m/model/partition/AreaAverageOntoPartition.m
r5241 r9013 1 function partvector=AreaAverageOntoPartition(md,vector )1 function partvector=AreaAverageOntoPartition(md,vector,layer) 2 2 %AREAAVERAGEONTOPARTITION compute partition values for a certain vector expressed on the vertices of the mesh. Use area weighted average. 3 3 % 4 4 % Usage: average=AreaAverageOntoPartition(md,vector) 5 % average=AreaAverageOntoPartition(md,vector,layer) %if in 3D, chose which layer is partitioned 5 6 % 6 7 7 %ok, first check that part is Matlab matlab indexed 8 %some checks 9 if md.dim==3, 10 if nargin~=3, 11 error('layer should be provided onto which Area Averaging occurs'); 12 end 13 %save 3D model 14 md3d=md; 15 16 md.elements=md.elements2d; 17 md.x=md.x2d; 18 md.y=md.y2d; 19 md.numberofnodes=md.numberofnodes2d; 20 md.numberofelements=md.numberofelements2d; 21 md.vwgt=[]; 22 md.nodeconnectivity=[]; 23 24 %run connectivity routine 25 md=adjacency(md); 26 27 %finally, project vector: 28 vector=project2d(md3d,vector,layer); 29 md.part=project2d(md3d,md3d.part,layer); 30 end 31 32 %ok, first check that part is Matlab indexed 8 33 part=md.part+1; 34 35 %some check: 36 if md.npart~=max(part), 37 error('AreaAverageOntoPartition error message: ''npart'' should be equal to max(md.part)'); 38 end 9 39 10 40 %initialize output … … 17 47 partvector(i)=sum(weightedvector(pos))/sum(md.vwgt(pos)); 18 48 end 49 50 %in 3D, restore 3D model: 51 if md.dim==3, 52 md=md3d; 53 end
Note:
See TracChangeset
for help on using the changeset viewer.