Advertisement
Guest User

Untitled

a guest
Nov 25th, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. public DoubleArray SmoothFourierReflectiveBC(double width)
  2. {
  3. Complex[] bed = new Complex[Length*2];
  4. //double norm = 1.0 / Math.Sqrt(2 * Math.PI * width * width);
  5. for (int i=0;i<Length;i++)
  6. {
  7. bed[i] = this[i];
  8. bed[Length*2-1-i] = this[i];
  9. }
  10. MathNet.Numerics.IntegralTransforms.Fourier.Forward(bed);
  11. for (int i = 0; i < Length * 2; i++)
  12. {
  13. double k = i;
  14. if (k>Length) k = Length*2 - i;
  15. k = k / (2*Length);
  16. double a2 = 2 * width * width * Math.PI * Math.PI * k * k;
  17. bed[i] *= Math.Exp(-a2);
  18. }
  19. MathNet.Numerics.IntegralTransforms.Fourier.Inverse(bed);
  20. DoubleArray da = new DoubleArray(Length);
  21. for (int i = 0; i < Length; i++)
  22. {
  23. da[i] = bed[i].Real;
  24. }
  25. return da;
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement