1. Limited time only! Sign up for a free 30min personal tutor trial with Chegg Tutors
    Dismiss Notice
Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Computational physics

  1. Apr 3, 2014 #1
    I made this code for a non linear process called Four Wave Mixing in which. Two pulses will enter a fiber to get a new wave called idler and try to amplify the signal but I think it's not working well because of the units so I called them in the figure arbitrary units until the problem is fixed any thoughts how? Here is my code thank you

    clear all;

    T = 500e-12; % Time window (period)
    nt = 2^14; % Number of points
    dt = T/nt; % Time resolution
    % Make w and t windows
    t = ((1:nt)-(nt+1)/2)*dt;
    t = fftshift(t);

    % Create frequency window, then shift it

    w = 2*pi*([-nt/2:nt/2-1])/T;
    w = fftshift(w);
    %Pump pulse probe
    P0 = 100;
    FWHM = 1e-12;
    c = FWHM/(2*sqrt(2*log(2)));
    u0 = sqrt(P0)*exp(-0.5*(t/c).^2);
    %Signal pulse probe
    Ps = 1;
    Ts = 5e-12;
    detun = 6.05e12;

    Pf = Ps*3.042e4;
    detun = detun*2*pi;
    fbw = 0.44/Ts;
    FWHM_omega = 2*pi*fbw;
    c = FWHM_omega/(2*sqrt(2*log(2)));
    uw = sqrt(2*Pf)*exp(-0.25*((w-detun)/c).^2);
    u1 = (ifft(uw));

    u = fftshift(u0+u1);

    figure
    subplot(1,2,1)
    plot(w/(1e12)/(2*pi),abs(fft(u)).^2)
    xlabel('Frequency (THz)')
    ylabel('Arb. Units')
    xlim([-10 10])
    ut = ifft(uw);
    subplot(1,2,2)
    plot(t/(1e-12),fftshift(abs(u).^2))
    xlabel('Time(ps)')
    ylabel('Power (W)')
    xlim([-6 6])

    %split step method
    beta2=0;
    beta3=0; alpha=0;
    h=0.001;%h = L/step_num; % step size in z
    D=(1i.*beta2.*0.5.*w.^2)-((1./6).*1i.*beta3.*w.^3); % dispersion operator
    step_num = 1000; % No. of z steps

    gamma=1;
    temp2=fft(u);
    temp3=temp2.*exp(u.*h.*0.5);
    temp4=ifft(temp3);
    %%%%%%%%%

    for m=1:step_num
    Nonlinear=exp(1i.*h*gamma.*u.^2).*temp4;
    temp5=fft(Nonlinear);
    temp6=temp5.*exp(D.*h./2);
    temp4=ifft(temp6);
    end
    temp8=fft(temp4);
    temp9=temp8.*exp(-1.*(h./2).*D);
    temp10=ifft(temp9);
    % final pulse
    tempo=fftshift(fft(temp10)).*(nt*dt)/sqrt(2*pi); %Final spectrum

    %----Plot output pulse shape and spectrum
    figure;
    subplot(2,1,1);
    plot(t/(1e-12), abs(temp10).^2,'-k'); hold on;
    axis([-20 20 0 inf]);
    xlabel(' Time');
    ylabel(' Power');
    title(' Output Pulse Shape and Spectrum');
    subplot(2,1,2);
    plot(w/(1e12)/(2*pi), abs(tempo).^2, '-k');
    hold on;
    axis([-10 10 0 inf]);
    xlabel('Normalized Frequency');
    ylabel('Spectral Power');
     
  2. jcsd
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook

Can you offer guidance or do you also need help?
Draft saved Draft deleted



Similar Discussions: Computational physics
  1. Computational physics (Replies: 14)

  2. Computational Physics (Replies: 0)

Loading...