Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
277 commits
Select commit Hold shift + click to select a range
2b7c164
Added angle control to exchange stiffness program
richard-evans May 2, 2023
340a37c
Added flag to enable FMR fields when frequency or fmr field strength …
richard-evans May 2, 2023
436055d
Bugfix: fixed colouring for colour wheel due to incorrect angle calcu…
richard-evans May 2, 2023
9ed9dfc
Bugfix: fixed calculation of magnetisation statistics with checkpointing
richard-evans May 4, 2023
98de566
Fixes minus sign error
JaBCo1 May 6, 2023
3ea4993
Fixes bug 6r2 anisotropy and improves comments
JaBCo1 May 6, 2023
d28c3d3
Simplifies k4r4 anisotropy energy calculation
JaBCo1 May 6, 2023
568b67c
Simplifies calculation of k40 anisotropy energy
JaBCo1 May 6, 2023
80c5a94
Simplifies k2r2 anisotropy energy
JaBCo1 May 6, 2023
1c388a7
Added implementation of sticks into vdc for improved visualisation in…
richard-evans Apr 25, 2023
562e61d
Fixes k6,0 and simplifies k4,0
JaBCo1 May 11, 2023
66793cb
Fixes error in k6r2 field calculation
JaBCo1 May 11, 2023
b4e99fe
Simplifies k6r2 fields calculation
JaBCo1 May 11, 2023
7a7bbc6
Feature: added susceptibility and specific heat statistics to checkpo…
richard-evans May 11, 2023
cef946d
Bugfix: Moved inline functions to anonymous namespaces to avoid undef…
richard-evans May 12, 2023
8d2e771
Added an optional --output-file command line argument, to specify the…
a-naden May 25, 2023
0ffedf6
Merge pull request #96 from a-naden/develop
a-naden May 26, 2023
547bd3a
Added functionality to output voronoi vertices for future data analysis
richard-evans Jun 14, 2023
73a3345
Implemented grain number data analysis in vdc. Fixed text output to u…
richard-evans Jun 14, 2023
a40baf9
Merge branch 'develop' of https://github.com/richard-evans/vampire in…
richard-evans Jun 14, 2023
13621b8
Bugfix: fixed error in mask calculation for grain magnetisation stati…
richard-evans Jun 30, 2023
fb89b4c
Added <cstdint> libraries
InsomniacVegan Jul 11, 2023
feb1121
Updated version number to 7.0.0 and updated developer list
richard-evans Jul 16, 2023
1c05f1a
Refactor: Updates to starting banner
richard-evans Jul 18, 2023
b8f4f8e
Feature: Added scripts folder and script to list vampire input parame…
richard-evans Jul 19, 2023
ed2f071
Fix parallel computation of spin accumulation
am1808 Jul 22, 2023
e7ce726
Merge pull request #97 from InsomniacVegan/develop
richard-evans Oct 2, 2023
5939541
Added grain statistics calculation to GPU vampire
Oct 2, 2023
73f29be
Statistics v1
Oct 5, 2023
666c60f
Proper implementation of energy statistics for SLD module
Oct 6, 2023
c9d5256
First trial of parallel implementation - seems to be a bug with the l…
Oct 9, 2023
d63c2ec
latest version.
JoelPhys Oct 17, 2023
f5ab2f9
Fixed issue with parallel statistics & first implementation of STD in…
Oct 17, 2023
413fb22
Added spin temperature statistics and four-spin exchange
marastr Oct 18, 2023
23cdedd
Change to config and rm the hardcoded addition of the Zeeman field fr…
Oct 19, 2023
c2ed4c7
Merge branch 'release' into develop
Oct 19, 2023
bb48907
I think it is now parallelised correctly.
JoelPhys Oct 27, 2023
c416687
Checking parallelisation.
JoelPhys Oct 30, 2023
18a3b06
starting work on FFT in time.
JoelPhys Nov 15, 2023
bfe4d21
FFT in time working for single node.
JoelPhys Nov 21, 2023
93ef5f1
Added mask for k-points in parallel discrete ft.
JoelPhys Nov 21, 2023
6126306
Feature: Added implementation of field pulse simulation to pulse a sy…
richard-evans Nov 21, 2023
fc5cfbd
Parallel implementation Suzuki-Trotter
Nov 23, 2023
8a18b73
moved spinwave options (one sided, normalise, write to file) to seper…
JoelPhys Nov 24, 2023
fd9de81
Bugfix - set correct equilibration field during field pulse simulation
richard-evans Nov 27, 2023
3dc19ee
latest version.
JoelPhys Nov 29, 2023
251dc83
added fft_in_time() function to spinwaves.hpp
JoelPhys Nov 30, 2023
638291e
Added spin length output function
davidrpapp1 Dec 7, 2023
7e47c44
Added LSF-MC and LSF-LLG integrators
davidrpapp1 Dec 7, 2023
070b94a
Fixes bug in fourth order rotational energy
JaBCo1 Dec 13, 2023
4575b73
Fixed bug with statistics for material spin and lattice temp
Jan 4, 2024
a4abb9e
first commit 2024.
JoelPhys Jan 5, 2024
0f40d0e
added one-sided, complex-mag, reduc-method and norm-k as user defined…
JoelPhys Jan 9, 2024
2953025
Bugfix: Increased number of atoms allowed for unit cell files to 100,…
richard-evans Jan 12, 2024
7098fba
Manual: Added default parameters for system size parameters.
richard-evans Jan 12, 2024
b7a38db
Manual: Changed LaTeX formatting for easier reading.
richard-evans Jan 12, 2024
260f28d
Bugfix: Added using::std to enable standard fixed-width variables on …
richard-evans Jan 12, 2024
b3eff87
Bugfix: Removed unused variables creating compiler warnings
richard-evans Jan 12, 2024
8080a13
Bugfix: fixed incorrect ordering of variables with category class con…
richard-evans Jan 12, 2024
30d3c48
Bugfix: Fixed bitwise comparison for bool
richard-evans Jan 12, 2024
d683be9
Bugfix: Added missing grain function in case statement for grain spin…
richard-evans Jan 12, 2024
223adfd
Manual: Updated to reflect removed dipole parameters
richard-evans Jan 12, 2024
62c15c1
Bugfix: Added missing header file
richard-evans Jan 12, 2024
9235956
Bugfix: Added missing header files
richard-evans Jan 12, 2024
2871f45
added spin component as option. Also prevented spinwaves from launchi…
JoelPhys Jan 15, 2024
9b46fb2
Implemented LSF-LLG-RK4 integrator
davidrpapp1 Jan 26, 2024
4a7c6ad
Fixes comment
JaBCo1 Jan 30, 2024
f4508a0
Fixes 6-6 anisotropy bug
JaBCo1 Jan 30, 2024
917286f
Adds odd versions of current rotational harmonic anisotropies
JaBCo1 Jan 30, 2024
5ce39d9
Adds manual entry describing how to use harmonic anisotropy
JaBCo1 Jan 31, 2024
15e5302
6-2 anisotropy bugfix attempt
JaBCo1 Jan 31, 2024
eadf5ce
6-2-Anisotropy bugfix
JaBCo1 Jan 31, 2024
52fe475
Fixes 6,2 anisotropy bug.
JaBCo1 Feb 4, 2024
23b766b
Adds 2,-1 anisotropy harmonic
JaBCo1 Feb 5, 2024
7e513a2
Adds 2,1 anisotropy harmonic
JaBCo1 Feb 5, 2024
fa21fbe
Adds 4,-3 anisotropy harmonic
JaBCo1 Feb 5, 2024
30385aa
Adds 4,3 anisotropy harmonic
JaBCo1 Feb 5, 2024
b155796
Adds 4,-1 anisotropy harmonic
JaBCo1 Feb 5, 2024
1a36ce3
Adds 4,1 anisotropy harmonic
JaBCo1 Feb 5, 2024
0cf643c
Adds 6,-5 anisotropy harmonic
JaBCo1 Feb 5, 2024
43d00d3
Fixes 6,-5 anisotropy harmonic bug
JaBCo1 Feb 5, 2024
0185e5b
Fixes 6,-5 harmonic anisotropy bug
JaBCo1 Feb 5, 2024
aea7aae
Adds 6,5 harmonic anisotropy
JaBCo1 Feb 5, 2024
305f911
Adds 6,5 anisotropy harmonic
JaBCo1 Feb 5, 2024
98df416
Adds 6,-3 anisotropy harmonic
JaBCo1 Feb 5, 2024
4af1662
Fixes 6,-3 anisotropy harmonic bug
JaBCo1 Feb 5, 2024
abbe3af
Removes some unused constants
JaBCo1 Feb 5, 2024
7174ff7
Adds 6,3 anisotropy harmonic
JaBCo1 Feb 5, 2024
ee169e5
Adds 6,-1 anisotropy harmonic
JaBCo1 Feb 5, 2024
51bfbcc
Fixes 6,-1 anisotropy harmonic bug
JaBCo1 Feb 5, 2024
554a6e2
Adds 6,1 anisotropy harmonic
JaBCo1 Feb 5, 2024
2b8a848
Begain adding option for the calculation of SW for specific system ma…
JoelPhys Feb 6, 2024
b0cdade
Merge remote-tracking branch 'refs/remotes/origin/develop' into develop
richard-evans Feb 6, 2024
becc3cb
Added ability to output frequency values to seperate file.
JoelPhys Feb 7, 2024
9c2748d
Fixed issue with clang compilation relating to std::vector<fftw_compl…
JoelPhys Feb 12, 2024
fce9ff9
merged with develop.
JoelPhys Feb 16, 2024
6674279
Adds orthonormal version of tesseral harmonic single ion anisotropy
JaBCo1 Feb 16, 2024
355f4e6
updated check for external path file.
Feb 19, 2024
6ebb043
Added wrapper function with support for long messages (>2^32) of char…
richard-evans Feb 19, 2024
120de61
Added external fields and anisotropy fields in the calculate_fields f…
Feb 26, 2024
549f52f
Morse potential
Feb 26, 2024
99d9001
Added option for selection of SPECIFIC k points for SW calculation in…
JoelPhys Feb 29, 2024
52e59d3
removed unwanted files.
JoelPhys Feb 29, 2024
a5becfa
added .gitignore for obj/spinwaves.
JoelPhys Feb 29, 2024
35a91be
bug thermal velo
Feb 29, 2024
e38fe60
Bugfix: Added enhanced interaction range for parallel calculations fo…
richard-evans Mar 5, 2024
882fd1f
added option to turn off prefactor. Also renamed some variables to he…
JoelPhys Mar 21, 2024
2b158b4
Added intermediate structure factor output option.
Mar 27, 2024
71852b5
Full Neel interaction
Apr 22, 2024
3ce3d4b
Can select multiple spectrums containing 1 or more specific materials.
JoelPhys May 3, 2024
92c9863
added equilibration damping
May 8, 2024
57b1196
rm extra files
May 8, 2024
a549848
rm extra files
May 8, 2024
68471d1
remove output_test
May 8, 2024
2d71f5b
remove inputs_before
May 8, 2024
cb2e603
Delete output_new
May 8, 2024
4b9ec3a
Delete inputs_before directory
May 8, 2024
bcac938
Delete output_np1
May 8, 2024
45245a4
Delete output_test
May 8, 2024
0c041f8
Delete output_np2
May 8, 2024
8d5be1f
Delete output_np8
May 8, 2024
f806c05
Delete output_old
May 8, 2024
da86935
Delete output_old_np1
May 8, 2024
f9602b5
Delete output_old_np2
May 8, 2024
e752d52
Delete output_s_wdamp
May 8, 2024
dbcbeb3
Delete output_serial
May 8, 2024
57a3272
Delete output_s
May 8, 2024
c858d6d
Delete output_p2_s
May 8, 2024
4351189
Delete output_p2_p
May 8, 2024
345dd2c
Delete output_old_s
May 8, 2024
2467b28
Delete output_p1_np4
May 8, 2024
3c76649
Delete output_p1_p
May 8, 2024
0d79598
Delete output_p1_p2_p
May 8, 2024
23147e8
Delete output_p1_p2_s
May 8, 2024
28d3ef6
Delete output_p1_s
May 8, 2024
1506338
Delete output_p2_np4
May 8, 2024
4b9457b
Updated scatter to work correctly for rank0 calculations.
JoelPhys May 14, 2024
9deb69d
fixed issue with scattering for time-series data.
JoelPhys May 14, 2024
a791cd3
fixed issue with MPI benig requried for serial compilation.
JoelPhys May 16, 2024
2cb3807
Renamed some user flags for clarity.
JoelPhys May 17, 2024
5ee8f10
Parallel checkpoint bug fix
May 29, 2024
381c08a
Merge branch 'spin-lattice' of github.com:marastr/vampire into spin-l…
May 29, 2024
fc6c94d
fixed bugs.
JoelPhys May 30, 2024
02d7be2
Some Manual updates SLD
Jun 19, 2024
ab46a44
four spin bug fix
Jul 16, 2024
a8cc983
Little vtk conversion fix
ViK0s Jul 17, 2024
8529d3e
test
Nov 1, 2024
2d63c0e
Fixed compiler warnings for g++ and llvm compilers
richard-evans Jan 7, 2025
5959dbf
merge latest release changes into develop
richard-evans Jan 7, 2025
5a859af
Fixed ordering of category class initialisation
richard-evans Jan 7, 2025
68d6e5e
added new higher order anisotropy implementation
richard-evans Jan 7, 2025
65061cb
Merge branch 'lsf-integration' into integration2
richard-evans Jan 7, 2025
76d5d53
Bugfix: Fixed compiler warnings
richard-evans Jan 7, 2025
1b1252d
Merge branch 'spinwaves' into integration with tidy
richard-evans Jan 8, 2025
7f545c9
Merge pull request #120 from marastr/spin-lattice
richard-evans Jan 8, 2025
33f7b63
Merge branch 'spin-lattice' into integration
richard-evans Jan 9, 2025
1e7ab12
Bugfix: Fixed compile warnings and added enabled flag to avoid unnece…
richard-evans Jan 9, 2025
df822aa
Bugfix: Fixed compile warnings for spin wave module
richard-evans Jan 9, 2025
78d4843
Tidy: Removed hard dependency on FFTW and tidied headers for spinwave…
richard-evans Jan 9, 2025
5e948cf
Bugfix: renamed header files
richard-evans Jan 9, 2025
65eacc2
Header file renaming
richard-evans Jan 9, 2025
f49b87f
Fixed compiler warnings
richard-evans Jan 9, 2025
51aec1f
Bugfix: Fixed unit cell generation bounds that can in rare cases miss…
richard-evans Jan 21, 2025
ca21851
Bugfix: revert counter for octants in mph Monte Carlo
richard-evans Jan 28, 2025
312a405
Bugfix: removed erroneous normalisation in torque calculation
richard-evans Feb 7, 2025
3c5ac06
Feature: Added HAMR cool program
richard-evans Apr 23, 2025
8dab317
Added new module for initialising spin textures such as skyrmions, ho…
richard-evans May 16, 2025
6dc27f3
Feature: Added idealised perovskite crystal structure
richard-evans May 27, 2025
8bf1eb2
Feature: Added support for material specific polarisers for STT and S…
richard-evans Jun 17, 2025
fa67435
Bugfix: enabled actual local polarisers for STT/SOT calculations
richard-evans Jun 18, 2025
8e0975d
Fixed deprecated API calls for cuSPARSE and CUDA. Fixed incompatible …
RandmC13 Jun 27, 2025
8e68428
Added cubic 4th and 6th order anisotropy
RandmC13 Jun 27, 2025
3a69fb2
Made cubic anisotropy calculation more concise
RandmC13 Jun 27, 2025
5201182
Made cubic anisotropy calculation more concise
RandmC13 Jun 27, 2025
03395d9
Added Neel anisotropy to the cuda branch
RandmC13 Jun 27, 2025
d24d022
Changed fourth and sixth order uniaxial anisotropy to agree with the …
RandmC13 Jun 30, 2025
762b1e7
Feature: Added rocksalt supercell for NiO simulations
richard-evans Jul 4, 2025
578ffaf
Feature:Added flag to enable output of the (last) dipole field to file.
richard-evans Jul 4, 2025
0a06f6b
thermal spin fields separated from total external
Jul 4, 2025
7dac749
Merge branch 'integration' of https://github.com/richard-evans/vampir…
Jul 4, 2025
522a91c
Bugfix:Added self term to atomistic B-field
richard-evans Jul 4, 2025
86b686d
Merge branch 'integration' of github.com:richard-evans/vampire into i…
richard-evans Jul 4, 2025
8e5417f
Bugfix:Fixed error in self term for atomistic dipole.
richard-evans Jul 4, 2025
31bb469
Quickfix atomistic dipole
am1808 Jul 4, 2025
c9ec332
Bugfix: added support for forwards and backwards currents in spin tra…
richard-evans Aug 7, 2025
28e9501
Implemented rotational anisotropy variants in CUDA
RandmC13 Aug 24, 2025
42fdee7
Fixed bug where monte carlo would not work on CUDA with an odd number…
RandmC13 Aug 31, 2025
b0c4661
Edited makefile to prevent issue where building CUDA after serial bre…
RandmC13 Sep 3, 2025
62ab65c
Made sure that all device memory is de-allocated at the end of the si…
RandmC13 Sep 3, 2025
055c9dd
Implement external phonon pump for spin-lattice dynamics
MHamza223 Sep 18, 2025
67b92d4
Clean up debug code
MHamza223 Sep 19, 2025
fcb55f9
update code comments
MHamza223 Sep 28, 2025
5555bda
Corrected internal units of resistivity to Ohm-Angstroms
richard-evans Oct 13, 2025
81f1d85
Added set_int class for determining user vs default inputs
richard-evans Oct 13, 2025
7e0fb79
Bugfix:Fixed material specific spin polarizers for uniform STT/SOT.
richard-evans Oct 13, 2025
7653a9e
Bugfix: fixed incorrect indexing in rocksalt structure
richard-evans Oct 16, 2025
30facae
Merge pull request #128 from MHamza223/linear-phonons
richard-evans Nov 3, 2025
abb8d05
Merge pull request #115 from ViK0s/develop
richard-evans Nov 3, 2025
041f1ed
Merge branch 'develop' into four-spin-fix
richard-evans Nov 3, 2025
ca5e0e2
Merge pull request #112 from jacksonross1024/four-spin-fix
richard-evans Nov 3, 2025
94c3d60
Merge branch 'integration' into develop
richard-evans Nov 3, 2025
fed31aa
Bugfix: compilation issue and whitespace changes
richard-evans Nov 3, 2025
a83f585
Merge develop into integration
richard-evans Nov 3, 2025
0e20b95
Added basic support for agglomerates of nanoparticles
richard-evans Jan 31, 2026
532cda2
Bugfix: fixed issue where new uniaxial anisotropy vector stops runnin…
richard-evans Feb 2, 2026
64195d4
Fixed missing call to output dipole fields
richard-evans Feb 2, 2026
8bc3f20
add missing call for hierarchical dipole
Feb 2, 2026
0a2350b
mn2au cpp fix
Feb 4, 2026
0a904bd
small changes needed for the sld
Feb 5, 2026
0837c70
Merge branch 'sld_2026' into develop
richard-evans Feb 5, 2026
bea2f18
Bugfix: removed erroneous prefactor in spin transport torque calculation
richard-evans Mar 6, 2026
da6f935
Minor changes to makefile to prevent forced recompilation and depreca…
richard-evans Mar 24, 2026
7625cdd
Merge branch 'integration' into integration-cuda
richard-evans Mar 24, 2026
4afe050
Merge branch 'develop' into integration-cuda
richard-evans Mar 24, 2026
c680283
Fixed minor compilation issues with single precision
richard-evans Mar 24, 2026
c3e38ec
Fixed kagome lattice implementation with proper stacking
Apr 14, 2026
f415696
Added placeholder data structures, files and scaffolding for sublatti…
richard-evans Apr 21, 2026
e901a90
Refactored cell creation into separate function for spin transport mo…
richard-evans Apr 22, 2026
ecc06e5
Refactored spin transport initialise for clearer logic flow
richard-evans Apr 22, 2026
64d8639
Added baseline non-sublattice resolved torques in spin transport module
richard-evans Apr 22, 2026
1792a1b
fix spintorque mpi and make spin torque calculation microcell volume …
Apr 26, 2026
1ca6def
Merge branch 'develop' of https://github.com/richard-evans/vampire in…
Apr 26, 2026
3721e79
spin torque comments added
Apr 26, 2026
ee1ec54
Fix two stale test expectations
richard-evans May 5, 2026
08bb0e1
Added implementation of sublattice resolved spin transport initialisa…
richard-evans May 7, 2026
ea671c1
Completed implementation of spin transport resistance calculation wit…
richard-evans May 7, 2026
06f8d85
Spin transport bug fixes
richard-evans May 7, 2026
68bffc2
Bug fixes for sublattice spin transport
richard-evans May 10, 2026
3ab308e
Feature - added combined laser and electrical pulse program for ultra…
richard-evans May 18, 2026
f8fcd40
Bug fixes for spin transport
richard-evans May 20, 2026
b1afc4f
Sublattice spin transport bug fixes
richard-evans May 26, 2026
d30bc63
Merge branch 'spin-transport' into develop
richard-evans May 26, 2026
7870918
Bug fix for sublattice spin transport. Empty sublattices cause a shor…
richard-evans Jun 12, 2026
e3c8ab8
Optimised sublattice spin transport for much better parallel efficiency
richard-evans Jun 13, 2026
f8c7a89
Feature: Added implementation for direct initialisation of spin textu…
richard-evans Jun 13, 2026
101ec16
Added more line-level comments to the spin initialize module
richard-evans Jun 13, 2026
2db4623
Feature: Implemented alternating grain initialisation
richard-evans Jun 14, 2026
e9af10f
Added sample inputs for laser-electrical pulse
richard-evans Jun 14, 2026
5370046
Added missing gitignore file to spin initialise module, and as a defa…
richard-evans Jun 19, 2026
8707ded
Bugfix: Added missing header file on linux builds
richard-evans Jun 19, 2026
f65b306
Fixed gitignore location to obj/module/ older to enable compilation
richard-evans Jun 22, 2026
0c15274
Bugfix: Fixed problem with voronoi grain size and spacing not being b…
richard-evans Aug 11, 2026
cedbee2
Feature: Implemented elliptical grains in voronoi media
richard-evans Aug 11, 2026
fd5dbb8
Feature: added implementation of bimodal grain distribution in vorono…
richard-evans Aug 11, 2026
ef7aa43
Added optional dipole field output to hierarchical module and fixed s…
richard-evans Sep 2, 2026
6b5a7c1
Added helpful comments to makefile
richard-evans Sep 2, 2026
5ffac18
Updated developer list to main developers, with file listing other co…
richard-evans Sep 2, 2026
27dd1e8
ADD fmr-field calculation in CUDA
am1808 Sep 2, 2026
25f39a6
Bug fixes and updates to developers file
richard-evans Sep 2, 2026
18a2e38
Merge pull request #142 from am1808/develop_cuda_fmr
richard-evans Sep 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 18 additions & 0 deletions developers.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Main Developers
-----------------------------------------------
Lead: Richard F L Evans, University of York
Sarah Jenkins, Canva UK
Andrea Meo, University of Bari, Italy
Matthew Ellis, University of Sheffield, UK
Mara Strungaru, University of Manchester, UK
Sergiu Ruta, Sheffield Hallam University, UK

Contributors
-----------------------------------------------
Daniel Meilak, Andrew Naden, Jack Collings,
Oscar Arbelaez, Sam Morris, Rory Pond,
Weijia Fan, Milton Persson, Junlin Wang,
Wu Hong-Ye, Razvan Ababei, Sam Westmoreland,
Jackson Ross, Phanwadee Chureemart,
Pawel Sobieszczyk, Joseph Barker, Thomas Ostler,
Andreas Biternas, Roy W Chantrell
43 changes: 42 additions & 1 deletion hdr/anisotropy.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,10 @@
// This file is part of the VAMPIRE open source package under the
// Free BSD licence (see licence file for details).
//
// (c) Sam Westmoreland 2016. All rights reserved.
// (c) Jack Collings and Sam Westmoreland 2016. All rights reserved.
//
// Email: sw766@york.ac.uk
// jbc525@york.ac.uk
//
//------------------------------------------------------------------------------
//
Expand All @@ -26,6 +27,15 @@
//--------------------------------------------------------------------------------
namespace anisotropy
{
//-----------------------------------------------------------------------------
// Function to check orthogonality, set orthonormality and generate last
// last anisotropy vector
//-----------------------------------------------------------------------------
void set_anisotropy_vectors( std::vector<double>& v1,
std::vector<double>& v2,
std::vector<double>& v3,
int mat);

//-----------------------------------------------------------------------------
// function to initialize anisotropy module
//-----------------------------------------------------------------------------
Expand Down Expand Up @@ -57,11 +67,37 @@ namespace anisotropy
//-----------------------------------------------------------------------------
double get_anisotropy_constant(const int material);
double get_ku2(const int material);
double get_k2r1(const int material);
double get_k2r1_odd(const int material);
double get_k2r2(const int material);
double get_k2r2_odd(const int material);
double get_ku4(const int material);
double get_k4r1(const int material);
double get_k4r1_odd(const int material);
double get_k4r2(const int material);
double get_k4r2_odd(const int material);
double get_k4r3(const int material);
double get_k4r3_odd(const int material);
double get_k4r4(const int material);
double get_k4r4_odd(const int material);
double get_ku6(const int material);
double get_k6r1(const int material);
double get_k6r1_odd(const int material);
double get_k6r2(const int material);
double get_k6r2_odd(const int material);
double get_k6r3(const int material);
double get_k6r3_odd(const int material);
double get_k6r4(const int material);
double get_k6r4_odd(const int material);
double get_k6r5_odd(const int material);
double get_k6r5(const int material);
double get_k6r6(const int material);
double get_k6r6_odd(const int material);
double get_kc4(const int material);
double get_kc6(const int material);
std::vector<double> get_ku_vector(const int material);
std::vector<double> get_kr_vector(const int material);
std::vector<double> get_kl_vector(const int material);

//-----------------------------------------------------------------------------
// function to identify surface atoms
Expand All @@ -78,6 +114,11 @@ namespace anisotropy
//---------------------------------------------------------------------------
bool match_material_parameter(std::string const word, std::string const value, std::string const unit, int const line, int const super_index, const int sub_index, const int max_materials);

std::vector<double> get_neel_tensor();

bool is_neel_enabled();

bool is_rotational_enabled();
} // end of anisotropy namespace

#endif //ANISOTROPY_H_
17 changes: 17 additions & 0 deletions hdr/atoms.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,14 @@

#include <string>
#include <vector>
#include <cstdint>

#include "exchange.hpp"

// Load standard forms of fixed-width types (needed for some compilers)
using std::uint64_t;
using std::int64_t;

// unit vector type
class uvec_t{
public:
Expand Down Expand Up @@ -94,13 +99,17 @@ namespace atoms
extern std::vector <double> y_spin_array;
extern std::vector <double> z_spin_array;
extern std::vector <double> m_spin_array; /// Array of atomic spin moments
extern std::vector <double> mass_spin_array; /// Array of mass of atoms

extern std::vector <double> x_total_spin_field_array; /// Total spin dependent fields
extern std::vector <double> y_total_spin_field_array; /// Total spin dependent fields
extern std::vector <double> z_total_spin_field_array; /// Total spin dependent fields
extern std::vector <double> x_total_external_field_array; /// Total external fields
extern std::vector <double> y_total_external_field_array; /// Total external fields
extern std::vector <double> z_total_external_field_array; /// Total external fields
extern std::vector <double> x_thermal_field_array; /// Total external fields
extern std::vector <double> y_thermal_field_array; /// Total external fields
extern std::vector <double> z_thermal_field_array; /// Total external fields

extern std::vector <zval_t> i_exchange_list;
extern std::vector <zvec_t> v_exchange_list;
Expand All @@ -111,6 +120,14 @@ namespace atoms

extern std::vector <uvec_t> neighbour_eij_array; // unrolled list of eij unit vectors between neighbouring atoms

extern std::vector <double> x_total_spin_forces_array; /// Total spin dependent fields
extern std::vector <double> y_total_spin_forces_array; /// Total spin dependent fields
extern std::vector <double> z_total_spin_forces_array; /// Total spin dependent fields

extern std::vector <double> x_velo_array; /// Total spin dependent fields
extern std::vector <double> y_velo_array; /// Total spin dependent fields
extern std::vector <double> z_velo_array; /// Total spin dependent fields

}


Expand Down
8 changes: 7 additions & 1 deletion hdr/category.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ namespace cat{
double my;
double mz;

// energy and toque variables
// energy and torque variables
double torque;
double mean_torque;
double energy;
Expand All @@ -48,6 +48,12 @@ namespace cat{
double theta;
double phi;

// spin temperature variables
double spin_temp;
double mean_spin_temp;
double SxH2;
double SH;

// member functions
category_t(); /// constructor

Expand Down
1 change: 1 addition & 0 deletions hdr/cells.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ namespace cells{
extern double macro_cell_size_x; /// lateral size of local macro-cells (A)
extern double macro_cell_size_y; /// lateral size of local macro-cells (A)
extern double macro_cell_size_z; /// lateral size of local macro-cells (A)
extern double atomic_volume; // volume of each magnetic moment for atomistic dipole self term

extern std::vector <int> local_cell_array;
extern std::vector <int> num_atoms_in_cell; /// number of atoms in each cell
Expand Down
1 change: 1 addition & 0 deletions hdr/constants.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ namespace constants{

extern const double muB; // Bohr Magneton (Joules / Tesla)
extern const double kB; // Boltzmann constant (Joules / Kelvin)
extern const double kB_eV; //Boltzmann constant in eV

} // end of exchange namespace

Expand Down
6 changes: 6 additions & 0 deletions hdr/create_atoms_class.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,12 @@
#ifndef CREATE_ATOMS_CLASS_H_
#define CREATE_ATOMS_CLASS_H_

#include <cstdint>

// Load standard forms of fixed-width types (needed for some compilers)
using std::uint64_t;
using std::int64_t;

//namespace create{
namespace cs{

Expand Down
4 changes: 4 additions & 0 deletions hdr/demag.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@
#include <vector>
#include <cstdint>

// Load standard forms of fixed-width types (needed for some compilers)
using std::uint64_t;
using std::int64_t;

namespace demag{

extern bool fast;
Expand Down
14 changes: 14 additions & 0 deletions hdr/dipole.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,11 @@
// C++ standard library headers
#include <string>
#include <vector>
#include <cstdint>

// Load standard forms of fixed-width types (needed for some compilers)
using std::uint64_t;
using std::int64_t;

// Vampire headers
#include "dipole.hpp"
Expand Down Expand Up @@ -55,6 +60,10 @@ namespace dipole{
extern double atomistic_cutoff;
extern bool atomsitic_tensor_enabled;

extern int cells_num_cells; // number of macrocells
extern int cells_num_local_cells; // number of local macrocells
extern std::vector < double > cells_volume_array; // volume of each macrocell

//-----------------------------------------------------------------------------
// Function to unroll cells dipolar field into atomic field
//-----------------------------------------------------------------------------
Expand All @@ -70,6 +79,11 @@ namespace dipole{
//------------------------------------------------------------------------------
double spin_magnetostatic_energy(const int atom, const double sx, const double sy, const double sz);

//--------------------------------------------------------
// Function to output calculated dipole cell fields to file
//--------------------------------------------------------
void output_dipole_fields();

//--------------------------------------------------------
// Function to send cells field to be output in cfg file
//--------------------------------------------------------
Expand Down
2 changes: 2 additions & 0 deletions hdr/exchange.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ class zten_t{
namespace exchange{

extern bool biquadratic; // flag to enable biquadratic exchange calculation
extern bool four_spin; // flag to enable four spin exchange calculation

//-----------------------------------------------------------------------------
// Function to initialise exchange module
Expand All @@ -95,6 +96,7 @@ namespace exchange{
//---------------------------------------------------------------------------
double single_spin_energy(const int atom, const double sx, const double sy, const double sz);
double single_spin_biquadratic_energy(const int atom, const double sx, const double sy, const double sz);
double single_spin_four_spin_energy(const int atom, const double sx, const double sy, const double sz);

//-----------------------------------------------------------------------------
// Function to calculate exchange fields for spins between start and end index
Expand Down
50 changes: 50 additions & 0 deletions hdr/lsf.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
//------------------------------------------------------------------------------
//
// This file is part of the VAMPIRE open source package under the
// Free BSD licence (see licence file for details).
//
// (c) David R Papp 2024. All rights reserved.
//
//------------------------------------------------------------------------------
//

#ifndef LSF_H_
#define LSF_H_

/// Header file for LLG namespace
namespace LSF_arrays{

//==========================================================
// Namespace to store persistant LSF integration arrays
//==========================================================

extern std::vector<double> x_lsf_array;
extern std::vector<double> y_lsf_array;
extern std::vector<double> z_lsf_array;

extern std::vector<double> x_euler_array;
extern std::vector<double> y_euler_array;
extern std::vector<double> z_euler_array;

extern std::vector<double> x_heun_array;
extern std::vector<double> y_heun_array;
extern std::vector<double> z_heun_array;

extern std::vector<double> x_spin_storage_array;
extern std::vector<double> y_spin_storage_array;
extern std::vector<double> z_spin_storage_array;

extern std::vector<double> x_initial_spin_array;
extern std::vector<double> y_initial_spin_array;
extern std::vector<double> z_initial_spin_array;

extern bool LSF_set;

extern std::vector<double> mod_S;

extern std::vector<double> tx;
extern std::vector<double> ty;
extern std::vector<double> tz;

}
#endif /*LSF_H_*/
23 changes: 23 additions & 0 deletions hdr/lsf_mc.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
//
// This file is part of the VAMPIRE open source package under the
// Free BSD licence (see licence file for details).
//
// (c) David R Papp 2024. All rights reserved.
//
//------------------------------------------------------------------------------
//

// Program headers
#ifndef LSF_MC_H_
#define LSF_MC_H_

namespace montecarlo{

// Declare spin vectors
extern std::vector<double> mod_S;
extern bool mc_set;
extern void mcinit();

}
#endif /*LSF_MC_H_*/
54 changes: 54 additions & 0 deletions hdr/lsf_rk4.hpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
//------------------------------------------------------------------------------
//
// This file is part of the VAMPIRE open source package under the
// Free BSD licence (see licence file for details).
//
// (c) David R Papp 2024. All rights reserved.
//
//------------------------------------------------------------------------------
//

#ifndef LSF_RK4_H_
#define LSF_RK4_H_

// Header file for LSF-RK4 namespace
namespace LSF_RK4_arrays{

//==========================================================
// Namespace to store persistant LSF-RK4 integration arrays
//==========================================================

extern std::vector<double> x_lsf_array;
extern std::vector<double> y_lsf_array;
extern std::vector<double> z_lsf_array;

extern std::vector<double> x_initial_spin_array;
extern std::vector<double> y_initial_spin_array;
extern std::vector<double> z_initial_spin_array;

extern std::vector<double> x_k1_array;
extern std::vector<double> y_k1_array;
extern std::vector<double> z_k1_array;

extern std::vector<double> x_k2_array;
extern std::vector<double> y_k2_array;
extern std::vector<double> z_k2_array;

extern std::vector<double> x_k3_array;
extern std::vector<double> y_k3_array;
extern std::vector<double> z_k3_array;

extern std::vector<double> x_k4_array;
extern std::vector<double> y_k4_array;
extern std::vector<double> z_k4_array;

extern bool LSF_RK4_set;

extern std::vector<double> mod_S;

extern std::vector<double> tx;
extern std::vector<double> ty;
extern std::vector<double> tz;

}
#endif /*LSF_RK4_H_*/
Loading