1
$\begingroup$

I am simulating the propagation of a light pulse using the equation $$\frac{\partial}{\partial z}A=\frac{1}{2\cdot k_0}\nabla^2_rA$$ with $$k_0=\frac{2\pi}{\lambda_0}$$ The propagation with a step size of $dz$ is done using the equation $$\left(\vec{1}-i\cdot\frac{dz}{2}\nabla^2_r\right)A_{n+1}=\left(\vec{1}+i\cdot\frac{dz}{2}\nabla^2_r\right)A_n$$ with $$A_0(\vec{r})=\exp\left(-\frac{r^2}{2}\right)$$ Now I add a lens with a focal length of $f$, which is done using the equation $$A_{0,L}=A_0\exp\left(-i\frac{\left\vert\vec{r}\right\vert^2}{2f}\right)$$ My problem is now: I discretize $A$ along a vector $\vec{r}$ from $0$ to $r_{max}$ with $r_{num}$ elements (radial approach). That works for $F>F_{crit}$. If $F<F_{crit}$, the oscillations of the lens factor are not properly resolved anymore, resulting in artifacts in the simulation. enter image description here For my current input values I need at least more than $50000$ points, but even that is not enough due to a small value for $F$.

Using that amount of points increases the amount of computation time and (when displaying the moving pulse) the amount of storage. Is there any way to decrease the amount of points, while still being able to resolve the lens oscillations? I am already using sparse matrices for the calculation, but for storage I have to use a dense matrix.

$\endgroup$
5
  • $\begingroup$ Why do you have to use a dense matrix for storage? $\endgroup$
    – Anton Menshov
    May 23, 2017 at 22:16
  • $\begingroup$ When storing the steps, I get a dense matrix. When reducing the amount of points I use for storage, my resolution is going down (what I prefer not to have) $\endgroup$
    – arc_lupus
    May 24, 2017 at 5:36
  • $\begingroup$ Regarding storing the steps: as far as I understand, you don't have to store all of them in the RAM, but output already computed and not needed one to disk. That will save a lot of storage, thus make the required amount of RAM (which is often the bottleneck) much lower. And separating visualization from computation is usually a good practice. $\endgroup$
    – Anton Menshov
    May 24, 2017 at 12:35
  • $\begingroup$ Regarding your discretization density, I am not an expert in light propagation, but usually, people start from $\lambda/10$ discretization in each spatial dimension. What is your $\lambda$ now, and how 50000 points correspond to this working wavelength? In other words, could you express your $\Delta x$, $\Delta y$, $\Delta z$ in terms of $\lambda$? (btw, is your problem 1-D, 2-D, or 3-D?) $\endgroup$
    – Anton Menshov
    May 24, 2017 at 12:39
  • $\begingroup$ My problem is 2d in cylindrical coordinates. My $\lambda_0$ is 1.2µ (at the moment), which would make $dr=1.2\cdot10^{-7}$, or if I choose a radius $r_{max}=5\cdot10^{-3}$, I have to use approximately 50000 points. $\endgroup$
    – arc_lupus
    May 24, 2017 at 12:43

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.