Sha256: 222b66aa1e5b8468bdcec3961fa5492e7f3f84eff218d1c764c642ee66d19e8c

Contents?: true

Size: 576 Bytes

Versions: 2

Compression:

Stored size: 576 Bytes

Contents

require 'symath/value'
require 'symath/definition/operator'

module SyMath
  class Definition::Div < Definition::Operator
    def initialize()
      # Div is defined as *d*(Fb)
      super(:div, args: [:f], exp: 'hodge(xd(hodge(b(f))))')
    end

    def description()
      return 'div(f) - divergence of vector field f'
    end

    def evaluate_call(c)
      if SyMath.get_variable(:basis.to_m).row(0).length != 3
        raise 'Div is only defined for 3 dimensions'
      end

      super(c)
    end

    def latex_format()
      return '\nabla\cdot %s'
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
symath-0.1.1 lib/symath/definition/div.rb
symath-0.1.0 lib/symath/definition/div.rb