| [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%____________________________________|
|
|