Execute from a python scriptΒΆ

Here an example python script of how to run LLG3D for various temperatures:

"""An example script for running simulations at different temperatures."""

import numpy as np

from llg3d.parameters import RunParameters
from llg3d.solvers import get_solver_class

run_parameters = RunParameters()
run_parameters.solver = "opencl"  # Use OpenCL solver
run_parameters.precision = "double"
run_parameters.N = 10000  # Number of time steps
run_parameters.Jx = 3000  # Number of grid points in x-direction
run_parameters.Jy = 21  # Number of grid points in y-direction
run_parameters.Jz = 21  # Number of grid points in z-direction
run_parameters.start_averaging = 8000  # Start averaging after this many iterations
print(run_parameters)
Solver = get_solver_class(run_parameters.solver)

temperatures = (
    1000,
    1100,
    1200,
    1300,
    1350,
    1375,
    1390,
    1400,
    1410,
    1450,
    1500,
    1550,
    1700,
    1900,
)
m1 = []

files = []
for temperature in temperatures:
    print(f"\n-------\n>>> Running simulation at {temperature} K\n")
    run_parameters.T = temperature
    run_parameters.result_file = f"run_{temperature}K.npz"

    solver = Solver(**run_parameters.as_dict())
    solver.run()
    solver.save()
    files.append(solver.result_file)
    # Use observables for physical results
    m1.append(solver.observables["m1_mean"])


# Save the data to a text file
np.savetxt(
    "results.txt",
    np.array(list(zip(temperatures, m1))),
    header="Temperature (K), m1_mean",
    fmt="%.6e",
)

See llg3d.post.m1_vs_T for postprocessing the results.