DiPAS是一个可微模拟粒子加速器的框架。
DiPAS的Python项目详细描述
迪帕斯
DiPAS是一个可微模拟粒子加速器的程序。它作为一个框架,因此 支持广泛的用例,如粒子跟踪或光学计算,如关闭 轨道搜索或Twiss参数的计算。在
{a4}支持的计算也与^相关 用于区分用户定义的数量以及各种基于梯度的优化器的功能 用由此导出的量。在
DiPAS包可以解析MADX晶格定义,因此允许零开销导入现有晶格。 此外,它还支持来自提供的元素类的自定义晶格定义。在
示例用法
通过调谐四极杆使光束线损耗最小化:
importnumpyfromdipas.buildimportfrom_filefromdipas.elementsimportQuadrupoleimporttorchlattice=from_file('example.madx')forquadinlattice[Quadrupole]:quad.k1=torch.nn.Parameter(quad.k1)optimizer=torch.optim.Adam(lattice.parameters(),lr=1e-3)particles=torch.from_numpy(numpy.load('particles.npy'))whileTrue:tracked,loss_val=lattice.linear(particles,recloss='sum')lost=1-tracked.shape[1]/particles.shape[1]iflost<0.01:# Fraction of particles lost less than 1%.breakoptimizer.zero_grad()loss_val.backward()optimizer.step()
- 项目
标签: