function [  ] = kiniso(  )
% Aufgabe2 kinematisch+isotrop
close all
clc
%Definition der Materialparameter
EH=210000;% [MPa=N/mm²] 
EK=10000;% [MPa=N/mm²]
%Einheit EPunkt = 1/s
% Konstante Dehnrate für 0.02/s für 25s, danach Dehnrate 0 für weitere 25s
t_end=100; %[s]
dt=0.01; % [s]  
% Initialisieren (Ich lege eine Variable an, sodass sie überhaupt besteht)
epsilonNK=0;
%epsilonNKnew=0;    %Dehnung Kelvin-Voigt Körper
sigma=0;           %Spannung
dotenew=0;         %Dehnung, Epsilon neu
enew=0;            %Dehnung, Epsilon
steptime=0; 
e_array=0;         %Ausgabe Graph von enew
time=0;
blocker=0;

%aufgabe 2
epsilonKnew=0;
sigmaY=500;
                           
i=1;                       %Laufvariable
while steptime<t_end       %wenn steptime kleiner als t_end ist dann...
    

    
    if enew<=0.01999;          %steptime<=20
      % blocker>0          %Dehnung, Epsilon
    
    %else blocker  
       %steptime<=10        %wenn steptime kleiner gleich 10 ist...
                 
       dotenew=+0.001;     %Dehnrate
    else 
   %  enew>=-0.02;           %Dehnung, Epsilon
      dotenew=-0.001;       %Dehnrate
      blocker=1;
      %bis -0.02 erreicht wurde, dann wieder dotenew+0.001
    end
    e_array(i)=enew;       %Wird nur angegeben, um am Ende zu plotten
    time(i)=steptime;      %Wird nur angegeben, um am Ende zu plotten
    
    if i==1
       %alt [sigma(i),epsilonNK(i),epsilonH(i)]=maxwell_element(EH,EK,etaK,dt,epsilonNK,enew);   
            [epsilonKnew(i),gammaKnew(i),sigma(i),epsilonNK(i)]=kiniso_element(EH,EK,enew,epsilonKnew,sigmaY);
    else
       %alt  [sigma(i),epsilonNK(i),epsilonH(i)]=maxwell_element(EH,EK,etaK,dt,epsilonNK(i-1),enew);
             [epsilonKnew(i),gammaKnew(i),sigma(i),epsilonNK(i)]=kiniso_element(EH,EK,enew,epsilonKnew(i-1),sigmaY);
    end
    
    steptime=steptime+dt;
    enew=enew+dt*dotenew;
    
    i=i+1;
end
%hold on
%plot(e_array,sigma) %x,y (Dehnung,Spannung)erray=enew
%plot(sigma,e_array)
plot(time,e_array)
%plot(time,enew)
%legend('strain','stress')
%plot(t, sigma)
%plot(time,sigma)
%plot(time,e_array)
%legend('time(s)','strain')


end

function[epsilonKnew,gammaKnew,sigmanew,sigmaHKnew]=kiniso_element(EH,EK,epsilonnew,epsilonKn,sigmaY) %Eingabe und Ausgabe Variable
    %1
    %epsilonCn und epsilonnew gegen aus vorherigen Zeitschritt?ist oben
    %eingefügt!
        
    %2
    sigmatr=EH*(epsilonnew-epsilonKn); 
    sigmaHKtr=EK*(epsilonKn);          
    phitr=abs(sigmatr-sigmaHKtr)-sigmaY;
        
    %3
    if phitr<0
    sigmanew=sigmatr;
    sigmaHKnew=sigmaHKtr;
    epsilonKnew=epsilonKn; 
    gammaKnew=0;
 
    else phitr>0;
    %4
    betrag=sigmatr-sigmaHKtr;
    gammaKnew=((abs(betrag)-sigmaY)/(EH+EK));
    epsilonKnew=epsilonKn+sign(sigmatr-sigmaHKtr)*gammaKnew;
    sigmanew=EH*(epsilonnew-epsilonKnew);
    sigmaHKnew=EK*epsilonKnew;
    end
     
end
