Skip to content

Conversation

@SeanStansill
Copy link
Contributor

Fully functioning helicity modulus monitor. Only implemented for uniaxial anisotropy and exchange. Both have CUDA support

Sean added 13 commits September 28, 2022 09:24
Changes which affect other parts of JAMS:

- Add two arrays to the base hamiltonian class of size(num_spins).

- Add pure virtual class functions to base hamiltonian class for the two terms of the helicity modulus.

- Add include physics.h and create a pointer to the physics module so helicity modulus can access the value of the temperature.

- Add functions to calculate the helicity modulus in uniaxial anisotropy hamiltonian class (including CUDA support).

- Helicity modulus from exchange is calculated directly in the helicity modulus class.
Fix typo

Fix virtual functions

New functions were created as pure virtual functions. Since we have only calculated the equations for two hamiltonians, this is not required.

Fix redundant declared but undefined function

Add helicity modulus to the list of named monitors

Add helicity modulus to cmake sources

Allow helicity modulus to get cuda stream

Add cuda header files to helicity modulus

Fix accessing temperature, resize arrays

Remove comments
- Remove multiplying entropy contribution with beta (must now be done during analysis)
- Change Hamiltonian’s entropy function to a Vec3
- Internal energy difference now calculated correctly for uniaxial anisotropy
- Change the ideology of the exchange stiffness tensor calculation (more calculations left to the analysis)
Changed the entropy contribution. Calculations based on the following
https://journals.aps.org/prb/pdf/10.1103/PhysRevB.55.41

Numbers are squared. In the analysis, must take the expectation value and multiply by beta
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant