Note
Go to the end to download the full example code.
Manipulate Datafiles¶
This snippet loads a datafile and modifies its contents
Download Input files
Setting up¶
Load Datafile into RoxieInputBuilder object
import pathlib
import tempfile
from roxieapi.input.builder import RoxieInputBuilder
folder = pathlib.Path("../input_files").absolute()
datafile = "dipole_2d.data"
rib = RoxieInputBuilder.from_datafile(folder / datafile)
Change flags and metadata¶
rib.comment = "Python modified datafile"
rib.flags["LDEBUG"] = True
rib.flags["LFORCE2D"] = True
rib.flags
{'LEND': False, 'LWEDG': False, 'LPERS': False, 'LQUENCH': False, 'LALGO': False, 'LQUENCH0D': False, 'LMIRIRON': False, 'LBEMFEM': False, 'LPSI': False, 'LSOLV': False, 'LIRON': False, 'LMORPH': False, 'LHMO': False, 'LHARD': False, 'LPOSTP': False, 'LPEAK': True, 'LINMARG': True, 'LMARG': False, 'LSELF': False, 'LMQE': False, 'LINDU': False, 'LEDDY': False, 'LSOLE': False, 'LFLUX': False, 'LFIELD3': False, 'LSELF3': False, 'LBRICK': False, 'LLEAD': False, 'LVRML': False, 'LOPERA': False, 'LOPER20': False, 'LANSYS': False, 'LRX2ANS': False, 'LANS2RX': False, 'LDXF': False, 'LMAP2D': False, 'LMAP3D': False, 'LEXPR': False, 'LFIL3D': False, 'LFIL2D': False, 'LCNC': False, 'LANSYSCN': False, 'LWEIRON': False, 'LCATIA': False, 'LEXEL': False, 'LQVOLT': False, 'LFORCE2D': True, 'LQUNPLOT': False, 'LAXIS': True, 'LIMAGX': True, 'LIMAGY': True, 'LRAEND': False, 'LMARKER': False, 'LROLER2': False, 'LROLERP': False, 'LIMAGZZ': False, 'LSUPP': False, 'LSTEP': False, 'LIFF': False, 'LICCA': False, 'LICC': False, 'LICCIND': False, 'LITERNL': False, 'LTOPO': False, 'LQUEN3': False, 'LAYER': True, 'LEULER': True, 'LHEAD': True, 'LPLOT': True, 'LVERS52': True, 'LHARM': True, 'LMATRF': True, 'LF3LIN': True, 'LKVAL': False, 'LDEBUG': True}
Check defined Blocks¶
rib.block
Update alpha angle of block no 4
# Dataframe index 3 corresponds to Block no 4
rib.block.loc[3, "alpha"] = 23.2
rib.block
Generate new datafile¶
tmp_dir = pathlib.Path(tempfile.gettempdir())
tmp_file = tmp_dir / "temp.data"
rib.build(str(tmp_file))
with open(tmp_file, "r") as f:
print(f.read())
VERSION 22.1.0
'Python modified datafile'
'roxie.bhdata'
'roxie.cadata'
'none '
&OPTION
LEND=F LWEDG=F LPERS=F LQUENCH=F LALGO=F LQUENCH0D=F
LMIRIRON=F LBEMFEM=F LPSI=F LSOLV=F LIRON=F LMORPH=F
LHMO=F LHARD=F LPOSTP=F LPEAK=T LINMARG=T LMARG=F
LSELF=F LMQE=F LINDU=F LEDDY=F LSOLE=F LFLUX=F
LFIELD3=F LSELF3=F LBRICK=F LLEAD=F LVRML=F LOPERA=F
LOPER20=F LANSYS=F LRX2ANS=F LANS2RX=F LDXF=F LMAP2D=F
LMAP3D=F LEXPR=F LFIL3D=F LFIL2D=F LCNC=F LANSYSCN=F
LWEIRON=F LCATIA=F LEXEL=F LQVOLT=F LFORCE2D=T LQUNPLOT=F
LAXIS=T LIMAGX=T LIMAGY=T LRAEND=F LMARKER=F LROLER2=F
LROLERP=F LIMAGZZ=F LSUPP=F LSTEP=F LIFF=F LICCA=F
LICC=F LICCIND=F LITERNL=F LTOPO=F LQUEN3=F LAYER=T
LEULER=T LHEAD=T LPLOT=T LVERS52=T LHARM=T LMATRF=T
LF3LIN=T LKVAL=F LDEBUG=T
/
GLOBAL2DOPTION 0
GLOBAL3D 0
BLOCK 6
1 1 9 43.9 0.157 0.0 12000 YELLONOU 2 18 0 0
2 1 16 43.9 22.000 27.0 12000 YELLONOU 2 18 0 0
3 1 5 28.0 0.246 0.0 12000 YELLONIN 2 14 0 0
4 1 5 28.0 22.000 23.2 12000 YELLONIN 2 14 0 0
5 1 3 28.0 47.000 48.0 12000 YELLONIN 2 14 0 0
6 1 2 28.0 66.000 68.0 12000 YELLONIN 2 14 0 0
no type nco radius phi alpha current condname n1 n2 imag turn
BLOCKOPTION 0
BLOCK3D 0
BLOCKOPTION3D 0
LEAD 0
BRICK 0
IRONYOKEOPTIONS /
1
scale
100 200
inrad reperm
1
symtype
3 2 1
yzplane zxplane xyplane
1 0 0
mode div sym
IRONYOKE 0
EXTRUSION 0
PERMANENTMAG2 0
PERMANENTMAG1 0
LAYER 2
1 2 1 1 2 /
2 2 1 3 4 5 6 /
no symm typexy blocks
ALGO /
3
algo
DESIGN 3
1 20 25 22 3 PHI 2 2 /
2 45 50 47 3 PHI 2 5 /
3 64 70 66 3 PHI 2 6 /
no xl xu xs genen string act bcs
EULER 0
PEAK 0
TIMETABLE2 0
TIMETABLE1 1
1 0 10 1 0 1 0 0 3 1 2 /
no tds tde ff a b c d nsteps layers
EDDY /
0
pers
EDDYOPTIONS 0
QUENCHG 0
QUENCHEN 0
QUENCHTM 0
QUENCHP 0
QUENCHS 0
HARMONICTABLE 1
1 1 0 0 0 0 17 2 0
no type x y s1 s2 rref bref field
MATRF 1
-60 60 25
-60 60 25
0 0 0 0
start end no field
LINEFIELD 1
1 1 -27 0 27 0 0 100 0
no type xsxo ysyo xegamma yephi1 zephi2 nsteps field
KVALUES 0
HARMONICOPTION 0
GRAPH 4
1 1 ARCL 1 0 |B| 1 0 1 1 1
2 1 PHI 1 0 BR 0 0 2 1 1
3 1 PHI 1 0 BPHI 0 0 2 1 1
4 1 ARCL 1 0 BX 1 0 1 1 1
no type xvalue s1x s2x yvalue s1y s2y plotnbr axes weight
GRAPHOPTION 8
1 TITLE 0 'Path plot ' 1 /
2 TITLE 0 'My harm coil ' 2 /
3 GLABEL 0 '|B| on y=0 ' 1 /
4 XLABEL 0 'x pos in mm ' 1 /
5 YLABEL 0 'Field in T ' 1 /
6 GLABEL 0 'BR ' 2 /
7 GLABEL 0 'BPHI ' 3 /
8 GLABEL 0 'Br on y=0 ' 4 /
no string value label graph
PLOT2D 3
1 80 1 1 0 |B| /
4 80 1 1 0 MATR /
5 80 1 1 1 IRIS GFZ /
no zxaxis colour fquad harmcoil field
PLOT2DOPTION 0
PLOT3D 0
PLOT3DOPTION 0
OBJECTIVE 3
1 B 3 1 3 0 1
2 B 5 1 3 0 5
3 B 7 1 3 0 10
no string s1 s2 oper constr weight
ANSYSOPTIONS /
0
scale
0
scale
0 0 0 0
ang1 ang2 offx offy
QUENCH0D /
0 0 0 0 0 0 0
qini tempq tque leng dtdt deltm currqm
TDEDDY /
0
tseddy
Total running time of the script: (0 minutes 0.050 seconds)