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.