BORIS v3.8 Released

Boris v3.8 is now available for download.

List of changes:

  • Bug fixes (various)
  • Enabled Transport module fully (charge and spin) for atomistic meshes.
  • Enabled SOTField and STField modules for atomistic meshes.
  • Enabled (s)LLG-STT equations for atomistic meshes.
  • MC algorithms now also work at zero temperature (as energy minimizer).
  • Micromagnetic Monte Carlo algorithm for 2-sublattice meshes completed.
  • Embedded Python scripting available:
  • in localhost mode execute scripts in embedded mode directly
  • “#pragma parallel for” directive in Python scripts when executed in embedded mode will split work between all available GPUs
  • command line launch, e.g. $ ./Boris -s script.py
  • allow injecting Python code to be executed after each iteration in computations, with virtually no overhead
  • Boris console captures sys.stdout so Python print statements now show in Boris console
  • in embedded mode matplotlib plots are drawn in separate popup windows
  • Matplotlib backend available for Boris, which directs matplotlib output to png files instead of displaying them
  • Improved command line options (run Boris -help from command line to see list)
  • Improved Python scripting:
  • Meshes can now be created as objects in Python; first one created replaces the default mesh, any after add new meshes.
  • All commands which take meshname as a parameter, are now available in each mesh object, so specifying meshname is not needed when used in this way
  • All mesh material parameters are available in each mesh object, and can be assigned value directly using the ‘=’ operator
  • All commands which take both meshname and paramname as parameters, are now available in each mesh object for each parameter
  • All mesh quantities (as found under display) are available in each mesh object
  • Added composite commands for setting stages and data saving (setstages and savedata methods in NSClient).
  • Improved stage control : nextstage, setschedulestage, runstage (can be used as ns.Run(stagenumber) in Python) commands
  • Addded savedata command : particularly useful for embedded mode (e.g. for implementing custom data saving schedules)
  • Improved SDesc solver efficiency and fixed a bug which affected multiscale simulations.
  • TMR module added in insulator meshes – TMR calculated when separating 2 magnetic meshes.
  • TMR options : cos dependence of R, or of G (slonczewski form)
  • Extended spin transport solver to include tunnel barriers
  • Tunnel barriers can include both tunnelling and metallic (pinholes) conduction
  • Profile extraction (dp_getexactprofile) now wraps-around when exceeding mesh dimensions.
  • New ‘modules’ command allows setting all required mesh modules in one call
  • New mstrayfield module allows calculating stray fields from dipole meshes in each mesh, at given mesh resolution.
  • shiftdipole command : allows shifting a dipole mesh
  • dipolevelocity command : set a dipole velocity, so dipoles move during a dynamics simulation
  • STfield module : non-constant polarization mode, allowing for more realistic macrospin STT, as well as allowing different STT parameters from top and bottom meshes.
  • Demag field now works in a multiscale simulation, both with multilayered convolution and supermesh convolution – i.e. any combination of atomistic and micromagnetic meshes is now fully enabled (true multiscale).
  • Global field pattern can be applied, which may be shifted during a simulation (loadovf2field, clearglobalfield, shiftglobalfield commands).
  • Theromoelectric effect added to transport solver.
  • Elastodynamics solver added. Magnetostriction and thermoelastic effects added to elastodynamics solver.
  • TAMR added.