Sign inSign up

mightylorenzo/puffin-test

By mightylorenzo

•Updated almost 8 years ago

'Full' Puffin, with testing framework and all tests built and passed, and all documentation built.

Image
0

319

mightylorenzo/puffin-test repository overview

⁠Puffin (developer container)

Puffin (Parallel Unaveraged Fel INtegrator) simulates a Free Electron Laser (FEL). Puffin is a massively parallel numerical solver for an unaveraged, 3D FEL system of equations, and is written mostly in Fortran 90, using MPI and OpenMP.

Documentation is being developed here⁠.

⁠Features

Puffin is a so-called 'unaveraged' FEL code - meaning it is absent of the slowly varying envelope approximation (SVEA) and wiggler period averaging approximations. It does not utilize a 'slicing' model of the beam phase space and radiation field, and instead utilizes an algorithm which is much more similar to a Particle-In-Cell (PIC) code methodology.

In addition, some accelerator components are included for simulation of the 'realistic' undulator line, and together with the lack of restrictions, means it may model:

  • The full, broad bandwidth frequency spectrum, limited only by the Nyquist frequency of the mesh
  • Full electron beam transport
  • Transport of large energy spread beams through the undulator, and the radiation emitted from these beams
  • Tapered undulators
  • Fully 3D undulators, including modelling of the wiggler entries/exits and natural focusing
  • Interleaved undulator-chicane lattices
  • Variably polarized undulators
  • Tuning of each undulator module

It presently does not include the effects of space charge, and ignores emission of the backwards wave from the e-beam.

⁠Running This Image

There are currently two images - a 'full' container intended for development purposes (this one), which has all tests built, along with the testing infrastructure (pFUnit) and developer and user documentation, etc. It is intended to be used only interactively, rather than as an app. The other, the 'user' container, is run like an executable. You pass it the number of processors you want to use, and the name of the input file in the current directory to run.

The images are not configured for or intended for use on a cluster; rather, they allow you to get Puffin up and running quickly for smaller, 1D or few-slice runs on a local machine (e.g. your laptop or desktop).

To run this container, do

docker run -it -v $(pwd):/home/puffin_user/project mightylorenzo/puffin-test

which will start the container interactively, allowing you to do runs and tests as you see fit. Puffin is built in the /home/puffin_user/built/puffin directory in this container.

⁠License

BSD-3-Clause Copyright (c) 2012-2018 University of Strathclyde. All rights reserved.

Tag summary

Content type

Image

Digest

Size

522.2 MB

Last updated

almost 8 years ago

docker pull mightylorenzo/puffin-test