2h_developers - WatsonGroupTCD/J2suscep GitHub Wiki

For Developers

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.

⚠️ **GitHub.com Fallback** ⚠️