Module: GrayScott::Utils::Math

Defined in:
lib/gray_scott/utils/math.rb

Constant Summary collapse

A =

To avoid mistakes

(1..-1).freeze
B =
(0..-2).freeze
T =
true

Class Method Summary collapse

Class Method Details

._laplacian2d(uv, dx) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/gray_scott/utils/math.rb', line 9

def self._laplacian2d(uv, dx)
  l_uv = uv.new_zeros
  l_uv[A, T]._ + uv[B, T]
  l_uv[T, A]._ + uv[T, B]

  l_uv[0, T]._ + uv[-1, T]
  l_uv[T, 0]._ + uv[T, -1]

  l_uv[B, T]._ + uv[A, T]
  l_uv[T, B]._ + uv[T, A]

  l_uv[-1, T]._ + uv[0, T]
  l_uv[T, -1]._ + uv[T, 0]

  l_uv._ - (uv * 4)
  l_uv._ / (dx * dx)
  l_uv
end