Skip to content

Releases: richard-evans/vampire

Version 6.0

28 Aug 12:19
Compare
Choose a tag to compare

Major new features

New SOT implementation

Minor new features

Random seed for spin initialisation
Added hexagonal particle arrays
Added spinel crystal structure
Added full Heusler alloy crystal structure
Added fully atomistic dipole solver
Added 2D ellipse particle shape

Patch release

24 Feb 16:39
Compare
Choose a tag to compare
5.0.1

Incremented patch version number

Version 5.0

31 Dec 19:26
Compare
Choose a tag to compare

Major new features

Improved dipole-dipole implementation using the dipole tensor (by Andrea Meo)
Implemented generic Dzyaloshinskii-Moriya interactions and Neel pair anisotropy
Beta CUDA and OpenCL acceleration (single card only)
Support for parallel and binary I/O for supercomputing systems and ARCHER
New vampire data converter (vdc) utility for generating POVRAY/xyz files from spin configurations

Minor feature enhancements

Feature: Added initial support for non-magnetic atoms
Feature: Added implementation of ferromagnetic resonance fields and program with customizable field strength, frequency and direction
Feature: Added implementation of lateral and vertical temperature gradients
Feature: Added support for core-shell voronoi films
Feature: Added functions for creating random alloy distribution representing grain segregation of certain materials
Feature: Added shape factors to truncated octahedron generation code to allow elongated crystals
Feature: Added function to generate faceted nanoparticle with tunable 100,110 and 111 facets
Feature: Added Monte Carlo preconditioner to generate realistic spin state for thermalised LLG simulations
Feature: Added support for CSG operations with multi-atom unit cells
Feature: Added support for exponentially decaying exchange interactions
Feature: Added support for generic vectorial exchange interactions
Feature: Added 3D bubble-type crystallisation model with unable crystallisation radius
Feature: Added implementation of spin torque field
Feature: Added new archer target for makefile for compiling on ARCHER
Feature: Added option for rocksalt (NaCl) structure
Feature: Added support for precision control of magnetization data output with output:precision = and output:fixed-width input file flags
Feature: Implemented Neel anisotropy with site specific origin and pair wise constants
Feature: Implemented generic Dzyaloshinskii-Moriya interactions
Feature: Added capability for processing normalised exchange values from ucf files
Feature: Implemented working checkpoint feature for loop-based programs

Code Enhancements

Added support for double precision numbers of time steps, numbers of steps up to 10**12 and new limits for incremental variables to avoid infinite loops.
Added initial implementation of local uniaxial anisotropy fields
Added improved error reporting for seriously malformed material files
Improved error messages for reading unit cell file interaction list errors
Completed utility for generating framework files for new vampire modules
Changed default licence for new code to Free BSD
Added header timing function for more accurate timing of i/o routines
Removed warnings for missing variables and signed/unsigned comparisons and added debug option for llvm compiler
Removed deprecated C++ MPI bindings
Added vampire manual to source repository
Added function to calculate exchange fields and eliminated double negative in constant
Implemented parallelisation of exchange interaction verification and improved messages to log file
Added flag to enable bulk Neel pair anisotropy calculation
Modified parallel random number seeds to avoid correlation between different processor ranks for sequential seeds.
Made githash and version information available in info header, and added information to output and log files for easier reproducibility

Bugs squashed

Bugfix: fixed allowable time step increment to be 1 to prevent infinite loop
Bugfix: Changed input file reading of certain large numbers to use float by default with casting to int
Bugfix: Fixed Segmentation fault using global demagnetizing field calculation with new statistics calculation
Bugfix: Added missing implementation of spherical harmonics energy calculation for Monte Carlo simulations
Bugfix: fixed compilation of alloy.cpp on older compilers
Bugfix: fixed random crash in alloy code
Bugfix: moved small correction factor in crystal generation to small lattice offset to prevent duplicate atoms in large scale parallel simulations.
Bugfix: Corrected implementation of two temperature pulse calculations to include realistic pump power parameter (now specified in mJ/cm^2)
Bugfix: Added explicit required compiler support for c++11 for header file
Bugfix: Implemented fix from Joe Barker to cmc for materials with different moments to prevent small drift of direction of m
Bugfix: Fixed bugs in checkpoint restart for hysteresis and modified Curie temperature program in order to restarted from old temperature with checkpoint
Bugfix: fixed initialization bug found by cherishsir
Bugfix: now initializing material susceptibility with material magnetization
Bugfix: Added missing factor 0.5 in exchange energy calculation
Buxfix: Added 1/2 factor to magnetostatic energy
Bugfix: fixed sign error in 4th order cubic anisotropy and added comment in uniaxial field for clarity
Bugfix: Applied patch from Andrea Meo fixing Slonczewski field and parallel compilation error

Release 4.0

23 Feb 15:32
Compare
Choose a tag to compare

Major new features

  • Added ability to generate localized laser pulses and height dependent temperature profiles using the two temperature model
  • Added temperature rescaling relating calculated temperature dependent properties to experiment
  • Added implementation of magnetization statistics with arbitrary masks for calculation of total, material, height and material-height properties
  • Added program for calculating the effective Gilbert damping by simulating a rotation of the magnetization to 30 degrees from the z-axis and relaxation to the field direction
  • Added basic checkpointing of simulations
  • Added implementation of spherical harmonics for higher order uniaxial anisotropies (2nd, 4th and 6th order terms)

Minor new features

  • Added message to log file indicating number of atoms generated
  • Added new keyword to control nearest neighbour range for surface anisotropy calculation.
  • Added header to output file giving timestamp and running environment which generated the file
  • Added variable output:output-rate to control rate of output to screen and output file
  • Added Monte Carlo statistics counters and tweaked low temperature trial step width to allow faster relaxation of domain walls
  • Added reset for statistical counters after equilibration for time series program
  • Added calculation of magnetization susceptibility |m|
  • Added better default seeds for random number generator with warm up to avoid initial correlations on different CPUs

Other minor changes

  • Modified grain statistics collection to retain grain association for continuous layers
  • Applied patch from Andreas Biternas incorporating qvoronoi library into source code to remove library dependency
  • Applied patch from Wu Hong-Ye correcting unnecessary declaration of valarray in MC moves

Squashed bugs

Bugfix: fixed non-standard use of MPI_IN_PLACE causing runtime crash
Bugfix: fixed NaN in grain magnetization calculation for materials with zero atoms
Bugfix: added test for symmetric exchange interactions in custom unit cell files
Bugfix: removed output from other processes to output file
Bugfix: enabled surface anisotropy calculation if surface anisotropy constant is defined in material file.
Bugfix: fixed rare event of missing atoms in parallel decomposition
Bugfix: fixed copying of ij position vectors in MPI version
Bugfix: fixed incorrect definition of local atom in surface anisotropy calculation
Bugfix: removed erroneous loop in grain output for single material
Bugfix: Fixed keyword definition for constraint direction