Hello dear all
I'm Soheil Marandy and I work on meshfree methods. I have analysis the free vibration of a thin plate using element free Galerkin method but I have seen that using different field nodes in the element free galerkin method provide different mode shapes.
I would be appreciated If I could have your points on this isssue.
Warm regards,
Soheil
i am trying to solve
i am trying to solve problem of finding natural frequency of 1 d bar .
i am using orthogonal transform technique for applying boundary condition ,but my results are not correct can anyone guide me in this problem .folowing is the code please let me know if there is any mistake in formulation
% ONE DIMENSIONAL EFG PROGRAM for finding natural frequencies of a bar
% problem
% SET UP NODAL COORDINATES ALONG BAR, DETERMINE NUMBER OF CELLS
x = [0.0:0.1:1.0];%11 nodes
nnodes = length(x);
ncells = nnodes-1;
% SET PARAMETERS FOR WEIGHT FUNCTION, MATERIAL PROPERITES
dmax = 2.0; %ratio of dmi to ci
E=2.1e+11; area=0.001;
rho=7800;
L=1;
noncons=sqrt(rho*(L^2)/E);
% DETERMINE DMI FOR EACH NODE
dm = dmax*(x(2)-x(1))*ones(1,nnodes);
%SET UP GAUSS POINTS, WEIGHTS, AND JACOBIAN FOR EACH CELL
gg = zeros(1,ncells);
jac = (x(2)-x(1))/2;
weight = 2;
gg = -.05:.1:0.95; %11 nodes
gg(1) = 0.0;
% INITIALIZE MATRICES
k = zeros(nnodes);
f = zeros(nnodes,1);
GG = zeros(nnodes,1);
H=zeros(nnodes,2);
m = zeros(nnodes);
% LOOP OVER GAUSS POINTS
for j = 1:length(gg)
xg = gg(j);
% DETERMINE DISTANCE BETWEEN NODES AND GAUSS POINT
dif = xg*ones(1,nnodes)-x;
% SET UP WEIGHTS W AND DW FOR EACH NODE
clear w dw
for i=1:nnodes
drdx = sign(dif(i))/dm(i);
r = abs(dif(i))/dm(i);
if r<=0.5
w(i) = (2/3) - 4*r*r + 4*r^3;
dw(i) = (-8*r + 12*r^2)*drdx;
elseif r<=1.0 & r >0.5
w(i) = (4/3)-4*r+4*r*r -(4/3)*r^3;
dw(i) = (-4 + 8*r-4*r^2)*drdx;
elseif r>1.0
w(i) = 0.0;
dw(i) = 0.0;
end
end
%SET UP SHAPE FUNCTIONS AND DERIVATIVES
won = ones(1,nnodes);
nul=zeros(1,nnodes-1);
p = [won;x];
B = p.*[w;w];
pp = zeros(2);
A = zeros(2);
dA = zeros(2);
for i=1:nnodes
pp = p(1:2,i)*p(1:2,i)';
A = A+w(1,i)*pp;
dA = dA+dw(1,i)*pp;
end
Ainv = inv(A);
pg = [1 xg];
phi = pg*Ainv*B;
db = p.*[dw;dw];
da = -Ainv*(dA*Ainv);
dphi = [0 1]*Ainv*B+pg*(da*B+Ainv*db);
%ASSEMBLE DISCRETE EQUATIONS
if j == 1
% H=[phi;dphi];
GG = -phi';
H=phi;
else if j>1
k = k+(weight*E*area*jac)*(dphi'*dphi);
m = m+(weight*rho*area*jac)*(phi'*phi);
end
end
end
k
m
[R,D,V]= svd(H)
R*D*V'
Vpart=V(:,2:nnodes)
kmat=Vpart'*k*Vpart
mmat=Vpart'*m*Vpart
[v,d]=eigs(kmat,mmat)
omiga=(sqrt(d))
sort(diag(omiga))
sort(diag(omiga))*noncons
natural frequency of bar by efg
i am trying to solve problem of finding natural frequency of 1 d bar .
i am using orthogonal transform technique for applying boundary condition ,but my results are not correct can anyone guide me in this problem .folowing is the code please let me know if there is any mistake in formulation
% ONE DIMENSIONAL EFG PROGRAM for finding natural frequencies of a bar
% problem
% SET UP NODAL COORDINATES ALONG BAR, DETERMINE NUMBER OF CELLS
x = [0.0:0.1:1.0];%11 nodes
nnodes = length(x);
ncells = nnodes-1;
% SET PARAMETERS FOR WEIGHT FUNCTION, MATERIAL PROPERITES
dmax = 2.0; %ratio of dmi to ci
E=2.1e+11; area=0.001;
rho=7800;
L=1;
noncons=sqrt(rho*(L^2)/E);
% DETERMINE DMI FOR EACH NODE
dm = dmax*(x(2)-x(1))*ones(1,nnodes);
%SET UP GAUSS POINTS, WEIGHTS, AND JACOBIAN FOR EACH CELL
gg = zeros(1,ncells);
jac = (x(2)-x(1))/2;
weight = 2;
gg = -.05:.1:0.95; %11 nodes
gg(1) = 0.0;
% INITIALIZE MATRICES
k = zeros(nnodes);
f = zeros(nnodes,1);
GG = zeros(nnodes,1);
H=zeros(nnodes,2);
m = zeros(nnodes);
% LOOP OVER GAUSS POINTS
for j = 1:length(gg)
xg = gg(j);
% DETERMINE DISTANCE BETWEEN NODES AND GAUSS POINT
dif = xg*ones(1,nnodes)-x;
% SET UP WEIGHTS W AND DW FOR EACH NODE
clear w dw
for i=1:nnodes
drdx = sign(dif(i))/dm(i);
r = abs(dif(i))/dm(i);
if r<=0.5
w(i) = (2/3) - 4*r*r + 4*r^3;
dw(i) = (-8*r + 12*r^2)*drdx;
elseif r<=1.0 & r >0.5
w(i) = (4/3)-4*r+4*r*r -(4/3)*r^3;
dw(i) = (-4 + 8*r-4*r^2)*drdx;
elseif r>1.0
w(i) = 0.0;
dw(i) = 0.0;
end
end
%SET UP SHAPE FUNCTIONS AND DERIVATIVES
won = ones(1,nnodes);
nul=zeros(1,nnodes-1);
p = [won;x];
B = p.*[w;w];
pp = zeros(2);
A = zeros(2);
dA = zeros(2);
for i=1:nnodes
pp = p(1:2,i)*p(1:2,i)';
A = A+w(1,i)*pp;
dA = dA+dw(1,i)*pp;
end
Ainv = inv(A);
pg = [1 xg];
phi = pg*Ainv*B;
db = p.*[dw;dw];
da = -Ainv*(dA*Ainv);
dphi = [0 1]*Ainv*B+pg*(da*B+Ainv*db);
%ASSEMBLE DISCRETE EQUATIONS
if j == 1
% H=[phi;dphi];
GG = -phi';
H=phi;
else if j>1
k = k+(weight*E*area*jac)*(dphi'*dphi);
m = m+(weight*rho*area*jac)*(phi'*phi);
end
end
end
k
m
[R,D,V]= svd(H)
R*D*V'
Vpart=V(:,2:nnodes)
kmat=Vpart'*k*Vpart
mmat=Vpart'*m*Vpart
[v,d]=eigs(kmat,mmat)
omiga=(sqrt(d))
sort(diag(omiga))
sort(diag(omiga))*noncons