使用MAD-X进行加速器仿真的GUI。
项目描述
madgui是一个使用cpymad通过MAD-X进行交互式加速器仿真的Qt5 Python GUI。它目前可以在Python 3.4及以上版本上运行,但未来可能需要更高的Python版本。
安装
pip install madgui
使用方法
现在,您应该可以使用以下命令启动madgui:
madgui
可选地,madgui可以接受一个madx/model文件的文件名
madgui /path/to/model.madx
请注意,madgui目前仅适用于相对较小的序列,最多几百个元素。
配置
应用程序在当前目录或用户主目录中加载YAML配置文件madgui.yml。
示例文件
model_path: ../hit_models
session_file: madgui.session.yml
online_control:
connect: true
backend: 'hit_acs.plugin:TestACS'
onload: |
code to execute on startup
开发指南
请参阅开发者指南。
复制
版权所有2016-2019 HIT Betriebs GmbH
本程序是自由软件:您可以自由分发和/或修改它,前提是遵守自由软件基金会根据许可证版本3发布的GNU通用公共许可证的条款,或者(根据您的选择)许可证的任何更高版本。
本程序的分发是希望它会有所帮助,但没有任何保证;甚至没有对适销性或特定用途的隐含保证。有关更多详情,请参阅GNU通用公共许可证。
您应该已经收到了与该程序一起的GNU通用公共许可证副本。如果没有,请参见 <https://gnu.ac.cn/licenses/>。
有关许可证的完整文本版本,请参阅 COPYING.GPLv3.txt。
变更日志
20.10.0
日期:2020年10月15日
添加轨道展平的光学变化方法
将Sphinx V4.2.4作为默认文档
20.7.0
日期:2020年7月28日
更改Pyqtconsole v1.2.1
20.6.0
日期:2020年6月3日
修复光学变化方法中的错误
将PyQt版本降级到5.12.3
20.4.2
日期:2020年4月25日
更新用户手册。工作进行中
将动态颜色添加到快照中
20.4.1
日期:2020年4月22日
添加匹配功能中的约束。如果残差过高,则不更改光学
20.4.0
日期:2020年4月8日
将执行按钮添加到匹配小部件中
将pyqtconsole降级到1.1.3
添加sample_model依赖项
20.1.0
日期:2020年1月25日
重新审视自动加载模型功能
自动加载由读取强度对话框中的按钮取代
将pyqtconsole依赖项更新到1.1.5
19.8.0
日期:2019年8月19日
添加自动加载模型功能
19.6.3
日期:2019年6月6日
默认使用ORM轨道校正方法
为元素信息选项卡添加工具提示
19.6.2
日期:2019年6月5日
修复GLWidget.closeEvent中的异常
明确请求OpenGL版本以增加获取3.0上下文的机会
请求OpenGL 3.2核心配置文件(不允许过时功能),以避免以后出现向后不兼容的问题
19.6.1
日期:2019年6月5日
修复“插值点”菜单项未更新绘图的问题
修复在取消选择/选择监控器后未更新监控器指标的问题
通过添加缺失的着色器到安装中修复3D调查小部件
记录OpenGL版本并显示更友好的不兼容版本错误信息
修复序列反转后元素指标显示不正确的问题
cpymad 1.2.1修复了在没有stdin的情况下(例如Windows GUI)在应用程序上下文中单击“关于MAD-X”菜单项时发生的死锁
19.6.0
日期:2019年6月2日
修复打开新模型后使用元素信息时的异常
处理在打开新模型后元素选择保留的信号处理程序的问题(通过取消选择选择)
降低元素指标的不透明度
19.5.5
日期:2019年5月27日
修复序列中多次出现的元素只绘制一次的问题
添加更多文档
将twiss小部件代码从绘图模块拆分,以便在没有导入GUI代码的情况下外部使用绘图函数
- 3D调查小部件
修复扩散光照方向计算中的错误
将薄元素显示为圆盘
显示更多元素类型,五彩缤纷
修复未绘制初始模型的问题
根据半径缩放圆圈上的点数
19.5.4
日期:2019年5月16日
添加基于OpenGL的真正3D调查小部件(WIP)
修复在曲线管理器工具中单击快照按钮时的异常
修复导入没有文本列的表格时的TypeError
在输入无效数字格式时显示警告(而不是静默忽略无效输入)
在忽略无效旋钮字符串时显示警告
19.5.3
日期:2019年5月13日
允许步长字段为负值(ORM测量对话框)
修复使用没有撤销堆栈的模型时的AttributeError
修复匹配对话框中“添加”按钮的ValueError
将“写入强度”菜单项与“读取强度”进一步分离
为“读取强度”添加快捷键
以广度优先的方式查找模型,而不是深度优先
修复更改绘图时(尤其是从具有许多曲线的绘图到具有较少曲线的绘图)更新不正确的问题
19.5.2
日期:2019年5月11日
添加调查/sectormap绘图的选择
在共享绘图模式下默认将图例显示在图形外部
19.5.1
日期:2019年5月11日
在日志区域显示 UndoStack.macro 调用
添加菜单项以就地反转当前序列(实验性)
将 DRIFT 属性显示为继承的
启动 usrguide(目前非常基础),文档化 QT_SCALE_FACTOR
添加工具栏项以显示/隐藏 BPM
添加 Backend.read_params 方法以读取所有/多个参数(需要 hit_acs>=19.5.0)
在 orm 测量过程中导出完整的参数转储
升级到 cpymad 1.2.0,MAD-X 版本 5.05.00
19.5.0
日期:2019年5月7日
修复在更改模型时出现的 TypeError
在 ORM 测量对话框中导出时间以及 BPM 值
19.4.4
日期:2019年4月25日
修复在正确器对话框中在罕见情况下可能出现的几个小异常
19.4.3
日期:2019年4月25日
修复 UndoStack.macro() 中的 RecursionError,该错误在使用正确器对话框的 MATCH/sectormap 方法时可能发生
修复 UndoStack.rollback() 中的潜在 NameError
修复可能导致 TypeError 和多次信号处理程序执行的意外信号连接(例如,触发 EditConfigDialog 两次)
19.4.2
日期:2019年4月24日
修复日志小部件在 Windows 上的等宽显示
修复通过菜单设置最大日志大小时的异常
修复在正确器对话框中使用 MATCH 或 sectormap 方法时出现的异常:“TypeError:macro()缺少 1 个必需的位置参数”
修复在正确器对话框中更改配置(组合框)时出现的 TypeError:“TypeError:itemText(self, int): 参数 1 的类型意外”
19.4.1
日期:2019年4月13日
修复在更改日志级别后日志为空的异常
改进日志小部件的长期使用性能(#35)
添加设置最大日志长度的菜单和配置项
修复未指定颜色的日志条目接收来自上一个条目的颜色
改进非 GUI 模式应用程序支持
通过将对话框转换为顶级窗口,使主窗口能够在其他窗口之上显示
简化对话框实例化和内部逻辑
修复“轨道校正 -> 测量响应”小部件中的“校准”按钮。在早期重构后缺少实现
根据 eventFilter 实现 notifyEvent。这使得可能进行这些事件通知,从而防止由于调用死对象而导致的错误。
将 shell 从 dockwidget 转换为正常对话框
允许同时打开多个控制台窗口
用更快的、更轻量级的 pyqtconsole 替换 qtconsole
这修复了调用“exit()”时的“AttributeError”
还修复了“执行中止”错误,该错误阻止在之前的命令中引发异常后执行进一步的语句
努力改进文档和交叉引用
使用 pint 0.9
19.4.0
日期:2019年4月1日
删除 python 3.5 兼容性,至少需要 3.6
修复尝试显示绘图时出现的异常,如果加载包含 SELECT, flag=TWISS 命令的 madx 文件
修复当显示一个几乎恒定的数量时(通过在 y=0 处绘制一条不可见的水平线)出现的奇怪的 matplotlib 偏移行为
添加重做 twiss 和刷新绘图的菜单项
添加设置插值点数的菜单项
添加插值点数的配置项
修复文档中的某些警告/错误
将 QUndoStack 替换为我们的实现,以简化在非 GUI 环境中使用 Model
暂时移除 QUndoView(由于替换 QUndoStack 的限制)
使用静态元数据和重工作 Travis 脚本来简化 setup.py
19.3.3
日期:2019年3月21日
作为 gui 脚本安装
修复由于作为 gui 脚本调用时缺少 stdout 而在 pyqtconsole 中出现的 ValueError: fallback required but not specified
19.3.2
日期:2019年3月21日
修复 TypeError:set_draggable() 缺少 1 个必需的位置参数(在共享绘图模式下)
在曲线 y 标签中添加单位
更改某些数量标签
分离的函数用于编辑模型参数,适用于插件等
19.3.1
日期:2019年3月12日
添加缺失的文件 twissfigure.yml
添加 import_path 配置项,用于将插件文件夹添加到 sys.path
在配置中展开‘~’和环境变量: run_path、model_path、import_path、session_file
19.3.0
日期:2019年3月12日
放弃对 Python 3.4 的支持
从轨道校正对话框中删除“通过增量”复选框,尽可能始终使用测量的监控位置
依赖 cpymad 1.1.0
自动更新绘制的监控标记
修复 Ctrl+P 关闭主窗口的问题
处理所有应用程序窗口内的菜单热键
添加菜单选项和热键以增加或减少字体大小
记住字体大小设置
一些错误修复
从诊断对话框中删除过时的“更新”按钮
内部
将 ORM 分析代码移至其独立的包
添加 PyQt5 作为常规依赖项(可以通过 pip 自动安装)
在 py35 上添加测试
重构 madgui.plot 中的模块
从 Session 中删除上下文管理能力
用我们自己的轻量级解决方案替换 pyqtSignal(为允许模型等在没有 GUI 的情况下实例化做准备)
不再继承 cpymad.madx.Madx,将功能直接移至 cpymad
重构/简化缓存类
使 twissfigure 模块更多地独立于主窗口/会话,并简化绘图 API(可独立使用而不需要 madgui 的函数)
重构场景图,为通过曲线管理器对话框完全一致地管理所有场景元素做准备
优化更新绘图时的性能
修复构建文档时的错误
开始开发指南文档部分
引入一种轻量级的历史类型来管理多个组件中的历史
直接使用 PyQt5 导入,移除 madgui.qt 兼容性模块
将校正对话框拆分成组件,为伟大统一做准备
19.01.0
日期:2019年1月19日
修复 py3.4 中的语法错误
ORM 分析工具的内部开发
为模型添加反转序列的方法
泛化和稍微简化轨道拟合 API
仅将“直接”变量(即非延迟表达式)视为旋钮
通过延迟表达式递归地搜索旋钮
从 ACS 后端动态解析单位字符串
适应 hit_csys -> hit_acs 的重命名
适应 hit_acs 19.01.0 的更改
经验轨道校正的测量响应方法的基本版本
安装一个公共 BeamSampler,用于监控和发布新读数
18.12.0
日期:2018年12月11日
更新依赖项
更新到 cpymad 1.0.10
新增依赖 scipy!
错误修复
修复在光束选项卡小部件中的 TypeError
修复某些小部件只在第二次点击时显示的 bug
明确指定大多数可编辑表格的正确数据类型
修复某些导入例程中的异常
修复没有配置文件启动时的异常
修复由于编码名称而导致的某些系统上的早期异常
杂项
将 sectormap 和光束矩阵显示为类似矩阵的表格
改进光束矩阵的查找逻辑
删除“表达式”列,以取而代之的是复合编辑小部件
一些内部 API 更改
在 madgui.util.fit 中添加拟合 API
允许加载具有文本列的表格文件
从名称列推断加载表格文件时缺失的 S
在travis构建过程中自动生成apidoc文件
更新travis配置,以淘汰基于容器的基础设施的支持
默认将构建标记为开发版本(travis)
认识到常量不能用作旋钮
将load_yaml函数移动到madgui.util.yaml
添加简单的回代轨道API
回溯时从不要求betx、bety
ORM实用API的开发
18.10.3
日期:2018年10月31日
修复错误
修复由于使用错误的栈而导致撤销功能无法工作的问题
修复在指定表时Model.twiss中的异常
ORM分析
与轨道校正共享get_orm()实现
去重,多项代码改进和简化
使用base_orbit回溯初始条件
将绘图函数添加到分析脚本中
更好的输出
添加独立拟合X和Y的能力
在未记录的规范文件中简化ealign表示法
18.10.2
日期:2018年10月25日
修复错误
修复在Qt<5.9中缺少setObsolete的问题(之前只部分修复)
修复输出文件中光学元件列表为空的问题
修复由于洪水导致beamoptikdll未启动设备下载的问题
修复读出逻辑中的重复值错误
减少导致不一致读出的竞争条件的机会
UX改进
也记录到主日志窗口
在轨道响应测量期间增加日志详细程度
每次写入后刷新文件
按顺序改变引导器
避免一个多余的读出
将默认引导器变化增加到0.2毫弧度
ORM分析
将缺少ORM条目视为零
限制到使用的旋钮
修复记录文件中的空引导器字段
处理ORM分析中的累积错误
添加简单的绘图脚本
18.10.1
日期:2018年10月20日
修复打开匹配对话框时的异常
修复由于fit_range错误导致的初始条件拟合问题
在校正器小部件中添加对None偏移的保护措施
将轨道校正限制为仅X/Y约束
让用户选择是拟合测量值与设计值之间的差异,还是直接拟合设计值(这在回溯没有很好地描述监控值的情况下可能不同)
18.10.0
日期:2018年10月18日
现在使用calver(日历版本)YY.MM.patch,因为这样可以更好地适应madgui开发的本性,并且我相信这对最终用户更有用。
新功能
添加.app图标作为.ico文件(用于快捷方式等)
添加基于轨道响应矩阵(ORM)的轨道校正模式
添加一个假设轨道响应矩阵=sectormap的更简单模式
将方法选择添加到OVM对话框
添加记录轨道响应矩阵的对话框
添加生成测试ORM记录的脚本
添加分析ORM记录的脚本
改进
在执行前可以编辑引导器值
在光学变化对话框中实现上一个/下一个按钮
允许多个楼层平面窗口
防止由于MPL重绘导致的烦人的忙碌光标
打开我们自己的模块的警告
正确关闭并等待MAD-X进程
改进引导器/监控显示表更新
不再为每个MAD-X会话自动创建日志文件
让MAD-X不那么冗长:命令回显关闭!
错误修复
修复在光学变化对话框中点击“应用”时的AttributeError
修复在打开曲线管理器小部件时发生的NameError
修复在OVM对话框中更改选中配置时缺失的反应
修复在OVM自动模式下记录前的缺失更新
修复在MGM对话框中编辑配置后的AttributeError
编辑配置后更新配置组合框
修复编辑配置后当前配置未更新的问题
修复抖动选项...
修复多个 DeprecationWarnings
关闭小部件时停止 ORM 流程
修复导出菜单项的状态消息
修复模型加载器(路径)中的错误
修复没有加载 csys 后端时的 yaml.RepresenterError
修复加载独立的 .madx 文件时的错误
对校正器代码进行一些杂项修复
使用按钮组来防止取消选择单选按钮
元数据
添加合理性检查(pyflakes、提示缺失导入、语法错误等)
添加自动风格检查(pycodestyle)
添加对(现在)非 UI 组件的第一次测试:模型/会话/校正器
添加基本文档(在推送至 master 时更新)
推送标签时自动上传发行版到 PyPI
将源代码移动到不可导入的子目录
重构
改进命名:set_rowgetter -> set_viewmodel
删除光学变分和多网格模块(OVM/MGM)之间的重复代码
删除我们的 ElementInfo 代理类,直接使用 cpymad 中的 Element
删除几个过时/未使用的方法和死代码
共享监控读数的管理
将 AsyncReader 功能移动到 cpymad
使用 cpymad 的多行输入收集命令
自动显示 SingleWindow 小部件
简化对 twiss 表的访问
让在线插件管理其设置菜单
移动几个模块和类
去耦合 Model:没有 GUI,没有配置,没有图表!!!
删除几个现在可以通过 cpymad 内省的 MAD-X 数据结构的静态配置项
全局化几个不需要作为类接口一部分的私有方法
稍微简化 twiss args 猜测器
丢失过时的线程工具 [core.worker, QueuedDispatcher]
不再需要线程安全(没有更多线程…;)
重命名 control._plugin -> .backend
删除需要单独的 Loader 类的需求
添加 Model.changed 重载,它传递旧值和新值
内联和简化几个方法
引入一个新的 Session 对象,它作为上下文对象替换 MainWindow,并且可以在没有活动 GUI 的情况下使用
DRY up MANIFEST.in
为非 GUI 使用去耦合 ProcBot
使 Corrector 与 GUI 无关
将记录/导出责任移动到 Corrector(从 CorrectorWidget)
让 Corrector 仅知道活动配置
...等等
1.14.0
日期:2018.07.24
重构和简化树形视图数据模型,更一致的表定义
表中的等宽字体
自动保存和恢复在线设置(MEFI)
修复 Qt<5.9 上的 QUndoCommand.setObsolete 缺失
在多网格配置中允许定义 limits 参数
修复如果选择监控器太少时的 IndexError
在轨道/发射对话框中实现缺失的导出功能
使用 data_key 进行初始条件导入/导出
添加与 mirko 中的类似导入/导出菜单
实现从 YAML 导入强度
重构导入/导出逻辑
将 YAML 设置为强度导出的默认过滤器
在 .str 文件中识别 '!' 注释字符
修复树形视图编辑微调框以适合其列
在 SyncParamWidgets(读写强度)中突出显示更改的项目
在初始条件对话框中用粗体突出显示显式指定的束/twiss 参数
在诊断对话框之间进行代码去重:共享相同的 rowgetter 方法
为轨道/光学在不同的列表中保存选定的监控器
同时支持 QTableView 和 QTreeView,这有一些优点,例如支持背景颜色
在多网格对话框中用粗体突出显示更改的 steerers
基于表格视图重构光变异对话框,添加了自动化UI
在TableView中禁用部分高亮显示
重构轨道校正对话框中变量的存储方式
在“steerer校正”表格中始终显示当前值与“要应用”值的对比
在轨道校正对话框中添加前后按钮
在元素信息对话框中使用更美观的箭头按钮(QToolButton)
在轨道校正期间显示监控器
1.13.0
日期:2018年7月15日
简化curvemanager工具的激活逻辑(以前是一个具有复杂行为的切换项,现在是一个简单的按钮,将创建小部件)
为curvemanager小部件添加“确定”按钮
修复按下“确定”时beam diagnostic对话框保持打开且空白标签页的问题
从setup.py中删除对minrpc版本的显式依赖(可能解决了cpymad对minrpc版本的要求被忽略的问题)
改进匹配对话框中的旋钮选择/输入
更改在多网格配置中定义“分配”表达式的方式,现在可以仅绑定到x或y
添加基于光学的偏移校准小部件
将回溯法作为计算初始坐标的方法(而不是反转sectormaps)
在诊断对话框和多网格之间进行一些代码重复消除
在多网格配置中允许指定匹配的“方法”(lmdif/jacobian/…)
在日志窗口中显示/隐藏时间戳
使树视图列可由用户调整大小(将在视图更改大小时重置)
简化拉伸逻辑并删除自定义列拉伸因子
对一些ColumnInfo定义进行少量清理
1.12.0
日期:2018年6月26日
添加“关于Python”菜单项
修复Model.get_transfer_maps / Model.sectormap中的错误
将多个变量更新命令收集到一个RPC调用中
添加一个用于封装通用值的类
将Mainwindow.model改为Boxed对象!!
删除Model.destroyed信号,改用更通用的Boxed.changed信号
向get_elem_twiss添加envx/envy列
修复“读取强度”/“写入强度”对话框中的数据导出
在导出小部件中将“确定”设置为默认按钮
添加执行MAD-X文件(即CALL)的菜单项
分别记住“加载强度”和“执行文件”项的文件夹
1.11.4
日期:2018年6月11日
修复model.sectormap和get_transfer_maps中sectormap区间开/闭不一致的问题
1.11.3
日期:2018年6月11日
添加“导出强度”菜单项
在全局编辑中添加导出为.str文件
修复JSON错误地列为例子导出格式
根据var_type(预定义性)显示全局
1.11.2
日期:2018年6月11日
修复由于自动缩放而导致每次曲线重绘时丢失缩放/视图的问题
修复尝试保存会话数据时出现的AttributeError。这仅在线控制未连接时出现,并阻止保存当前模型、文件夹等
修复计算不同卷积上的模型相对路径时的ValueError
让madgui在Windows上拥有自己的任务栏组
添加初步窗口图标
对model.get_transfer_maps有更一致的行为
美化Python shell中numpy数组的默认输出格式
元素指示器:- 监控器有更明显的线条 - 正负偶极子强度的位移翻转 - 根据磁铁强度缩放位移/四极子颜色 - 在背景中绘制元素指示器 - 通过添加轮廓区分双峰曲线 - 为元素指示器设置alpha=1 - 在SBEND内添加KICK标记 - 突出显示选中和悬停的元素
1.11.1
日期:2018年6月1日
修复主要在Windows上出现、在MAD-X命令中输出较长的死锁问题(此修复将导致目前性能略有下降)
避免启动时的一些不必要的更新/重绘
记住连接到哪个在线插件
一些额外的日志语句信息
再次更改onload,以便在加载模型之前执行
1.11.0
日期:31.05.2018
杂项
需要cpymad 1.0.0rc3
修复多网格视图未更新
为K0添加单位
在twiss后更新楼层平面测量
匹配
将多个匹配约束在同一元素和位置合并为一个语句
仅对使用的量指定权重
如果约束数量不正确,则禁用匹配
在禁用匹配模式时不要重置匹配
元素/参数对话框
修复全局可编辑时的条件
再次在标题中使用大写字母显示元素属性名称
显示变量名称的开头部分为小写
利用cpymad的inform和var_type
TreeView
改进/重构内部TableView API
使用树视图
在树视图中展开向量
在全局编辑/命令编辑中展开出现在表达式中的变量
撤消
支持撤消简单的.str文件
移除有缺陷的接受/拒绝逻辑,即“取消”按钮,现在只留下“确定”按钮(正确实现“取消”的逻辑并不简单,行为可能仍然令人困惑)
将撤消实用程序移动到自己的模块
子类化QUndoStack
从不显示空宏(QUndoCommand.setObsolete)
绘图
在所有窗口之间共享加载的曲线
在mainwindow中处理add_curve/del_curve
“快照”现在保存所有可用的twiss数据,以便在更改图表时,其他曲线的快照将显示出来
优雅地处理用户曲线中的缺失数据(之前异常非常明显,现在显示调试消息)
在Y图上反转四极聚焦颜色代码
通过上下移动指示器位置来区分SBEND/KICKER的符号
较小的但更明显的指示器
淡出“非轴心”的击打器(例如Y图中的HKICKER)
在Y方向上移除网格线
修复状态栏中缺失的元素名称
在每次绘制时更新元素标记
1.10.1
日期:15.05.2018
修复ElementList.__contains__
显示/编辑全局变量的表达式字段
修复py34上的SyntaxError
需要cpymad 1.0.0rc2
在编辑束时,只有当显式给出时才使用e_kin
设置新参数时更精确地处理撤消
在更新表达式之前使用不区分大小写的字符串比较
修复导致匹配过程中UI单位转换因子平方的bug
在匹配小部件中使用内置的单位转换机制
在编辑时,允许通过直接值覆盖延迟表达式
修复未在撤消堆栈上跟踪元素属性修改的问题
修复会阻止某些元素属性更新的过时检查
通过依赖模型无效化来简化并统一ParamTable口味
通过用它们的值替换它们来实现“表达式删除”
对于字符串属性,使“表达式”字段不可变
1.10.0
日期:13.05.2018
在加载模型后执行onload命令
将坐标轴和尺寸指示器添加到楼层平面
在发射度模块中使用logging记录警告
使用全局记录器而不是个人记录器
修复TableView中的bug,该bug可能导致使用错误的量进行单位转换
旋钮现在是仅在延迟表达式中出现的全局变量
移除Knob类
在全局变量对话框以及匹配对话框中不显示单位
用大写字母显示全局变量名称
使用.ui文件作为mainwindow
在主窗口中添加过滤显示日志记录的UI
默认抑制MAD-X输出
大幅度重构和清理TableView API;旧的ValueProxy类现在被Delegate类取代,后者对单个单元格一无所知,以及一个提供上下文的Cell类
通过传递适当的值或回调函数到ColumnInfo,允许专门化几乎所有的数据角色
统一并改进处理已选列的方式
删除左/右数字对齐的配置项
引入监控校准的偏移量
添加一种简单的方法来定义监控偏移量,即模型和测量之间的差异
在内部保持监控值以MAD-X单位
为多个表格视图的列标题添加单位
为元素添加“表达式”列
使用粗体突出显示用户指定的值
删除DataStore,由简化的TableView API和getter方法替代
修复能量/质量UI单位
为光束添加“E_kin”字段
修复YAML参数导出器的异常
修复由于插值导致的sectormap中的错误
在更改之间只计算一次sectormap,并且仅在需要时计算
修复在twiss后未重绘的问题
修复kick编辑(仅适用于HIT-model风格的角/k0定义)的异常
删除Element.id,改用.index
删除对Element的代理层,直接使用cpymad元素
删除对引用向量组件的标量名称(如“KNL[0]”)的支持
简化ElementList以及如何访问元素
修复open_graph始终显示“轨道”图的问题
将不同的光束诊断任务作为标签对话框的一部分,增加代码共享
重构光束诊断小部件、布局、按钮、默认值
记住绘图窗口的位置、大小和图形名称
在model中内联一些初始化方法
使用撤销/重做机制和相应的历史小部件,修复在多个地方使用的备份/恢复机制
1.9.0
日期:2018年4月16日
改进
将x/y/px/py值添加到元素信息对话框中的Twiss选项卡
在每次新的监控读数时重新绘制回溯的twiss
在检测旋钮时考虑SBEND->K0
删除旋钮的转换机制,现在这是模型本身的职责(通过使用适当的表达式)或在线插件
仅使用用户定义的变量作为延迟表达式中的旋钮,将固定数字视为静态
在打开监控对话框时显示带有监控宽度和位置的标记,可以选择显示哪些
向监控小部件添加更新/回溯功能
在列标题上显示单位
为监控添加简单的数据导出
使监控小部件成为主窗口的子窗口(因此当主窗口关闭时,它也将关闭)
使用session文件在多个madgui运行之间保持一些设置:主窗口大小/位置、模型、文件夹、选定的监控
在twiss图中启用网格(主要针对y=0)
为应用程序和模型添加onload配置条目
删除基于setuptools的在线模型条目,必须由用户使用onload处理程序手动加载
在元件的出口端绘制元件标记
统一日志窗口与MAD-X输入命令、输出以及日志记录,基于带有不同颜色额外选择的PlainTextEdit,对眼睛和双手都更容易!在左侧显示行号和时间。
在日志窗口中显示异常
关闭Pint重新定义警告
按时间顺序显示交错MAD-X输入/输出
在配置编辑对话框(多网格)中显示行号
仅在第二个信息选项卡中显示实际的MAD-X命令参数
在摘要标签中为SBEND添加 kick 属性
错误修复
修复py34上的异常:缺少 math.isclose
修复平面图中的异常
修复由于丢弃 Expression 导致的匹配错误
修复横梁角度的单位转换
修复配置文件中的多网格 assign
使用浮点编辑框进行目标值
修复多网格目标值的输入单位
修复消失的监视器小部件的bug(与GC相关)
内部更改
使用函数调用语法从布尔代理获取值
删除一些遗留的py2兼容性代码
支持配置条目的属性访问和 on_change 信号,使 config.NumberFormat 成为简单的配置条目
将 user_ns 重命名为 context
清理一些未使用的导入、未定义的名称等(pyflakes)
用不带 size 参数的更简单的函数替换 monospace 函数
在访问元素属性时去除大写限制
适应 cpymad 1.0 API 的变化
翻转 gantry_angle 的定义(MAD-X 5.04.00 中 SROTATION->ANGLE 已更改)
1.8.0
日期:2018年3月25日
从模型文件中删除 api_version 条目
添加菜单项以加载 MAD-X 文件
按“Home”按钮时自动缩放绘图
添加 model.sectormap 短路方法以在 ipython shell 中使用
- twiss/beam 初始化对话框
删除单独的初始化标签的菜单项,移动到文件菜单
将配置中指定的属性视为实数,而不是整数
根据当前小部件更新保存/打开按钮的启用状态
- 元素信息框
为元素信息框添加带有 sectormap 的标签
点击另一个元素时更新标题(之前只有在更改时使用组合框才会更新)
修复“打开”按钮
- 两个
默认使用 spinbox=true
使用 QuantityValue 对于浮点数(旋转以获胜!)
修复编辑布尔值
修复显示 SpinBox 时 IntValue 的显示bug
修复“保存”按钮
- 匹配
匹配表达式中的变量
在应用校正后重用计算出的初始化条件
- 内部资源处理
删除 PackageResource
在适当的地方用 importlib_resources 替换 pkg_resources
删除 madgui.resource 包
- 省略号绘图
为初始化对话框添加椭圆标签
添加 x/y 标签
使用 tight_layout
使用 ui 单位
在网格上绘制椭圆
修复当 alpha 为负时交换的椭圆轴
修复半轴公式的错误
- 单位
内部传递值为普通浮点数,仅进行输入/输出/用户界面转换(#2)
将所有 Expression 实例替换为其值,摆脱 SymbolicValue
为用于转换的 madx_units 和 ui_units 引入全局变量
使用“°”符号格式化度数
改进列表的单位标签
删除 pint 单位文件,使用与 pint 一起提供的默认文件
1.7.2
日期:2018年3月5日
添加椭圆轴长度的缺失因子2
在此版本中不需要新 cpymad 的 AttrDict
1.7.1
日期:2018年3月2日
修复斜四极子的旋钮
修复与 posx/posy 别名相关的回归hotfix
与 hit_models 0.7.0,hit_csys 0.6.0 兼容
1.7.0
日期:2018年3月2日
从 sigma 矩阵计算 alfa/beta 以保持一致性
在 python shell 小部件中暴露保存 twiss 表的 twiss 变量
设置一些绘图更好的显示单位
在大多数更新中保持绘图轴限制
最终开始在某些地方使用位置相关的发射度
添加更多绘图:动量/分散/相位提前/发射度/伽马
将监控器以虚线形式绘制
绘制加载/快照曲线时不显示标记
更改元素时更新信息框窗口标题
在初始化设置对话框中添加全局变量选项卡
在信息框中添加选项卡:主要/专家/twiss/sigma/椭圆
刷新值或元素时保持信息框中的位置
将小工具按钮的大小调整到文本大小
允许用户点击零长度元素
根据序列长度缩放插值步长,以显示平滑曲线
默认number_format.align=right
默认mirror_mode=True
在Windows下将madqt作为gui_script启动时修复Python shell
重构多网格对话框(用于轨道校正)
重命名为madgui
新版本控制方案,解释:0.0.X -> 1.X.0,承认旧的基于wx的madgui的0.X.Y版本。
删除pytao绑定
匹配对话框:旋钮下拉菜单,细微的视觉改进
内部重构,模块重命名
可以连接在线控制,而无需加载模型
0.0.6
日期:2018年1月26日
元素信息框:添加切换元素的UI
楼层平面图:支持3D模型(但不再有弯曲的S型弯道…)
楼层平面图:添加更改视图视角的UI
楼层平面图:修复镜像反转
主/绘图窗口:设置窗口标题
主窗口:添加配置设置以设置初始位置
代码库:统一工作空间/段混乱,现在只有“模型”了(实际上我们不太可能能够在同一个工作空间中工作于少于/多于一个序列)
0.0.5
日期:2018年1月24日
修复MAD-X中的质量单位
大幅简化了旋钮API以控制界面
可以从在线插件中读取束参数
在轨道校正模式下拟合后显示更新的轨道图(回归)
为轨道校正模式打开轨道图
0.0.4
日期:2018年1月9日
当工作空间更改时发出信号(用于插件…)
只有当包存在时才显示关于框
为pytao添加关于对话框
当点击菜单时更改设置对话框中的选项卡
当用户通过菜单调用操作且相应的对话框已存在时,聚焦现有窗口
不再在菜单中显示twiss/束对话框的复选框
从配置中读取spinbox设置
[回归]修复打开不同模型时的异常(关闭日志文件)
[回归]修复在在线控制模块中更改值到MAD-X时的异常
0.0.3
日期:2018年1月6日
在匹配模式中删除约束时进行模糊选择(中间点击)
以守护线程启动日志线程(永远不会阻塞程序退出)
线程安全访问madx/tao
在后台获取指标元素数据
修复安装中缺失的.ui文件
修复通过gui_scripts入口启动时在Windows上启动时的崩溃
0.0.2
日期:2017年12月5日
连续匹配(在任何元素位置内)
修复匹配代码中的错误
更新依赖项:pint 0.8.1,cpymad>=0.18.2,pytao>=0.0.1
0.0.1
日期:2017年11月30日
第一次参考点,以定义相对稳定的版本。
功能列表
cpymad/pytao作为模拟后端
绘图:alfa/beta/包络/轨道;以及tao定义的绘图
集成Python shell(ipython/jupyter)目前不太有用:对象展示有限,未提供方便的API(绘图)
日志选项卡显示madx/tao输出
显示madx/tao命令的选项卡
显示和编辑束参数;初始条件(即twiss);以及元素属性(目前为只读)的框
2D楼层平面图
匹配(交互式+对话框)
发射率(对话框)
轨道对齐:2网格+N+光学方法
项目详情
下载文件
下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。