function [Y,LFP]=runSheetDelayRamp(y0,parameters)
%this is an fixed step solver with a noise term as subcortical input and
%delay
nsq=parameters.n^2;
h=parameters.h;
ds=parameters.delaysteps;
SigThresh=parameters.SigThresh;
SigSteepness=parameters.SigSteepness;
tauPy=parameters.tauPy;
tauInh=parameters.tauInh;
neq = 2*parameters.n^2;
Nl = size(parameters.NValue,2);
Y = zeros(neq,Nl+ds);
LFP=zeros(neq/2,Nl+ds);
Y(:,1:ds) = y0;
for i = ds:ds+Nl-1
Py=Y(1:nsq,i-ds+1:i);
Inh=Y(nsq+1:2*nsq,i);
PyPyInp=zeros(size(Py,1),1);
PyInhInp=zeros(size(Inh,1),1);
for k=1:ds
dsk=ds-k+1;
PyPyInp=PyPyInp+parameters.Py2Py{k}*Py(:,dsk);
if k<=length(parameters.Py2Inh)
PyInhInp=PyInhInp+parameters.Py2Inh{k}*Py(:,dsk);
end
end
PyLFP=PyPyInp - parameters.Inh2Py*Inh + parameters.PyInput(:,i) + parameters.NValue(:,i-ds+1);
dPydt =(-Py(:,end) + Sigm(PyLFP, SigThresh,SigSteepness))./tauPy;
dInhdt =(-Inh + Sigm(PyInhInp + parameters.InhInput, SigThresh,SigSteepness))./tauInh;
Y(:,i+1) = Y(:,i) + h*[dPydt;dInhdt];
LFP(:,i+1) = PyLFP;
end
Y = single(Y)';
LFP=single(LFP');
end