No BSD License  

Highlights from
Modular Filter Technique on Automatic Mesh Functions

[Cor,modularfilters]=MDfilter(modularfilterpoints,totala,totalb,totalc,meshx,meshy,meshz)
function [Cor,modularfilters]=MDfilter(modularfilterpoints,totala,totalb,totalc,meshx,meshy,meshz)

%__________________________________________________________________________
%MODULAR FILTER TECHNIQUE ON AUTOMATIC MESH COORDINATES   (A.)27.01.2007 |
%_________________________________________________________________________|
%Mesh coordinates :possible surface           |    (meshx,meshy)          |   
%                 :possible volume or solid   | (meshx, meshy, mesz)      |
%_____________________________________________|___________________________|
%FUNCTION                                                                 |
%Modularmap(modularfilterpoints,totala,totalb,totalc,meshx,meshy,mehz)    |
%modularfilterpoints: Locked or non-connecting node's modular values      |
%              meshx:"x" axis direction mesh (value)                      |
%              meshx:"y" axis direction mesh (value)                      |
%              meshx:"z" axis direction mesh (value)                      |
%             totala: "x" axis direction total length  (m)                |
%             totalb: "y" axis direction total width   (m)                |
%             totalc: "z" axis direction total heigth  (m)                |
%_____________________________________________________Matlab ver(all)_____|


% Describe the automatic mesh surfaces or volumes is grid spaces  
gridspacex = totala/meshx;  % along to "x" axis direction mesh space
gridspacey = totalb/meshy;  % along to "y" axis direction mesh space
if meshz ==0
display('DEFINE FLAT SURFACE MESH')
gridspacez=0;
else
display('DEFINE SOLID SURFACE MESH')
gridspacez = totalc/meshz;  % along to "z" axis direction mesh space
end


% Definite all nodes modular map [modmap]                 
dim=1;                 
for ars=1:meshz+1
    for sut=1:meshy+1 
         for sat=1:meshx+1 %Element edge node reference axis

modmap(dim,:)=[mod(sat,meshx+1) ...
               mod(sut,meshy+1) ... 
               mod(ars,meshz+1) ];
           dim=dim+1;
         end
    end
end

value=1;
modularfilters(size(modularfilterpoints,1),3)=0;

% Selected Random Filter Values Ordering for [Modmap]
for numerator=1:size(modmap,1)
    for i=1:size(modularfilterpoints,1)
%        [modmap(numerator,:) modularfilterpoints(i,:) value]
        if  modmap(numerator,:)==modularfilterpoints(i,1:3)
        modularfilters(value,:)=modularfilterpoints(i,:);
        value=value+1;
        end
    end
end
    
    

                 
% Locked Selecting Modular Nodes on Automatic Mesh 
dim=1;
filternum=1;


for ars=1:meshz+1
    for sut=1:meshy+1 
         for sat=1:meshx+1 %Element edge node reference axis

modmap(dim,:)=[mod(sat,meshx+1) ...
               mod(sut,meshy+1) ... 
               mod(ars,meshz+1) ];
           
if    mod(sat,meshx+1)==modularfilters(filternum,1) ...
    && mod(sut,meshy+1)==modularfilters(filternum,2) ...
    && mod(ars,meshz+1)==modularfilters(filternum,3) 

          x=inf;
          y=inf;
          z=inf;
Cor(dim,:)=[x y z];
if filternum == size(modularfilters,1)
ars=meshz+1;
filternum=1;
end
dim=dim+1;
filternum=filternum+1;
else
modmap(dim,:)=[mod(sat,meshx+1) ...
               mod(sut,meshy+1) ... 
               mod(ars,meshz+1) ];

          x=(sat-1)*gridspacex;
          y=(sut-1)*gridspacey;
          z=(ars-1)*gridspacez;
          
%Global axis system nodes position
          Cor(dim,:)=[x y z];
         %Cor(dim,1)=x;    %"x" global coordinate value 
         %Cor(dim,2)=y;    %"y" global coordinate value 
         %Cor(dim,3)=z;
         dim=dim+1;    
end

         end
    end
end%___________________________________________|

 


% Modular Filter Technique on Automatic Mesh Coordinates
fprintf(' \n')
display('SELECTED MODULAR FILTER=======[Mod(x)-Mod(y)-Mod(z)]')
modularfilterpoints

display('SATIFY  MODULAR FILTER=======[Mod(x)-Mod(y)-Mod(z)]')
modularfilters

display ('COORDINATES');
display ('==Point(No)==---[ (X)   (Y)    (Z)]---=== Modularmap ===');
fprintf(' \n')
for s=1:size(Cor,1);
%fprintf('        [% .7f]  [% .7f]  [% .7f]  [% .7f]  \n',Cor(s,:);
fprintf('     (%.f)--[%.4f] [%.4f] [%.4f] (%.f %.f %.f)\n',s,Cor(s,:),modmap(s,:) );
if mod(s,3)==0; fprintf(' \n');end;
end%____________________________________|

Contact us at files@mathworks.com