sim-lib-interference-runtime 0.1.0

Tensor-backed Citizen records and Shape contracts for coherent interference studies.
Documentation
(let ((problem
        (interference/problem
          (expr:map
            [frequency-hz 1000.0]
            [speed-m-s 343.0]
            [attenuation-np-m 0.0]
            [singularity-radius-m 0.01]
            [sources
              '((expr:map
                  [kind point]
                  [id left]
                  [position-m (-0.25 0.0 0.0)]
                  [amplitude-at-reference 1.0]
                  [phase-rad 0.0])
                (expr:map
                  [kind point]
                  [id right]
                  [position-m (0.25 0.0 0.0)]
                  [amplitude-at-reference 1.0]
                  [phase-rad 3.141592653589793]))]))))
  (let ((plane
          (interference/sampling-plane
            (expr:map
              [origin-m '(-1.0 -1.0 0.5)]
              [u-axis '(1.0 0.0 0.0)]
              [v-axis '(0.0 1.0 0.0)]
              [extent-u-m 2.0]
              [extent-v-m 2.0]
              [rows (expr:number citizen/int "128")]
              [cols (expr:number citizen/int "128")]))))
    (realize
      (interference/solve problem plane
        (expr:map [sampling strict] [work-budget default]))
      :fabric core/local-fabric
      :result interference/Study)))