User Tools

Site Tools


lua_scripting_tips

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lua_scripting_tips [2024/07/24 23:09]
stanzurek [FOR loop and IF statement]
lua_scripting_tips [2025/03/09 10:59] (current)
stanzurek [Rounding in LUA]
Line 37: Line 37:
 There is no need to pre-declare the "counting" variable ("n" in the example above). It gets declared at the point of use directly. There is no need to pre-declare the "counting" variable ("n" in the example above). It gets declared at the point of use directly.
  
-The functions of AND and OR+===== The functions of AND and OR =====
 <code> <code>
         if (n<15 and x>0) then         if (n<15 and x>0) then
Line 85: Line 85:
 ''C:\femm42\bin\init.lua'' (or depending where FEMM was installed into). ''C:\femm42\bin\init.lua'' (or depending where FEMM was installed into).
  
-==== Sequential file names ====+===== Sequential file names =====
 Sometimes results need to be written into files whose numbers increase in a sequence. This can be achieved by using the structure as in the example below, where: ''"string"..n.."string"'' allows including the variable "n" in the name: Sometimes results need to be written into files whose numbers increase in a sequence. This can be achieved by using the structure as in the example below, where: ''"string"..n.."string"'' allows including the variable "n" in the name:
  
Line 103: Line 103:
 {{page>insert/paypal}} {{page>insert/paypal}}
  
-==== Complex numbers ====+===== Complex numbers =====
 Lua in FEMM handles complex numbers automatically, for example: Lua in FEMM handles complex numbers automatically, for example:
-<code>+<code lua>
 a = 1 + I*2 a = 1 + I*2
 b = 0.3 - I*0.4 b = 0.3 - I*0.4
Line 114: Line 114:
 im(b) = -0.4 im(b) = -0.4
 abs(b) = 0.5 abs(b) = 0.5
 +</code>
 +
 +===== Automatic limits in colour maps =====
 +Full command executed with just the legend parameter set to -1 shows default limits for the legend. This seems to work in pure LUA, and mo_showdensityplot(-1) does not work even in pure LUA:
 +
 +<code lua>
 +mo_showdensityplot(legend,gscale,upper_B,lower_B,type)
 +mo_showdensityplot(-1,0,0,1,"bmag"
 +</code>
 +
 +legend: Set to 0 to hide the plot legend or 1 to show the plot legend.
 +
 +(note that: ''mo_showdensityplot(-1)'' will not work).
 +  
 +
 +===== Rounding in LUA =====
 +Rounding does not appear to be immediately available in LUA 4.0. Teh
 +
 +<code lua>
 +function round_LUA(var_input, round_precision)
 +
 +var_floor = floor(var_input/round_precision)*round_precision
 +var_ceil = ceil(var_input/round_precision)*round_precision
 +var_rounded = var_floor
 + 
 +if (var_input > (var_floor + 5*round_precision/10) ) then
 +var_rounded = var_ceil
 +end
 +
 +return(var_rounded)
 +
 +end -- end function
 +
 +var_input = 123.44900000003   -- input variable to be rounded
 +round_precision = 10     -- rounding precision, use: 100, 10, 1, 0.1, 0.01 etc.
 +
 +var_output = round_LUA(var_input, round_precision)
 +
 +print(var_input)
 +print(var_output)
 +
 </code> </code>
lua_scripting_tips.1721855359.txt.gz ยท Last modified: 2024/07/24 23:09 by stanzurek