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
Showing
with 2445 additions and 4 deletions
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}
...@@ -7,3 +7,4 @@ The following people contributed to the developpement of this code (chronologic ...@@ -7,3 +7,4 @@ The following people contributed to the developpement of this code (chronologic
+ David Amorim + David Amorim
+ Antonin Sauret + Antonin Sauret
+ Vadim Gubaidulin + Vadim Gubaidulin
+ Keon Hee Kim
\ No newline at end of file
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 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 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. 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,11 +60,19 @@ To test your installation run: ...@@ -56,11 +60,19 @@ To test your installation run:
from mbtrack2 import * from mbtrack2 import *
``` ```
### Using docker
A docker image is available:
```
docker pull gitlab-registry.synchrotron-soleil.fr/pa/collective-effects/mbtrack2
```
References 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). 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 ### 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. 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.
......
# 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