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
no type nco radius phi alpha current condname n1 n2 imag turn
0 1 1 9 43.9 0.157 0 12000 YELLONOU 2 18 0 0
1 2 1 16 43.9 22.000 27 12000 YELLONOU 2 18 0 0
2 3 1 5 28.0 0.246 0 12000 YELLONIN 2 14 0 0
3 4 1 5 28.0 22.000 24 12000 YELLONIN 2 14 0 0
4 5 1 3 28.0 47.000 48 12000 YELLONIN 2 14 0 0
5 6 1 2 28.0 66.000 68 12000 YELLONIN 2 14 0 0


Update alpha angle of block no 4

# Dataframe index 3 corresponds to Block no 4
rib.block.loc[3, "alpha"] = 23.2

rib.block
no type nco radius phi alpha current condname n1 n2 imag turn
0 1 1 9 43.9 0.157 0.0 12000 YELLONOU 2 18 0 0
1 2 1 16 43.9 22.000 27.0 12000 YELLONOU 2 18 0 0
2 3 1 5 28.0 0.246 0.0 12000 YELLONIN 2 14 0 0
3 4 1 5 28.0 22.000 23.2 12000 YELLONIN 2 14 0 0
4 5 1 3 28.0 47.000 48.0 12000 YELLONIN 2 14 0 0
5 6 1 2 28.0 66.000 68.0 12000 YELLONIN 2 14 0 0


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)

Gallery generated by Sphinx-Gallery