molecular code in matlab

조회 수: 11 (최근 30일)
Carc
Carc 2023년 1월 25일
답변: Walter Roberson 2023년 1월 26일
This is code for molucular dynamics, but I am not sure why this code couldn't run. Error message is as belows:
error in untitled (line 4)
sum_Vsq(it) = sum_Vsq(it)+ vhx(k,it)*vhx(k,it)+vhy(k,it)*vhy(k,it);
-----------------------
nonIdealTerm = 0;
sum_PE=0;
for k=1:nP
sum_Vsq(it) = sum_Vsq(it)+ vhx(k,it)*vhx(k,it)+vhy(k,it)*vhy(k,it);
for k1=1:nP
if (k1 ~= k)
dx1=hx(k,it)-hx(k1,it);
dy1=hy(k,it)-hy(k1,it);
% check for boundary conditions
if(bC == 0)
if(dx1>sL/2)
dx1=dx1-sL;
end
if(dx1<-sL/2)
dx1=dx1+sL;
end
if(dy1>sL/2)
dy1=dy1-sL;
end
if(dy1<-sL/2)
dy1=dy1+sL;
end
end
r1=sqrt(dx1^2+dy1^2);
sum_PE=sum_PE + 4*(1/r1^12-1/r1^6);
% Lennard-Jones model
f1=24*(2/r1^13-1/r1^7);
fx1=f1*dx1/r1;
fy1=f1*dy1/r1;
nonIdealTerm = nonIdealTerm + fx1*dx1 + fy1*dy1;
end
end
end
KE(it)=0.5* sum_Vsq(it);
PE(it)= 0.5*sum_PE;
TE(it) = KE(it) + PE(it);
T(it) = sum_Vsq(it)/( 2*(nP-1));
p(it) = nP*T(it)/(sL*sL);
pNonIdeal(it) = p(it) + (1/(2*sL*sL))*nonIdealTerm;
nonIdealTerm = 0
sum_PE=0;
for k=1:nP
sum_Vsq(it) = sum_Vsq(it)+ vhx(k,it)*vhx(k,it)+vhy(k,it)*vhy(k,it);
for k1=1:nP
if (k1 ~= k)
dx1=hx(k,it)-hx(k1,it);
dy1=hy(k,it)-hy(k1,it);
% check for boundary conditions
if(bC == 0)
if(dx1>sL/2)
dx1=dx1-sL;
end
if(dx1<-sL/2)
dx1=dx1+sL;
end
if(dy1>sL/2)
dy1=dy1-sL;
end
if(dy1<-sL/2)
dy1=dy1+sL;
end
end
r1=sqrt(dx1^2+dy1^2);
sum_PE=sum_PE + 4*(1/r1^12-1/r1^6);
% Lennard-Jones model
f1=24*(2/r1^13-1/r1^7);
fx1=f1*dx1/r1;
fy1=f1*dy1/r1;
nonIdealTerm = nonIdealTerm + fx1*dx1 + fy1*dy1;
end
end
end
KE(it)=0.5* sum_Vsq(it);
PE(it)= 0.5*sum_PE;
TE(it) = KE(it) + PE(it);
T(it) = sum_Vsq(it)/( 2*(nP-1));
p(it) = nP*T(it)/(sL*sL);
pNonIdeal(it) = p(it) + (1/(2*sL*sL))*nonIdealTerm;

답변 (1개)

Walter Roberson
Walter Roberson 2023년 1월 26일
There are a lot of undefined variables there.
There are two possibilities:
  1. There might be another script that you have to execute that defines the variables; OR
  2. This code might originally have been part of a function, but the function line might have been removed. The code might be intended to be invoked as a function passing in values of the missing variables.

카테고리

Help CenterFile Exchange에서 Chemistry에 대해 자세히 알아보기

태그

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by