SIMION® Industry standard charged particle optics simulation software.
Newsflash: SIMION 8.1.1 is here: dielectrics, new examples + preview of permeability; ASMS2012 posters; major improvements to enhanced surface accuracy feature coming soon (details in Check for Updates).
About | Documentation | Community/Support | Downloads | Ordering

simionx.Integration - Numerical integration routines

SYNOPSIS

local INT = require "simionx.Integration"

-- Calculate (moment of inertia)/(mass) for sphere
-- of radius 5 via volume integration.
local mass = (4/3)*math.pi*(5)^3
print("Expecting", 10)  -- equals (2/5)*(5)^2
local co = INT.montecarlo_integrate {
  func = function(x,y,z, ux,uy,uz)
    return (x^2 + y^2) / mass
  end,
  shape = INT.sphere_filled(0,0,0, 5),
  min_iterations = 100000, rel_err = 0.001
}
repeat
  local result, result_stdev, count, is_end = co()
  print(result, result_stdev, count, is_end)
until is_end
--[[OUTPUT:
Expecting       10
1.4500000000001 0.56568542494929        2       false
10.201601740376 3.8872192893064 4       false
9.0886283261102 2.6596025108814 8       false
8.8950043916104 1.7139967190583 16      false
9.6281491592971 0.97056736497474        32      false
10.788100218533 0.67870277939624        64      false
10.066399568868 0.39300818193915        128     false
9.9114927256598 0.21441777256434        256     false
10.023885127646 0.12484348660943        512     false
10.008016691338 0.068214699144542       1024    false
10.022640402046 0.038532430498274       2048    false
9.9992880768054 0.021081642551506       4096    false
9.9958532750136 0.011474286260492       8192    false
10.001257767875 0.0061146278362448      16384   false
10.000726899752 0.0034332557814447      30709   false
9.998853501986  0.0032347632669252      32768   false
10.00004175219  0.0016990547669547      65536   false
9.9999029933063 0.00089307044213873     131072  true
--]]

--- Compute integral from 0..2PI of sin(x) dx.
print("Expecting", 2)
local co = INT.montecarlo_integrate {
  func = function(x) return math.sin(x) end,
  shape = INT.line(0,0,0, math.pi,0,0),
  rel_err = 0.001
}
repeat
  local result, result_stdev, count, is_end = co()
  print(result, result_stdev, count, is_end)
until is_end

Note

See these additional sections in this topic in the offline SIMION 8.1.0 help file:
  • INTERFACE

SOURCE

D.Manura, 2007-08 (c) 2007 Scientific Instrument Services, Inc. Licensed under the terms of SIMION 8.0.

version: 20071209

Any comments on this web page? (will be sent to SIS)
[Optional] Your name: email: phone/fax:
(c) 2003-2006 Scientific Instrument Services, Inc. (SIS). Contact SIS.