2h_developers - WatsonGroupTCD/J2suscep GitHub Wiki
The key global variables in this code are defined below:
Variable | Function |
---|---|
dimension | stores the number of magnetic centres. |
no_of_j_val | stores the total number of unique J-values defined for the Hamiltonian. |
totalspin | stores the row (or column) size of the spin hamiltonian matrix. |
spin_mat_col | stores the column size of the spin matrix. |
j_mat_col | stores the column size of the J value matrix. |
spin | stores the S value (i.e. total number of unpaired e-/2) for each metal centre. |
jval | stores the different J-values in use. |
jmatx, jmaty | store information about which J-values are associated with different spin pairs. |
hamil | stores the spin hamiltonian matrix. |
g | stores the (isotropic) g-value |
B | stores the magnetic induction in Wb m-2. |
vac_perm | stores the strength of the applied field. |
field_str | permeability of free space in vacuum. |
init_temp | stores the minimum temperature for the susceptibility measurement. |
fin_temp | stores the maximum temperature for the susceptibility measurement. |
step_size | stores the step size for temperature increments. |
spinmat | stores all possible Ms values for each metal centre. |
basis | stores all possible combinations of Ms values of all metal centres. |
1. Init: This subroutine reads in the input file and initialises the global variables.
2. Printer: This subroutine prints some basic details to the output file.
3. SpinMatForm: This subroutine determines the Ms values for each paramagnetic centre.
4. FormBasis: The subroutine calculates the basis that will be used to span the Hamiltonian matrix. Each basis element comprises of a Ms value for each paramagnetic centre.
5. CheckPos and UpdatePos: These subroutines are helper subroutines for the subroutine ‘FormBasis’ to cycle through all the possible combinations of Ms values for the paramagnetic centres.
6. HamilForm: This subroutine defines the Hamiltonian matrix using the various basis elements and operates each element with the exchange operator.
7. Kron_del: This function is used to determine the value of the kronecker delta function.
8. Diag: This helper subroutine is used for matrix diagonalisation using the LAPACK library.
9. Zeeman: This subroutine adds the Zeeman term to the elements of the Hamiltonian matrix.
10. Suscep_calc: This subroutine defines the B matrix (eq. 21), calculates the matrix of coefficients (C matrix, eq. 22) and then calculates the temperature dependence of susceptibility.