/out,mmf_,out
/gopr
*get,_mnu,active,,menu
*if,_mnu,eq,0,then
_dely=0
*else
_dely=0
*endif
*get,_arout,active,,rout
*if,_arout,ne,31,then
fini
/post1
*get,_arout,active,,rout
*endif
*if,_arout,eq,31,then
_dummy=1
mmf=
*get,_unit,active,,solu,emunit
*get,_mu,active,,solu,muzro
*get,_dimn,active,,solu,dimn
*if,_unit,gt,2,then
*msg,error
Invalid units option specified, please reissue command macro
/wait,_dely
_ok=1
*endif
*get,_nc,path,,node,count
*if,_nc,eq,0,then
*msg,error
The path for calculating the mmf must be defined first
_ok=1
*endif
*if,_ok,eq,0,then
*get,_sysr,active,,rsys
*get,_sysd,active,,dsys
_sysd=0
*get,_sysc,active,,csys
_afun=atan(1)
*if,_afun,gt,1,then
*afun,rad
*endif
_pi4=16*atan(1)
/NOPR
dsys
RSYS,0
CSYS,0
/uis,msgpop,3
/uis,msgpop,0
pmap,accurate,mat
PDEF,HX,H,X,NOAV
PDEF,HY,H,Y,NOAV
PDEF,HZ,H,Z,NOAV
PVECT,TANG,TX,TY,TZ
PDOT,D,HX,HY,HZ,TX,TY,TZ
PCALC,INTG,MMF,D,S
*GET,mmf,PATH,,LAST,MMF
*IF,_unit,EQ,2,THEN
mmf=mmf/_pi4
*ENDIF
/out,mmf,sum
*msg,info
%/________________ SUMMARY OF MMF CALCULATION____________________
/wait,_dely/2
*if,_unit,le,1,then
*msg,info,mmf
%/MMF = %G Ampere %/
/WAIT,_dely
*elseif,_unit,eq,2,then
*msg,info,mmf
%/MMF = %G AbAmpere %/
/WAIT,_dely
*endif
*msg,info
NOTE:
*msg,info
Parameter defined for magnetomotive force : MMF
*msg,info
Path Items for plotting:
*msg,info
"D" H tangential
*msg,info
"MMF" MMF from path start to current position on path
*msg,info
____________________________________________________________
/out
rsys,_sysr
dsys,_sysd
csys,_sysc
*if,_afun,gt,1,then
*afun,deg
*endif
_afun=
*endif
_sysr=
_sysd=
_sysc=
_pi4=
_dummy=
_unit=
_dimn=
_mu=
_nc=
*endif
*if,_mg1,ne,1,then
_mg1=0
*endif
*if,_mg2,ne,1,then
_mg2=0
*endif
*if,_ok,ne,1,then
*if,_mg1,ne,1,then
*if,_mg2,ne,1,then
*if,_mnu,ne,1,then
*list,mmf,sum
*else
*list,mmf,sum
*uilist,mmf,sum
*endif
*endif
*endif
*endif
*if,_ok,eq,1,then
_ok2=1
*endif
_arout=
_mnu=
_ok=
_dely=