Magnetism, Spectroscopy, Theory

**About PHI**

PHI is a computer program designed for the calculation of the magnetic properties of paramagnetic coordination complexes. PHI is written in FORTRAN 90/95 and has been tested on Windows, MacOS and Linux. The source code, pre-compiled binaries, the user manual and tutorial material are available for download below. Please refer to the User Manual and Installation Guide for further information.

PHI

Nicholas F. Chilton

email: nfchilton@gmail.com

PHI is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

PHI is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

If you would like to be added to the PHI mailing list to be notified of updates, please send me an email.

We request that any results obtained through the use of PHI are accompanied by the following reference: N. F. Chilton, R. P. Anderson, L. D. Turner, A. Soncini and K. S. Murray *J. Comput. Chem.* **34**, 1164-1175 (2013).

**Windows**

**MacOS X**

**Linux**

**Source Code and Documentaion**

**Change Log**

PHI v3.0.9

- Fixed bug where zJ could be fit even without a susceptibility calculation
- Fixed bug on MacOS where blank data points were read as zeros

PHI v3.0.8

- Fixed bug where FitLimit and NoPrint were incompatible

PHI v3.0.7

- Fixed bug where FitLimit was inoperable
- Minor updates and bug fixes

PHI v3.0.6

- Final output of fit now printed in .best file
- Bug in very low temperature MCE calculation fixed
- Minor bug fixes

PHI v3.0.5

- Minor bug fixes

PHI v3.0.4

- PHI is now licensed under GPLv3
- New integrated GUI
- Native to MacOS
- GUI directly receives data in memory
- GUI handles plotting directly
- Recent files available
- Settings saved between sessions
- Automatically checks for updates on launch
- Save plots as PDFs
- Runs in parallel mode by default
- Magnetic susceptibility defaults to M/H (use 'differential' keyword in ****Params block to revert to differential susceptibility)
- Uncertainties for fit parameters can be calculated with 'uncertainties' keyword in ****Params block
- Fit algorithm can now be terminated at user specified iteration count or threshold change in residual
- EPR Zeeman diagrams and transitions optionally visualised for any orientation
- Strain introduced into EPR simulations
- EPR voigt line shape defaults as Lorentzian
- Anisotropic EPR linewidths now allowed
- Different EPR types allowed for different frequncies
- Impurities added to heat capacity
- Progress bar shows progress of calculation
- Nuclear 'ion types' for hyperfine coupling
- Comment flags now accepted: ! or # or / as the first character of a line are not read by PHI
- Spin projection coefficients derived from the ITO 'approximation mode' are now printed
- Linear or logarithmic sweeps of independent variables
- Various minor bug fixes

PHI v2.1.6

- Various minor bug fixes

PHI v2.1.5

- Fixed bug which prevented fitting of zJ and TIP

PHI v2.1.4

- StaticB field now included in calculated properties
- Various minor bug fixes

GUI v2.1.4

- Minor bug fix: plotting engine crashed when x and y data were of different lengths

PHI v2.1.3

- Unknown energy levels can be included in levels.exp
- Approx mode now quicker when all g-factors are the same
- Minor bug fix: Deallocation bug in Approx mode now fixed

GUI v2.1.3

- Minor bug fix: .res files were deleted when a fit was finished

PHI and GUI v2.1.2

- Minor bug fix to the fitting algorithm, which mistakenly implemented lower limits when not requested
- Minor bug fix to the GUI, where final fitting results were not plotted

PHI and GUI v2.1.1

- Major bug fix to the approximation mode, which affected large spin systems

PHI and GUI v2.1 (complete internal re-write)

- Calculation of heat capacity
- Fit any combination of observables (including EPR)
- Faster code
- Fixed handedness bug in rotation of anisotropic g-tensors and CFPs
*(note: this means the beta angle for CFPs (not g-tensors) is now negative compared to previous versions)* - Upper and lower bounds on fit parameters
- Multiple EPR frequencies and temperatures now supported
- Unification of input specification
- Intermediate spins given for Approx mode
- Correct g-factors for spin multiplets in Approx mode
- 'Save survey' option to keep all results

PHI and GUI v2.0

- Fixed approximation mode incorrectly determined ferromagnetic spin state (since v1.9 only)
- Corrected a bug in the use of the Lines exchange with the |J,m
_{J}> basis of the Lanthanides - only affected calculations using the Ln(J) ion types with non-zero exchange interactions - Allowed the application of intermolecular interactions using the zJ formalism to anisotropic systems. Also corrected the units altered the formalism (see manual)
- PHI now checks if a single magnetic field direction is specified in error (see ****Params keyword 'Single' in manual)
- Added ability to fit EPR spectra (not yet in conjunction with other observables)
- Added integrated absorption mode to EPR calculation
- ****Params keyword 'GDir' now applies to the g-value residuals themselves and not just their orientations
- Added option to modify the vigour of the fitting algorithms
- Altered the implementation of magnetic impurities (see manual)
- Altered ordering of the inclusion of TIP, zJ and impurities (see manual)
- Single direction magnetic fields in the ****Params, ****Zeeman and ****EPR blocks can now be given as vectors or in polar coordinates
- 'StatcB' field now included in the printout of Matrix Elements ('OpMode Matrix Elements')
- Bug fix to the calculation of J-mixing in the states.res output
- Other minor PHI and GUI bug fixes

PHI and GUI v1.9

- Corrected calculations of polymetallic systems containing Co(II) when modelled with the T,P equivalence method
- Corrected the inclusion of paramagnetic impurities for anisotropic systems
- Fixed a large memory leak in the GUI (source of frequent crashes)
- Zeeman plots now achieved with "OpMode Sim Z" and the ****Zeeman block - please see documentation for further details
- Added a new Report feature to the GUI
- Added Reduced Magnetization plot to GUI
- Hotkeys for Execute (F5) and Abort (Esc.) in GUI
- Information regarding matrix memory requirements is now given with the "Coupling Report" OpMode
- Plot legends now draggable in GUI
- Minor GUI bug fixes
- Minor PHI bug fixes

PHI and GUI v1.8

- Parallel processing support for Windows and MacOS (please read Installation Guide for details)
- Magnetism calculations revised to be more stable and over 1.5 times faster
- Antisymmetric exchange implemented
- EPR intensities corrected
- Altered the determination of pseudo-doublets for the calculation of g-tensors
- Revised printing of fit iterations
- Legend added to plots in GUI
- Some minor bug fixes

PHI and GUI v1.7

- Binaries for Windows, Linux and MacOS now available
- Addition of basic EPR capabilities
- Added mean-field 'zJ' intermolecular exchange model to Approx mode
- Anisotropic exchange and rotation of the exchange reference frame now supported
- Altered behaviour of powder averaging: now maximum of xyz for powder susceptibility
- g-tensors can now be defined for all pseudo-doublets - PHI determines these automatically
- Fixed some IO error handling
- Some minor bug fixes

PHI and GUI v1.6

- Standalone GUI/PHI bundle for Windows allows the use of the GUI with no need for a Python environment
- Simulation of the magnetocaloric effect (MCE) now available: use 'opmode sim c'
- Surveys can now print observable quantities not just error residuals: the first line in the ***Survey block must now be either 'residual', 'm(i,j)', 's(i,j)' or 'c(i,j)', where i and j are the i-th field and the j-th temperature for the calculation. m, s and c represent magnetization, susceptibility and magnetocaloric effect, respectively
- Magnetic field directions now specified by 'field' command in the ****Params block. i.e. 'field z' for z direction, 'field xyz' for principal axes averaging or 'field powder N' for ZCW powder averaging where N is the ZCW level (N >= 0)
- A handful of small bug fixes