Skip to content

Repository files navigation

PyTao

PyTao is Python interface for Tao, which is based on the Bmad subroutine library for relativistic charged–particle and X-ray simulations in accelerators and storage rings.

Documentation for Bmad and Tao, as well as information for downloading the code if needed is given on the Bmad website.

Documentation
Documentation
Documentation

Installation

See the PyTao installation instructions for details. The preferred installation method is using conda:

conda install -c conda-forge pytao

Currently PyTao requires an installed Bmad distribution compiled with the ACC_ENABLE_SHARED="Y" or ACC_ENABLE_SHARED_ONLY="Y" flag. This can be set in the bmad_dist/util/dist_prefs file (the default setting is fine).

Current Build status and Release Info

All platforms:
Name Downloads Version Platforms
Conda Recipe Conda Downloads Conda Version Conda Platforms

Resources

Bmad website

Quickstart

Start a quick PyTao session with IPython using:

$ pytao -init tao.init
----------------------------------------------------------
Initializing Tao object with the following: -init tao.init
Type`tao.` and hit tab to see available commands.
----------------------------------------------------------

In [1]: tao
Out[1]: <Tao init='-init tao.init' so_lib='/path/to/libtao.so'>

To use PyTao's plotting with Matplotlib ("mpl", alternatively Bokeh "bokeh"), use the --pyplot argument.

$ pytao --pyplot=mpl -init "$ACC_ROOT_DIR/bmad-doc/tao_examples/cbeta_cell/tao.init"
------------------------------------------------------------------------------------------------------
Initializing Tao object with: -init /Users/klauer/Repos/bmad/bmad-doc/tao_examples/cbeta_cell/tao.init

Type `tao.` and hit tab to see available commands.
------------------------------------------------------------------------------------------------------

* Matplotlib mode configured. Pyplot available as `plt`. *

Logging

PyTao stays quiet by default. To see its log output, call pytao.configure_logging:

import pytao

pytao.configure_logging(level="DEBUG")

On the command line, use --pylog (e.g. pytao --pylog DEBUG -init tao.init). See the logging documentation for the full details, including writing to a file and controlling how Tao's own message levels map to Python logging.

Release process

To release a new PyTao version with updated bindings for the Fortran functions:

  1. Activate a conda environment with bmad installed with the target version
  2. Double-check that bmad is updated in the environment via conda list |grep bmad
  3. Run bash scripts/bump_minimum_version.sh
  4. Commit, push, merge PR, tag, ...

License

GNU General Public License

About

PyTao is Python interface for Tao, which is based on the Bmad subroutine library for relativistic charged–particle and X-ray simulations in accelerators and storage rings.

Topics

Resources

Stars

12 stars

Watchers

3 watching

Forks

Releases

Sponsor this project

Packages

Used by

Contributors

Languages