Skip to content
Snippets Groups Projects
Commit 6a060abf authored by Keon Hee KIM's avatar Keon Hee KIM
Browse files

Merge branch 'stable' into faster_circular_resistive_wall

parents a1ef03ae f8336fe7
No related branches found
No related tags found
1 merge request!14Faster CircularResistiveWall
This commit is part of merge request !14. Comments created here will be created in the context of that merge request.
Showing
with 2445 additions and 4 deletions
.gitlab-ci.yml 0 → 100644
stages:
- test
- build_docker
- build_pip
.python_job:
image: gitlab-registry.synchrotron-soleil.fr/pa/collective-effects/python_mpi:latest
before_script:
- pip install poetry
- poetry install
- source `poetry env info --path`/bin/activate
include:
- template: Jobs/Dependency-Scanning.gitlab-ci.yml
testing:
extends: .python_job
stage: test
rules:
- if: '$CI_COMMIT_BRANCH == "stable"'
- if: '$CI_COMMIT_BRANCH == "develop"'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "stable"'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
script:
- cd tests
- poetry run pytest --junitxml=report.xml
artifacts:
when: always
reports:
junit: /builds/PA/collective-effects/mbtrack2/tests/report.xml
formatters:
extends: .python_job
stage: test
rules:
- if: '$CI_COMMIT_BRANCH == "stable"'
- if: '$CI_COMMIT_BRANCH == "develop"'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "stable"'
- if: '$CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "develop"'
script:
- poetry run isort --check --diff mbtrack2/
- poetry run yapf -d -r mbtrack2/
docker_develop:
stage: build_docker
rules:
- if: '$CI_COMMIT_BRANCH == "develop"'
image: docker:latest
services:
- docker:dind
variables:
CONTAINER_RELEASE_IMAGE: ${CI_REGISTRY_IMAGE}:develop
script:
- echo "${CI_REGISTRY_PASSWORD}" | docker login -u ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY}
- docker build --pull -t ${CONTAINER_RELEASE_IMAGE} .
- docker push ${CONTAINER_RELEASE_IMAGE}
docker_stable:
stage: build_docker
rules:
- if: '$CI_COMMIT_TAG'
image: docker:latest
services:
- docker:dind
variables:
CONTAINER_RELEASE_IMAGE: ${CI_REGISTRY_IMAGE}:latest
CONTAINER_TAG_IMAGE: ${CI_REGISTRY_IMAGE}:${CI_COMMIT_TAG}
script:
- echo "${CI_REGISTRY_PASSWORD}" | docker login -u ${CI_REGISTRY_USER} --password-stdin ${CI_REGISTRY}
- docker build --pull -t ${CONTAINER_RELEASE_IMAGE} .
- docker image tag ${CONTAINER_RELEASE_IMAGE} ${CONTAINER_TAG_IMAGE}
- docker push ${CONTAINER_RELEASE_IMAGE}
- docker push ${CONTAINER_TAG_IMAGE}
pip_stable:
extends: .python_job
stage: build_pip
rules:
- if: '$CI_COMMIT_TAG'
script:
- poetry config repositories.gitlab ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/pypi
- poetry build
- poetry publish --repository gitlab -u gitlab-ci-token -p ${CI_JOB_TOKEN}
......@@ -6,4 +6,5 @@ The following people contributed to the developpement of this code (chronologic
+ Naoto Yamamoto
+ David Amorim
+ Antonin Sauret
+ Vadim Gubaidulin
\ No newline at end of file
+ Vadim Gubaidulin
+ Keon Hee Kim
\ No newline at end of file
Dockerfile 0 → 100644
FROM gitlab-registry.synchrotron-soleil.fr/pa/collective-effects/python_mpi:latest
LABEL name mbtrack2
USER dockeruser
WORKDIR '/home/dockeruser'
ENV PATH ${PATH}:/home/dockeruser/miniconda3/bin:/home/dockeruser/miniconda3/condabin
RUN pip3 install accelerator-toolbox==0.5.0
COPY --chown=dockeruser mbtrack2 /home/dockeruser/mbtrack2
ENV PYTHONPATH=/home/dockeruser/
\ No newline at end of file
mbtrack2
========
[![GitLab Release](https://img.shields.io/gitlab/v/release/184?gitlab_url=https%3A%2F%2Fgitlab.synchrotron-soleil.fr%2F)](https://gitlab.synchrotron-soleil.fr/PA/collective-effects/mbtrack2/-/releases) [![PyPI - Version](https://img.shields.io/pypi/v/mbtrack2)](https://pypi.org/project/mbtrack2/)
[![PyPI - License](https://img.shields.io/pypi/l/mbtrack2)](https://gitlab.synchrotron-soleil.fr/PA/collective-effects/mbtrack2/-/blob/stable/LICENSE)
[![Read the Docs](https://img.shields.io/readthedocs/mbtrack2)](https://mbtrack2.readthedocs.io/)
mbtrack2 is a coherent object-oriented framework written in python to work on collective effects in synchrotrons.
mbtrack2 is composed of different modules allowing to easily write scripts for single bunch or multi-bunch tracking using MPI parallelization in a transparent way. The base of the tracking model of mbtrack2 is inspired by mbtrack, a C multi-bunch tracking code initially developed at SOLEIL.
......@@ -56,14 +60,22 @@ To test your installation run:
from mbtrack2 import *
```
### Using docker
A docker image is available:
```
docker pull gitlab-registry.synchrotron-soleil.fr/pa/collective-effects/mbtrack2
```
References
----------
If used in a publication, please cite mbtrack2 paper and the zenodo archive for the corresponding code version (and any other paper in this list for more specific features).
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10871040.svg)](https://doi.org/10.5281/zenodo.10871040)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.12749990.svg)](https://doi.org/10.5281/zenodo.12749990)
### mbtrack2 general features
A. Gamelin, W. Foosang, and R. Nagaoka, “mbtrack2, a Collective Effect Library in Python”, presented at the 12th Int. Particle Accelerator Conf. (IPAC'21), Campinas, Brazil, May 2021, paper MOPAB070.
### RF cavities with beam loading and RF feedbacks
Yamamoto, Naoto, Alexis Gamelin, and Ryutaro Nagaoka. "Investigation of Longitudinal Beam Dynamics With Harmonic Cavities by Using the Code Mbtrack." Proc. 10th International Partile Accelerator Conference (IPAC’19), Melbourne, Australia, 19-24 May 2019. 2019.
\ No newline at end of file
### RF cavities with beam loading and RF feedbacks
Yamamoto, Naoto, Alexis Gamelin, and Ryutaro Nagaoka. "Investigation of Longitudinal Beam Dynamics With Harmonic Cavities by Using the Code Mbtrack." Proc. 10th International Partile Accelerator Conference (IPAC’19), Melbourne, Australia, 19-24 May 2019. 2019.
docs/Makefile 0 → 100644
# Minimal makefile for Sphinx documentation
#
# You can set these variables from the command line, and also
# from the environment for the first two.
SPHINXOPTS ?=
SPHINXBUILD ?= sphinx-build
SOURCEDIR = source
BUILDDIR = build
# Put it first so that "make" without argument is like "make help".
help:
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
.PHONY: help Makefile
# Catch-all target: route all unknown targets to Sphinx using the new
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
%: Makefile
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
File added
File added
File added
File added
File added
File added
File added
File added
# Sphinx build info version 1
# This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done.
config: 05f20f44309c0b23df92472b9aade71e
tags: 645f666f9bcd5a90fca523b33c5a78b7
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Overview: module code &#8212; mbtrack2 0.6.0 documentation</title>
<link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
<link rel="stylesheet" type="text/css" href="../_static/nature.css" />
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/jquery.js"></script>
<script src="../_static/underscore.js"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script src="../_static/doctools.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
</head><body>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
accesskey="I">index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">mbtrack2 0.6.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
</ul>
</div>
<div class="document">
<div class="documentwrapper">
<div class="bodywrapper">
<div class="body" role="main">
<h1>All modules for which code is available</h1>
<ul><li><a href="mbtrack2/impedance/csr.html">mbtrack2.impedance.csr</a></li>
<li><a href="mbtrack2/impedance/impedance_model.html">mbtrack2.impedance.impedance_model</a></li>
<li><a href="mbtrack2/impedance/resistive_wall.html">mbtrack2.impedance.resistive_wall</a></li>
<li><a href="mbtrack2/impedance/resonator.html">mbtrack2.impedance.resonator</a></li>
<li><a href="mbtrack2/impedance/tapers.html">mbtrack2.impedance.tapers</a></li>
<li><a href="mbtrack2/impedance/wakefield.html">mbtrack2.impedance.wakefield</a></li>
<li><a href="mbtrack2/instability/instabilities.html">mbtrack2.instability.instabilities</a></li>
<li><a href="mbtrack2/instability/ions.html">mbtrack2.instability.ions</a></li>
<li><a href="mbtrack2/tracking/aperture.html">mbtrack2.tracking.aperture</a></li>
<li><a href="mbtrack2/tracking/element.html">mbtrack2.tracking.element</a></li>
<li><a href="mbtrack2/tracking/feedback.html">mbtrack2.tracking.feedback</a></li>
<li><a href="mbtrack2/tracking/monitors/monitors.html">mbtrack2.tracking.monitors.monitors</a></li>
<li><a href="mbtrack2/tracking/monitors/plotting.html">mbtrack2.tracking.monitors.plotting</a></li>
<li><a href="mbtrack2/tracking/monitors/tools.html">mbtrack2.tracking.monitors.tools</a></li>
<li><a href="mbtrack2/tracking/parallel.html">mbtrack2.tracking.parallel</a></li>
<li><a href="mbtrack2/tracking/particles.html">mbtrack2.tracking.particles</a></li>
<li><a href="mbtrack2/tracking/rf.html">mbtrack2.tracking.rf</a></li>
<li><a href="mbtrack2/tracking/synchrotron.html">mbtrack2.tracking.synchrotron</a></li>
<li><a href="mbtrack2/tracking/wakepotential.html">mbtrack2.tracking.wakepotential</a></li>
<li><a href="mbtrack2/utilities/beamloading.html">mbtrack2.utilities.beamloading</a></li>
<li><a href="mbtrack2/utilities/misc.html">mbtrack2.utilities.misc</a></li>
<li><a href="mbtrack2/utilities/optics.html">mbtrack2.utilities.optics</a></li>
<li><a href="mbtrack2/utilities/read_impedance.html">mbtrack2.utilities.read_impedance</a></li>
<li><a href="mbtrack2/utilities/spectrum.html">mbtrack2.utilities.spectrum</a></li>
</ul>
<div class="clearer"></div>
</div>
</div>
</div>
<div class="sphinxsidebar" role="navigation" aria-label="main navigation">
<div class="sphinxsidebarwrapper">
<div id="searchbox" style="display: none" role="search">
<h3 id="searchlabel">Quick search</h3>
<div class="searchformwrapper">
<form class="search" action="../search.html" method="get">
<input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
<input type="submit" value="Go" />
</form>
</div>
</div>
<script>document.getElementById('searchbox').style.display = "block"</script>
</div>
</div>
<div class="clearer"></div>
</div>
<div class="related" role="navigation" aria-label="related navigation">
<h3>Navigation</h3>
<ul>
<li class="right" style="margin-right: 10px">
<a href="../genindex.html" title="General Index"
>index</a></li>
<li class="right" >
<a href="../py-modindex.html" title="Python Module Index"
>modules</a> |</li>
<li class="nav-item nav-item-0"><a href="../index.html">mbtrack2 0.6.0 documentation</a> &#187;</li>
<li class="nav-item nav-item-this"><a href="">Overview: module code</a></li>
</ul>
</div>
<div class="footer" role="contentinfo">
&#169; Copyright 2024, A. Gamelin et al.
Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 5.0.2.
</div>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment