D'après le code Matlab, tous les calculs sont décomposés par "cellule" de taille :
ax = \frac{D}{\sqrt{C}}
ax=D/C^0.5;X=(0:ax:largeur);ifcond_geo==1;pentelat=0;cote0=cote;cote_bas=cote0+X.*pentelat;elseifcond_geo==2pentelat=(cote_gauche-cote_droit)/largeur;cote0=cote_gauche;cote_bas=cote0+X.*pentelat;elseifcond_geo==3l2=cumsum(Largeur);l2=[0l2];pentelat=0;cote0=min(cote);fort=1:length(X)forii=1:length(l2)-1ifX(t)<=l2(ii+1)&X(t)>=l2(ii)cote_bas(t)=cote(ii);endendendend%--posion de calcul de la hauteur moyenne pour une cellule (gestion de%nombre de cellule non entière)reste_ax=largeur-Nplot*ax;ifreste_ax>0.5*axNplot=Nplot+1;reste_largeur=largeur-Nplot*ax-0.5*ax;Xcalcul_droit=((Nplot*ax-ax/2)+largeur)/2;%milieu entre le dernier plot et le bord droitX=[XXcalcul_droit];elseifreste_ax<0.5*axreste_largeur=reste_ax;Xcalcul_droit=(largeur+Nplot*ax)/2;%milieu entre le dernier plot et le bord droitX=[X(1:end-1)Xcalcul_droit];endforii=1:Ncondifcond_geo<3;pf(ii,:)=data_cond(ii,1)-cote0+X(:)*(pentelat);elsepf(ii,:)=data_cond(ii,1)-cote_bas(:);endforjj=1:length(X)ifpf(ii,jj)<0;pf(ii,jj)=0;endq0=(2*g.*S.*D.*(1-(sigma*C))./(Cd.*C.*(1))).^0.5*pf(ii,jj);[q(ii,jj)res]=fminsearch(@(Qi)find_Q_nat(cote_bas(jj),ks,D,h,Cd,S,1,pf(ii,jj),C,Qi,sigma),q0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx));P(ii,jj)=1000*9.81*q(ii,jj)*ax*S*ax/(ax^2*pf(ii,jj));V(ii,jj)=q(ii,jj)./pf(ii,jj);ifpf(ii,jj)>1.1*h[ZUtotal]=plot_profil(cote_bas(jj),ks,D,h,Cd,S,1,pf(ii,jj),C,q(ii,jj));Vg(ii,jj)=Utotal(11);elseVg(ii,jj)=q(ii,jj)./pf(ii,jj)./(1-C^0.5);endFr0(ii,jj)=V(ii,jj)./(9.81*pf(ii,jj))^0.5;Frg(ii,jj)=Vg(ii,jj)./(9.81*pf(ii,jj))^0.5;r=0.4*Cd+0.8;%if Cd>=2 ;r=1.6; else r=1.2; endVmax(ii,jj)=min(r/(1-0.25*Frg(ii,jj)^2),Frg(ii,jj)^(-2/3))*Vg(ii,jj);endQtotal(ii)=0.5*q(ii,1)*ax+sum(q(ii,2:end-1))*ax+q(ii,end)*reste_largeur;end
La seule utilité de décomposition à cette taille concerne le radier incliné pour les autres cas cela revient à répéter le même calcul plusieurs fois.
Pour le radier multiple, le débit ne sera pas exactement identique à la somme des calculs des radiers séparés car le découpage entre les radiers s'effectue à plus ou moins ax.
By Dorchies David on 2019-08-09T17:12:07 (imported from GitLab)