Home > fvcom_prepro > elems2nodes.m

elems2nodes

PURPOSE ^

Transfer a field from elements to vertices

SYNOPSIS ^

function [fieldout] = elems2nodes(fieldin,Mobj)

DESCRIPTION ^

 Transfer a field from elements to vertices  

 [fieldout] = function elems2nodes(fieldin,Mobj)  

 DESCRIPTION:
    Smooth a vertex based field 

 INPUT
    Mobj         = Matlab mesh object
    fieldin      = element-based field

 OUTPUT:
    fieldout = vertex-based field

 EXAMPLE USAGE
    f = smoothfield(fc,Mobj)

 Author(s):  
    Geoff Cowles (University of Massachusetts Dartmouth)

 Revision history
   
==============================================================================

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function [fieldout]  = elems2nodes(fieldin,Mobj)
0002 
0003 % Transfer a field from elements to vertices
0004 %
0005 % [fieldout] = function elems2nodes(fieldin,Mobj)
0006 %
0007 % DESCRIPTION:
0008 %    Smooth a vertex based field
0009 %
0010 % INPUT
0011 %    Mobj         = Matlab mesh object
0012 %    fieldin      = element-based field
0013 %
0014 % OUTPUT:
0015 %    fieldout = vertex-based field
0016 %
0017 % EXAMPLE USAGE
0018 %    f = smoothfield(fc,Mobj)
0019 %
0020 % Author(s):
0021 %    Geoff Cowles (University of Massachusetts Dartmouth)
0022 %
0023 % Revision history
0024 %
0025 %==============================================================================
0026 subname = 'elems2nodes';
0027 %fprintf('\n')
0028 %fprintf(['begin : ' subname '\n'])
0029 
0030 %------------------------------------------------------------------------------
0031 % Parse input
0032 %------------------------------------------------------------------------------
0033 
0034 if(exist('fieldin')*exist('Mobj') == 0)
0035     error('arguments to elems2nodes are missing')
0036 end;
0037 
0038 if(length(fieldin) ~= Mobj.nElems)
0039     error('field size in elems2nodes is not the same as number of elements in Mesh')
0040 end;
0041 
0042 %------------------------------------------------------------------------------
0043 % Tranfser
0044 %------------------------------------------------------------------------------
0045 fieldout = zeros(Mobj.nVerts,1);
0046 count    = zeros(Mobj.nVerts,1);
0047 
0048 for i=1:Mobj.nElems
0049     n1 = Mobj.tri(i,1);
0050     n2 = Mobj.tri(i,2);
0051     n3 = Mobj.tri(i,3);
0052     fieldout(n1) = fieldout(n1) + fieldin(i);  count(n1) = count(n1) + 1;
0053     fieldout(n2) = fieldout(n2) + fieldin(i);  count(n2) = count(n2) + 1;
0054     fieldout(n3) = fieldout(n3) + fieldin(i);  count(n3) = count(n3) + 1;
0055 end;
0056 fieldout = fieldout./real(count);
0057 
0058 %fprintf(['end   : ' subname '\n'])
0059

Generated on Wed 20-Feb-2019 16:06:01 by m2html © 2005