import asyncio import pathlib import pandas as pd import numpy as np from liso import ( EuXFELInterface, Linac, LinacScan, MachineScan, open_run, open_sim, Phasespace ) from liso import doocs_channels as dc from liso.experiment import machine from liso.experiment.machine import _DoocsReader from liso.io import ExpWriter from liso.logging import logger logger.setLevel('ERROR') from ...experiment.tests import DoocsDataGenerator as ddgen _ROOT_DIR = osp.dirname(osp.abspath(__file__)) _INPUT_DIR = osp.join(_ROOT_DIR, "../../simulation/tests") class TestLinacScan(unittest.TestCase): def run(self, result=None): with tempfile.TemporaryDirectory() as tmp_dir: self._tmp_dir = tmp_dir linac = Linac(2000) linac.add_beamline( 'astra',
python astra_basic.py --workers <number of cpu cores> ``` The solution of running the following code with space-charge effect is emitx_um = 0.3195 at laser_spot = 0.1189 main_sole_b = 0.2187 Author: Jun Zhu """ from liso import Linac, LinacOptimization, NelderMead from liso.logging import logger logger.setLevel('DEBUG') linac = Linac() # instantiate a Linac # add a beamline # # The first argument is the code name # name: beamline name # swd: simulation working directory # fin: simulation input file name # template: simulation input template file path. # pout: output file name. It must be in the same folder as 'fin'. linac.add_beamline('astra', name='gun', swd='../astra_files', fin='injector.in',
import unittest from unittest.mock import patch import numpy as np from liso import EuXFELInterface from liso import doocs_channels as dc from liso.exceptions import LisoRuntimeError from liso.experiment import machine from liso.experiment.machine import _DoocsReader, _DoocsWriter from liso.logging import logger logger.setLevel("ERROR") from . import DoocsDataGenerator as ddgen _PID0 = 1000 def _side_effect_read(dataset, address, error=0): data = dataset[address] if data['macropulse'] >= _PID0: if np.random.rand() > 0.5: data['macropulse'] += 1 # do not mutate data['data'] = data['data'] + error return data class TestDoocsMachine(unittest.TestCase): def run(self, result=None): DELAY_NO_EVENT = _DoocsReader._DELAY_NO_EVENT