Hi, my code is throwing up the error shown below, can anyone help solve the cause of the issue?
Operands to the || and && operators must be convertible to logical scalar values.Error in sym/vpaintegral (line 182) (isinf(b) && isempty(symvar(b)) && ~isreal(b))Error in BASICscript (line 66) k_timedependant(i)=K_quasistatic(i)*(1.25*vpaintegral(sigma_prime(i),s,0,t(i)-tau)+vpaintegral(sigma_prime(i)*sqrt(t(i)-s),s,t(i)-tau,t(i)));
I can't quite figure out why as those operators arn't part of the code and I don't understand vpaintergral enough to know if that's the issue… It does seem to run two iterations before bowing out…
Any help would be much appreciated.
The code is as below,
syms z s %Droplet properties
r=0.001; % droplet radius (m)
V=400; % impact velocity (m/s)
rho=997; % at room temp (kg/m^3)
Initial_c=30e-6 %Glass properties
pois=0.25; Beta=(1-2*pois)/2; K_IC=0.75e6; %Rayleigh Stress wave
const=2; % Constant defined in interim report
Co=1500; % Acoustic velocity(m/s)
Cr=Co+(const*V); % Rayleigh wave velocity (m/s)
sigma_max=rho*Cr*V*Beta; k=(2*pi*Initial_c^2)/(3*Cr*r*V); sigma_z=sigma_max*(exp(-0.8475*k*z)-0.5773*exp(-0.3933*k*z)); v_max=1580; %maximum crack velcoity (m/s)
%Triangular Wave
midpoint=(3*r*V)/(2*Cr^2); grad=sigma_max/midpoint; %Initialisation
crack_growth=0 final_t=3e-7; iterations=1000; t = [0:final_t/(iterations):final_t]; for i = 1:iterations+1; %Calculation of Velocity Term
%Initialisation if i>1 c(i)=c(i-1) v_inst(i)=0 if v_inst(i-1)==0; k_velocity(i)=1; else k_velocity(i)=1/((1+(v_inst(i-1)/(Cr-v_inst(i-1))))*(1-((0.531*v_inst(i-1))/Cr))^0.5); end else k_velocity(i)=1; c(i)=Initial_c end %Sigma prime designation
if t(i)>midpoint sigma_prime(i)=-(grad); else sigma_prime(i)=(grad); end %Calculation of Quasi-Static and Time-Dependant Terms
funct(i)=(1-(z/c(i))^2)*(0.2945-0.3912*(z/c(i))^2+0.7685*(z/c(i))^4-0.9442*(z/c(i))^6+0.5094*(z/c(i))^8); K_quasistatic(i)=2*sqrt(c(i)/pi)*vpaintegral((sigma_z*(1+funct(i)))/sqrt(c(i)^2-z^2),z,0,c(i)); tau(i)=((1.25^2*pi^2)*c(i))/(4*Cr); k_timedependant(i)=K_quasistatic(i)*(1.25*vpaintegral(sigma_prime(i),s,0,t(i)-tau)+vpaintegral(sigma_prime(i)*sqrt(t(i)-s),s,t(i)-tau,t(i))); %Dynamic Stress intensity factor calculation
K_D(i)=k_velocity(i)*K_quasistatic(i)*k_timedependant(i); %Stress intensity factor comaprision check
if K_D(i)>K_IC %Crack Velcocity Calculation
v_inst(i)=v_max*(1-(K_IC/K_D)^2); if i>1 v_avg(i)=(v_inst(i)+v_inst(i-1)/2); crack_growth(i)=crack_growth(i)+(v_avg(i)*(t(i)-t(i-1))); c(i)=Initial_c+crack_growth(i); else v_avg(i)=0; crack_growth(i)=0; c(i)=Initial_c; end else v_avg(i)=0; crack_growth(i)=0 c(i)=Initial_c; end end
Best Answer