WARP

Version: 
4.5
Description: 

Warp is an extensively developed open-source particle-in-cell code designed to simulate charged particle beams with high space-charge intensity. The name "Warp" stems from the code's ability to simulate Warped (bent) Cartesian meshes. This bent-mesh capability allows the code to efficiently simulate space-charge effects in bent accelerator lattices (resolution can be placed where needed) associated with rings and beam transfer lines with dipole bends. The code is set up around the interactive python interpreter with dynamically loaded compiled code modules.

Warp has a hierarchy of multi-species models ranging from full 3D, transverse slice x-y (including pz), and axisymmetric r-z (including ptheta), as well as simple envelope models useful for problem setup. Warp can operate in a boosted-frame mode. A broad variety of particle movers and field solvers are available. Particle movers include leap-frog models as well as gyro-kinetic models. Electrostatic and electromagnetic field solvers are included. Electrostatic field solvers include FFT, multi-grid, and multigrid with mesh refinement (both static and dynamic) options. The field solver work with bent (x-plane) meshes. A variety of conducting structures can be loaded on the grid with subgrid resolution and various boundary conditions can be employed. Particles can be scraped consistently with conducting structures and secondary particles (for e-cloud modeling) emitted. Electromagnetic field solvers are available in 3D, transverse x-y, and r-z packages.

Warp is also a plasma code and has been used for electron cloud and plasma modeling. Limited scattering and inelastic collision models are available, as well as models for particle interactions with surfaces.

Automated Submission Example: 
#!/bin/bash # ###################################################################### # warpbatch.sh - given a directory of .py warp files, generates batch # # submission specific to /Talon2/ Univa Grid Engine. # # ################################################################### # ## # #local vars email="insert user unt email address between the quote marks" jobnum=0 jobs=`ls *.py` # create batch file for each .py warp file for f in $jobs do #create batch script echo -e "#!/bin/bash\n#\n#$ -cwd\n#$ -P acad\n#$ -q serial.q\n#$ -V\n#$ -m e\n#$ -M $email\n">warp_job.$jobnum.qsub #update batch script with job file staging echo "STORAGE_DIR=\"/storage/scratch2/\$USER/\$JOB_ID\"" >> warp_job.$jobnum.qsub echo "mkdir -pv \$STORAGE_DIR" >> warp_job.$jobnum.qsub echo "cp \$SGE_CWD_PATH/$f \$STORAGE_DIR" >> warp_job.$jobnum.qsub #update batch script with warp run info echo "time python $f > warp_job.$jobnum.out" >> warp_job.$jobnum.qsub echo "cp warp_job.$jobnum.out \$SGE_CWD_PATH" >> warp_job.$jobnum.qsub #submit it! submit=`qsub warp_job.$jobnum.qsub` #increment job number jobnum=`expr $jobnum + 1` done
Research Area: 
Physics