Parameters_LLG

#include "Spirit/Parameters_LLG.h"

Set Output

void Parameters_LLG_Set_Output_Tag(State *state, const char *tag, int idx_image = -1, int idx_chain = -1)

Set the tag placed in front of output file names.

If the tag is “<time>”, it will be the date-time of the creation of the state.

void Parameters_LLG_Set_Output_Folder(State *state, const char *folder, int idx_image = -1, int idx_chain = -1)

Set the folder, where output files are placed.

void Parameters_LLG_Set_Output_General(State *state, bool any, bool initial, bool final, int idx_image = -1, int idx_chain = -1)

Set whether to write any output files at all.

void Parameters_LLG_Set_Output_Energy(State *state, bool energy_step, bool energy_archive, bool energy_spin_resolved, bool energy_divide_by_nos, bool energy_add_readability_lines, int idx_image = -1, int idx_chain = -1)

Set whether to write energy output files.

  • step: whether to write a new file after each set of iterations

  • archive: whether to append to an archive file after each set of iterations

  • spin_resolved: whether to write a file containing the energy of each spin

  • divide_by_nos: whether to divide energies by the number of spins

  • add_readability_lines: whether to separate columns by lines

void Parameters_LLG_Set_Output_Configuration(State *state, bool configuration_step, bool configuration_archive, int configuration_filetype = IO_Fileformat_OVF_text, int idx_image = -1, int idx_chain = -1)

Set whether to write spin configuration output files.

  • step: whether to write a new file after each set of iterations

  • archive: whether to append to an archive file after each set of iterations

  • filetype: the format in which the data is written

Set Parameters

void Parameters_LLG_Set_N_Iterations(State *state, int n_iterations, int n_iterations_log, int idx_image = -1, int idx_chain = -1)

Set the number of iterations and how often to log and write output.

  • n_iterations: the maximum number of iterations

  • n_iterations_log: the number of iterations after which status is logged and output written

void Parameters_LLG_Set_Direct_Minimization(State *state, bool direct, int idx_image = -1, int idx_chain = -1)

Set whether to minimise the energy without precession.

This only influences dynamics solvers, which will then perform pseudodynamics, simulating only the damping part of the LLG equation.

void Parameters_LLG_Set_Convergence(State *state, scalar convergence, int idx_image = -1, int idx_chain = -1)

Set the convergence limit.

When the maximum absolute component value of the force drops below this value, the calculation is considered converged and will stop.

void Parameters_LLG_Set_Time_Step(State *state, scalar dt, int idx_image = -1, int idx_chain = -1)

Set the time step [ps] for the calculation.

void Parameters_LLG_Set_Damping(State *state, scalar damping, int idx_image = -1, int idx_chain = -1)

Set the Gilbert damping parameter [unitless].

void Parameters_LLG_Set_Non_Adiabatic_Damping(State *state, scalar beta, int idx_image = -1, int idx_chain = -1)

Set the non-adiabatic damping parameter beta [unitless].

void Parameters_LLG_Set_STT(State *state, bool use_gradient, scalar magnitude, const scalar normal[3], int idx_image = -1, int idx_chain = -1)

Deprecated:

Use Parameters_LLG_Set_Spin_Current() instead.

Set the spin current configuration.

  • use_gradient: True: use the spatial gradient, False: monolayer approximation

  • magnitude: current strength

  • direction: current direction or polarisation direction, array of shape (3)

void Parameters_LLG_Set_Temperature(State *state, scalar T, int idx_image = -1, int idx_chain = -1)

Set the (homogeneous) base temperature [K].

void Parameters_LLG_Set_Temperature_Gradient(State *state, scalar inclination, const scalar direction[3], int idx_image = -1, int idx_chain = -1)

Set an additional temperature gradient.

  • gradient_inclination: inclination of the temperature gradient [K/a]

  • gradient_direction: direction of the temperature gradient, array of shape (3)

Get Output

const char *Parameters_LLG_Get_Output_Tag(State *state, int idx_image = -1, int idx_chain = -1)

Returns the output file tag.

const char *Parameters_LLG_Get_Output_Folder(State *state, int idx_image = -1, int idx_chain = -1)

Returns the output folder.

void Parameters_LLG_Get_Output_General(State *state, bool *any, bool *initial, bool *final, int idx_image = -1, int idx_chain = -1)

Retrieves whether to write any output at all.

void Parameters_LLG_Get_Output_Energy(State *state, bool *energy_step, bool *energy_archive, bool *energy_spin_resolved, bool *energy_divide_by_nos, bool *energy_add_readability_lines, int idx_image = -1, int idx_chain = -1)

Retrieves the energy output settings.

void Parameters_LLG_Get_Output_Configuration(State *state, bool *configuration_step, bool *configuration_archive, int *configuration_filetype, int idx_image = -1, int idx_chain = -1)

Retrieves the spin configuration output settings.

Get Parameters

void Parameters_LLG_Get_N_Iterations(State *state, int *iterations, int *iterations_log, int idx_image = -1, int idx_chain = -1)

Returns the maximum number of iterations and the step size.

bool Parameters_LLG_Get_Direct_Minimization(State *state, int idx_image = -1, int idx_chain = -1)

Returns whether only energy minimisation will be performed.

scalar Parameters_LLG_Get_Convergence(State *state, int idx_image = -1, int idx_chain = -1)

Returns the convergence value.

scalar Parameters_LLG_Get_Time_Step(State *state, int idx_image = -1, int idx_chain = -1)

Returns the time step [ps].

scalar Parameters_LLG_Get_Damping(State *state, int idx_image = -1, int idx_chain = -1)

Returns the Gilbert damping parameter.

scalar Parameters_LLG_Get_Non_Adiabatic_Damping(State *state, int idx_image = -1, int idx_chain = -1)

Returns the non-adiabatic damping parameter.

scalar Parameters_LLG_Get_Temperature(State *state, int idx_image = -1, int idx_chain = -1)

Returns the global base temperature [K].

void Parameters_LLG_Get_Temperature_Gradient(State *state, scalar *inclination, scalar direction[3], int idx_image = -1, int idx_chain = -1)

Retrieves the temperature gradient.

  • inclination of the temperature gradient [K/a]

  • direction of the temperature gradient, array of shape (3)

void Parameters_LLG_Get_STT(State *state, bool *use_gradient, scalar *magnitude, scalar normal[3], int idx_image = -1, int idx_chain = -1)

Deprecated:

Use Parameters_LLG_Get_Spin_Current() instead.

Returns the spin current configuration.

  • magnitude

  • direction, array of shape (3)

  • whether the spatial gradient is used