Release Notes#
Version 1.2.0#
2022-07-15
New features#
TetraX now supports layer samples, which can be created with
tetrax.create_sample(geometry="layer")and are represented by 1D line-trace mesh along the normal direction of the layer(s). For this, the plane-wave Fredkin-Koehler method has been expanded to infinitely-extended layers (preprint available at arXiv, submitted to AIP Advances). See Example: Thick film dispersion and perturbation analysis.Templates for layer samples were added, in form of mono, bi and multilayers as possible 1D geometries in the
tetrax.geometriessubmodule:Bilinear interlayer-exchange interaction is now available (only for layered systems), see Example Antiferromagnetic bilayers. The interlayer-exchange constant
sample.J1(in J/m2) can also have different values between different layers in a multilayered sample, by supplying a list of values (see User Guide).The eigenmode calculation
ExperimentalSetup.eigenmodes(k=k_list,...)now accepts lists or 1D arrays as a parameter fork, e.g. to specify a non-equidistant wave-vector range.Cubic anistropy (first order) is now properly implemented and can be used for both waveguides and layer samples. See Example: Cubic anisotropy.
Rudimentary mode-profile visualization and animation has been added. If available, a mode profile can be visualized using
ExperimentalSetup.show_mode(k=...,N=...). See User Guide for details and Example: Mode movie.The numerical experiments implemented in TetraX are often based on seminal papers. In order to give credit to these works, when conducting a numerical experiment, TetraX now saves references important for this experiment to a bibtex file called
references.bib, found in the sample directory. In this file, each entry contains acommentfield describing how the reference was important for the computation. When publishing results calculated with TetraX in your research, please also give credit to the works which are important for the numerical experiments you conducted.
Minor changes#
When modes at a specific wave vector cannot be calculated, now,
NaNs are inserted into the dispersion dataframe. Previously, this simply caused an error.Warning message for magnetization pointing into the z direction removed.
Additional geometry added for waveguides,
round_wire_cross_section_refined()which supports local mesh refinement (see documentation).
Bug fixes#
ExperimentalSetup.Bextis now initialized as MeshVector filled with zeros. Previously, an error occurred when not specifying any external field.Automatic dispersion saving and perturbate-dispersion analysis have been reimplemented. Somehow they got lost in a previous merge. Saving of dispersions can be controlled with save_disp=True and
ExperimentalSetup.eigenmodes(fname="dispersion.csv",...).The director of uniaxial anisotropy
e_ucan now be specified as a triplet, e.g. [0, 0, 1], just like magnetization or external field. Previously, this caused complications with the possibility to set multiple uniaxial anistropies.
Other#
To make upcoming implementation of antiferromagnets easier, spherical mesh vectors for FM and AFM, conversion methods to cartesian and back, and local mesh vectors for AFM have been implemented.
Updated documentation.
Added instructions for installation on Windows computers.
4 examples included to the package:
thick film dispersion + perturbation and comparison with Kalinikos-Slavin: Thick film dispersion and perturbation analysis.
antiferromagnetically coupled films with interlayer exchange: Antiferromagnetic bilayers.
mode movie for magnetostatic surface waves in films: Mode movie.
cubic anisotropy in films: Cubic anisotropy.
Version 1.1.0#
2022-03-31
New features#
Added the
tetrax.sample_average()function available, which takes the average of a vector or scalar field in a given sample (can be volume, surface or line)verbose={True, False}added to all numerical experiments, allows to silence all output (except warnings)Saving vector/scalar fields to vtk files is now possible using
tetrax.write_field_to_file()bytetrax.write_field_to_file(field, sample)
or with the optional keywords
tetrax.write_field_to_file(field, sample, fname, qname)
As an alternative, the method
AbstractSample.field_to_file()can be used, where the sample parameters is obviously omitted.Added new equilibrium states
bloch_wallandneel_walltotetrax.vectorfields.Added new geometry
tube_segment_cross_sectionfor waveguide samples totetrax.geometries.Plotting of scalar and vector fields on a sample is now possible using the
plot()method of a sample object.Pertubation analysis and reverse-engineering of general spin-wave dispersions according to Phys. Rev. B 104, 174414 (2021) is now possible within the
eigenmodes()experiment, see User Guide Numerical Experiments.Implemented cubic anistropy (linearized dynamic field not properly tested yet).
Minor changes#
relax()experiment now returns only a boolean denoting the relaxation successmagnetization is automatically saved into folder of experimental setup after running
relax()dispersion is automatically saved to into folder of experimental setup after running
eigenmodes()
Other#
Populated User Guide and API reference.
Added more examples.
Indroduced
MeshVector,MeshScalarand related data types.
Version 1.0.1#
2022-03-07
Initial release.