There are two versions of the Serpent code: the publicly distributedSerpent 1, for which the development and maintenance has been discontinued, and Serpent 2, which is the current development version. Obtaining the code is a two-step process:
1) | Obtain a licensed copy of Serpent 1 from one of the distributing organizations (see below). |
2) | Contact the Serpent developer team and request a copy of Serpent 2. |
The procedure is not ideal, and the main reason for distributing Serpent 2 this way is that the code is still under development and not considered quite ready for public distribution.
The main distributors of Serpent 1 are the OECD/NEA Data Bank in Europe, Japan, Korea, Mexico, Russia and Turkey, and RSICC in North America. The NEA release was issued in May 2009 (Package-ID NEA-1840, updated in January 2010) and RSICC release in March 2010 (Code Number C00757).If you are unable to obtain the code directly from the two data centers, try contacting the NEA Data Bank Computer Program Servicesor one of the nominated establishments in your country.
VMware Fusion: Powerfully Simple Virtual Machines for Mac. VMware Fusion Pro and VMware Fusion Player Desktop Hypervisors give Mac users the power to run Windows on Mac along with hundreds of other operating systems, containers or Kubernetes clusters, side by side with Mac applications, without rebooting. Fusion products are simple enough for home users and powerful enough for IT. Serpent Fusion is a difficult puzzle game based on Snake where you grow longer by attaching boxes to your back instead of eating food. From this, you also gain the ability to stand still and move backwards, allowing you to reverse into boxes and stick to them.
The standard license allows using the code free of charge for non-commercial research and educational purposes, but it should be noted that Serpent is not an open source code (see release notes). In addition to the research license, a provisional commercial license is available until the end of 2019. Contact the developer team for more information on commercial use of Serpent.
Source code updates are distributed directly to registered users by e-mail, and all users are encouraged to register by contacting the developer team.
System requirements
Serpent is developed under 64-bit PC Linux operating systems using the GNU and Intel C compilers. Earlier versions were also developed in MAC OS X, but some of the compatibility may have been lost.Serpent has no Windows version, but the code has been successfully compiled in Cygwin (see instructions at the discussion forum).Parallelization with the Message Passing Interface (MPI) may require installation of additional libraries, and graphical output produced by geometry and mesh plotters requires installation of the GD open source graphics library. Instructions for installing GD in various systems can be found at the discussion forum. The source codecan also be compiled without MPI and GD.
Due to the internal unionized energy grid format, running Serpent 1 requires significantly more memory compared to other continuous-energy Monte Carlo codes. Transport calculations can be carried out with 100 MB to 1 GB of memory, but full-scale assembly burnup calculation may require some 5 to 10 GB of RAM. The memory demand can be reduced using built-in methods, such as grid thinning or the double-indexing of cross sections, but even then the maximum number of burnable materials is limited to a few hundred. Serpent 2 has no similar limitations, and the use of lower optimization modes allows running burnup calculations with tens or hundreds of thousands of depletion zones in a typical PC workstation.
Data libraries
The Serpent 1 installation package contains ACE format cross section libraries based on the JEF-2.2, JEFF-3.1, JEFF-3.1.1, ENDF/B-VI.8 and ENDF/B-VII evaluated nuclear data files. Continuous-energy cross sections are available for 432 nuclides at 300K, 600K, 900K, 1200K, 1500K and 1800K temperatures.S(α,β) thermal scattering data is available for light and heavy water and graphite. The data libraries are missing photon cross sections, 0K neutron cross sections needed for the DBRC method, andthermal scattering data for some commonly used research reactor materials, such as zirconium hydride and beryllium.If needed, this data can be taken from other ACE format libraries, or produced using the NJOY nuclear data processing system. Some ACE format data libraries are also available on-line:
• | JEFF 3.2 data libraries at the OECD/NEA Data Bank: http://www.oecd-nea.org/dbforms/data/eva/evatapes/jeff_32/ |
• | TENDL data libraries at the TALYS-code website: www.talys.eu |
It is recommended that the eprdata12 library distributed with MCNP6 is used for photon transport simulations until the preparation of new cross section libraries for Serpent 2 has been completed. The calculation also requires supplementary photon physics data, which can be downloaded on-line.
The 'xsdir' directory files used by MCNP can be converted to Serpent format using the 'xsdirconvert.pl' utility script found at the link page.
Radioactive decay and fission yield libraries based on the five evaluations are included in the installation package. This data is needed for burnup calculation and read from standard ENDF format files. Decay and fission yield data is also available at various public websites:
• | The OECD/NEA Data Bank: www.oecd-nea.org/dbforms/data/eva/evatapes/ |
• | The Los Alamos T2 Nuclear Information Service: t2.lanl.gov/data/data.shtml |
• | The US National Nuclear Data Center: www.nndc.bnl.gov |
• | The IAEA Nuclear Data Centre: www-nds.iaea.org |
Serpent 2 is currently distributed without any data libraries, but the production and testing of ACE files based on the most recent evaluated nuclear data files is under way. The libraries will also include data missing from Serpent 1 distribution (0K cross section, more S(α,β) data, heating and DPA cross sections, etc.)
The basic features of Serpent input and output format are described in the User's Manual. The code uses a conventional universe-based constructive solid geometry (CSG) model, which is very similar to MCNP and KENO-VI (the 'universe' concept is basically equivalent with the 'unit' definition in SCALE). Serpent has no interactive user-interface, but the input format is designed to be as user-friendly as possible, and the code checks the input for most common errors before running the simulation. Experienced Monte Carlo users are likely to understand the input at a glance, and learning to use Serpent as the first code should be relatively easy, even without prior experience with transport codes and only basic skills in reactor physics.
All numerical output produced by Serpent is written in Matlab m-format files to simplify post-processing of results. The same format is also read by various open-source math tools, such as GNU Octave.
The most recent version of the Serpent 1 User Manual can be downloaded at themain page.Serpent 2 has no separate documentation, and the pdf version of the manual will be replaced by the on-line Serpent Wiki. Additional support for users is provided at the Serpent Discussion Forum, which also contains descriptions of some of the new features and methodologies implemented in the code during the past few years.
A quick installation guide, example input files and more resources for code users can be found at the link page.
Since the public release of Serpent 1.1.7 in May 2009, the user community has grown to more than 1000 users in 230 universities and research organizations in 43 countries around the world. More than 80% of the registered users are also using Serpent 2. International user group meetings are organized annually in different locations. The meetings held so far are:
2011 | 1st International Serpent User Group Meeting in Dresden, Germany, September 15-16 2011 |
2012 | 2nd International Serpent User Group Meeting in Madrid, Spain, September 19-21 2012 |
2013 | 3rd International Serpent User Group Meeting in Berkeley, California, USA, November 6-8 2013 |
2014 | 4th International Serpent User Group Meeting in Cambridge, UK, September 17-19, 2014 |
2015 | 5th International Serpent User Group Meeting in Knoxville, Tennessee, USA, October 13-16, 2015 |
2016 | 6th International Serpent User Group Meeting in Milan, Italy, September 26-29, 2016 |
2017 | 7th International Serpent User Group Meeting in Gainesville, Florida, USA, November 6-9, 2017 |
2018 | 8th International Serpent User Group Meeting in Espoo, Finland, May 29 - June 1, 2018 |
2019 | 9th International Serpent User Group Meeting in Atlanta, Georgia, USA, October 14-19, 2019 |
2020 | 10th International Serpent User Group Meeting in Munich, Germany, October 27-30, 2020 |
The 11th International Serpent UGM has been tentatively argreed to be hosted in the US, but no detailed plans have been made yet due to the on-going COVID-19 situation.
2.1.32 | February 24, 2021 |
Update to Serpent 2.1.32 | |
2.1.31 | May 16, 2019 |
Update to Serpent 2.1.31 | |
2.1.30 | February 14, 2018 |
Update to Serpent 2.1.30 | |
2.1.29 | June 12, 2017 |
Update to Serpent 2.1.29 | |
2.1.28 | February 6, 2017 |
Update to Serpent 2.1.28 | |
2.1.27 | September 23, 2016 |
Update to Serpent 2.1.27 | |
2.1.26 | April 21, 2016 |
Update to Serpent 2.1.26 | |
2.1.25 | February 23, 2016 |
Update to Serpent 2.1.25 | |
2.1.24 | June 25, 2015 |
Update to Serpent 2.1.24 | |
2.1.23 | March 24, 2015 |
Update to Serpent 2.1.23 | |
2.1.22 | November 27, 2014 |
Update to Serpent 2.1.22 | |
2.1.21 | June 11, 2014 |
Update to Serpent 2.1.21 | |
2.1.20 | April 6, 2014 |
Update to Serpent 2.1.20 | |
2.1.19 | March 31, 2014 |
Update to Serpent 2.1.19 | |
2.1.18 | February 27, 2014 |
Update to Serpent 2.1.18 | |
2.1.17 | February 24, 2014 |
Update to Serpent 2.1.17 | |
2.1.16 | December 23, 2013 |
Update to Serpent 2.1.16 | |
2.1.15 | July 31, 2013 |
Update to Serpent 2.1.15 | |
2.1.14 | June 28, 2013 |
Update to Serpent 2.1.14 | |
2.1.13 | May 3, 2013 |
Update to Serpent 2.1.13 | |
2.1.12 | February 4, 2013 |
Update to Serpent 2.1.12 | |
2.1.11 | December 14, 2012 |
Update to Serpent 2.1.11 | |
2.1.10 | December 12, 2012 |
Update to Serpent 2.1.10 | |
2.1.9 | October 22, 2012 |
Update to Serpent 2.1.9 | |
2.1.8 | September 7, 2012 |
Update to Serpent 2.1.8 | |
2.1.7 | June 15, 2012 |
Update to Serpent 2.1.7 | |
2.1.6 | June 8, 2012 |
Update to Serpent 2.1.6 | |
2.1.5 | May 9, 2012 |
Update to Serpent 2.1.5 | |
2.1.4 | April 4, 2012 |
Update to Serpent 2.1.4 | |
2.1.3 | March 2, 2012 |
Update to Serpent 2.1.3 | |
2.1.2 | February 13, 2012 |
Update to Serpent 2.1.2 | |
2.1.1 | February 6, 2012 |
Update to Serpent 2.1.1 | |
2.1.0 | February 3, 2012 |
Release of base version 2.1.0 |