time looping or increment not updating

Hi all,
I have to time loop/time increment with the code: t=deltat:deltat:3600*5;
Even by varying the time t in the for loop I could not find any change. Please suggest me whether the time looping which I had mentioned is correct or else I have to follow some other steps.
When I plot with the output value of F vs -Z at any time I get the same ans. Simila case with plot u vs -Z.
Please help me in time looping/incrementing. Thank you in advance
alpha=(17*pi)/180; %slope angle
dz=200; %depth of water table from the suface
dlz=400; % toltal depth of slope
fi=(25*pi)/180; %friction angle
C=0.004; %4 kpa=0.4 N/cm^2
gsat=0.021; %21 kN/m^3
gw=0.0098; %9.81 Kn/m^3
Dzero=4; %0.0004m^2/s
ksat=1e-3; %e-5 m/s
iz=2e-4; %iz=7.2 mm/h= 2e-4 cm/s
deltat=10; %time step
deltaz=0.8; %space step
T=12*60*60; %time duration of rainfall= 12h to seconds
e=(deltat/deltaz^2)*Dzero*cos(17*pi/180)*cos(17*pi/180);
n=500; % number of nodes
nt=4320; %time step, based on T
Z=linspace(deltaz,400,500); %Depth in cm
%Setup sparse matrix
si=(Z-dz)*cos(alpha)*cos(alpha); %Initial condition ...i.e.
%pressure head @t=0 all along the depth
if true
% code
end
si=si';
a=-e*ones(n,1); % lower Triagonal vectors
% a(1)=0; a(n)=-114.314; a=a';
b=116.314*ones(n,1); % Diagonal vectors
b=b';
c=-e*ones(n-1,1);% Upper trigonal vector
% c(1)=-114.314; c(n)=0; c=c';
d=ones*(n-2:1);
for t=deltat:deltat:3600*5;
for w=2:499
d(w)=e*si(w-1)-112.314*si(w)+e*si(w+1); % Rhs vector
end
if t>T
d(1)=-112.314*si(1)+114.314*si(2)-130.686;
else
d(1)=-112.314*si(1)+114.314*si(2)-167.264; % t<=T
end
d(500)=114.314*si(499)-112.314*si(500)+167.264; % Boundary condition...
%at the bottom of the slope at all values of t
end
A=ones*(n-1:1);
S=ones*(n-1:1);
d=d';
A(1)=b(1); % A(1)=alpha one=b(1)
S(1)=d(1); % S(1)=Rhs(1)
for i=2:n %varies from 2 to n
A(i)=b(i)-((a(i)/(A(i-1))*c(i-1)));
S(i)=d(i)+((a(i)/(A(i-1))*S(i-1)));
end
A=A';
S=S';
u(n)=S(n)/A(n); %u(N-1)=S(N-1)/A(N-1), "M*u=S", solve for u with M known...
% ... trigonal matrix and S= known Rhs vector
for t=deltat:deltat:3600*18;
for j=n-1:-1:1
% for w=10:10:4320
u(j)=(1/A(j))*(S(j)+(c(j)*u(j+1)));
end
end
% disp([t u]);
u=u';
if u(1)<=0 %Check for ponding
Fs=(tan(fi)/tan(alpha))*ones(n,1); %Gravity component
Fs=Fs';
Fw=(-u*gw*tan(fi))./(gsat*Z'*sin(alpha)*cos(alpha)); %Water pressure ...
%component
Fw=Fw';
Fc=C./(gsat*Z'.*sin(alpha)*cos(alpha)); %Cohesion component
Fc=Fc';
F=Fs+Fw+Fc; %FOS for slope
elseif soln(1)<=0 && (t<T)
d(1)=-114.314*si(1)+114.314*si(2)-130.686;
elseif soln(1)>0 &&(t<T)
soln(1)=0;
else
d(1)=-114.314*si(1)+114.314*si(2)-167.264;
end
Fs=(tan(fi)/tan(alpha))*ones(n,1); %Gravity component
Fs=Fs';
Fw=(-u*gw*tan(fi))./(gsat*Z'*sin(alpha)*cos(alpha)); %Water pressure ...
%component
Fw=Fw';
Fc=C./(gsat*Z'.*sin(alpha)*cos(alpha)); %Cohesion component
Fc=Fc';
F=Fs+Fw+Fc; %FOS for slope
if true
% code
end

2 Kommentare

Geoff Hayes
Geoff Hayes am 26 Sep. 2014
When you say Even by varying the time t in the for loop I could not find any change, which t are you varying? t is an index in the for loop, so that can't be it. Is it the deltat that you are changing, and if so, to what?
Stephen23
Stephen23 am 26 Sep. 2014
As an aside, you should avoid naming variables i and j, as these are the inbuilt imaginary unit . Accidentally overloading inbuilt functions and variables can cause all sorts of very-difficult-to-figure-out problems later...

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Star Strider
Star Strider am 26 Sep. 2014

0 Stimmen

I didn’t run your code, but it seems that none of your variables inside either of your ‘t’ loops are actually functions of ‘t’. They simply loop endlessly over the same values.

2 Kommentare

advaita vedanta’s ‘Answer’ moved here:
@Star strider, yes what you mentioned I agree, I am confused on how to assign.
Thank you
Star Strider
Star Strider am 27 Sep. 2014
What are your original functions?
How are they functions of time?

Melden Sie sich an, um zu kommentieren.

advaita vedanta
advaita vedanta am 27 Sep. 2014

0 Stimmen

@Geoff Hayes, I am mentioning time t, actually I want to know the output (u,F) for different values of time t, which I had mentioned in the for loop [not deltat). please correct me. Thank You

Gefragt:

am 26 Sep. 2014

Kommentiert:

am 27 Sep. 2014

Community Treasure Hunt

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

Start Hunting!

Translated by