project3d

PURPOSE ^

PROJECT3D - vertically project a vector from 2d mesh

SYNOPSIS ^

function projected_vector=project3d(md,vector2d,type,varargin);

DESCRIPTION ^

PROJECT3D - vertically project a vector from 2d mesh

   vertically project a vector from 2d mesh (split in noncoll and coll areas) into a 3d mesh.
   This vector can be a grid vector of size (md.numberofgrids2d,N/A) or an 
   element vector of size (md.numberofelements2d,N/A). 
   type is 'element' or 'node'. layer an optional layer number where vector 
   should keep its values. If not specified, all layers adopt the value of the 
   2d vector.

   Usage:
      extruded_vector=project3d(md,vector2d,type,layer);

CROSS-REFERENCE INFORMATION ^

This function calls: This function is called by:

SOURCE CODE ^

0001 function projected_vector=project3d(md,vector2d,type,varargin);
0002 %PROJECT3D - vertically project a vector from 2d mesh
0003 %
0004 %   vertically project a vector from 2d mesh (split in noncoll and coll areas) into a 3d mesh.
0005 %   This vector can be a grid vector of size (md.numberofgrids2d,N/A) or an
0006 %   element vector of size (md.numberofelements2d,N/A).
0007 %   type is 'element' or 'node'. layer an optional layer number where vector
0008 %   should keep its values. If not specified, all layers adopt the value of the
0009 %   2d vector.
0010 %
0011 %   Usage:
0012 %      extruded_vector=project3d(md,vector2d,type,layer);
0013 
0014 if nargin==4,
0015     layer=varargin{1};
0016     if ((layer<1) || (layer>md.numlayers)),
0017         error(['project3d error message: layer shoud be between 1 and ' num2str(md.numlayers)]);
0018     end
0019 else
0020     layer=0;
0021 end
0022 
0023 if strcmpi(type,'node'),
0024 
0025     projected_vector=zeros(md.numberofgrids,size(vector2d,2));
0026     
0027     if layer==0,
0028         for i=1:md.numlayers,
0029             projected_vector(((i-1)*md.numberofgrids2d+1):(i*md.numberofgrids2d),:)=vector2d;
0030         end
0031     else
0032         projected_vector(((layer-1)*md.numberofgrids2d+1):(layer*md.numberofgrids2d),:)=vector2d;
0033     end
0034 else
0035 
0036     projected_vector=zeros(md.numberofelements,size(vector2d,2));
0037 
0038     if layer==0,
0039         for i=1:(md.numlayers-1),
0040             projected_vector( ((i-1)*md.numberofelements2d+1):(i*md.numberofelements2d),:)=vector2d;
0041         end
0042 
0043     else
0044         projected_vector( ((layer-1)*md.numberofelements2d+1):(layer*md.numberofelements2d),:)=vector2d;
0045     end
0046 end

Generated on Sun 29-Mar-2009 20:22:55 by m2html © 2003