halfway merged and pulled?!

This commit is contained in:
Silas Labor Zizou
2025-12-15 15:41:02 +01:00
parent 7d0a634b87
commit b8cecae895
145 changed files with 19835 additions and 0 deletions

View File

@@ -0,0 +1,39 @@
%function [rOpt,state] = nl_step(state,aOpt,aDz)
function [rOpt_x,rOpt_y] = nl_step(opt_x,opt_y, dz, gamma, chi, use_manakov, beatlength, alpha_lin_x, alpha_lin_y)
if ~use_manakov % CNLSE
rOpt_x = opt_x .* exp( (-1j*(1/3)*gamma*dz).* ...
( (2 + cos(2*chi)^2)*(abs(opt_x).^2) + ...
(2+2*sin(2*chi)^2)*(abs(opt_y).^2) ) );
rOpt_y = opt_y .* exp( (-1j*(1/3)*gamma*dz).* ...
( (2 + cos(2*chi)^2)*(abs(opt_y).^2) + ...
(2+2*sin(2*chi)^2)*(abs(opt_x).^2) ) );
% A_x = opt_x;
% A_y = opt_y;
%
% rOpt_x = 1i* gamma * (abs(A_x).^2 + (2/3 .* abs(A_y).^2) ) .* A_x + ((1i * gamma / 3) * conj(A_x).*(A_y.^2) * exp(-2i * dz * 2*pi / beatlength ));
% rOpt_y = 1i* gamma * (abs(A_y).^2 + (2/3 .* abs(A_x).^2) ) .* A_y + ((1i * gamma / 3) * conj(A_y).*(A_x.^2) * exp(-2i * dz * 2*pi / beatlength ));
else
% estimate effective length of dz (ref?)
if (alpha_lin_x == 0) && (alpha_lin_y == 0)
Leff = dz;
else
Leff = (1-exp(-alpha_lin_x*dz))/alpha_lin_x;
end
%compute power
power = real(opt_x).^2+imag(opt_x).^2+real(opt_y).^2+imag(opt_y).^2;
% power= abs(opt_x).^2+abs(opt_y).^2;
% powers = [powers;power];
Hnl = exp( -1j*8/9*gamma*power*Leff);
rOpt_x = opt_x .* Hnl;
rOpt_y = opt_y .* Hnl;
end
end