Release of version 1.2.0
TetraX Release Notes
Version 1.2.0
New features
- TetraX now supports layer samples, which can be created with
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 ... - As templates for layer samples, we added mono, bi and multilayers as possible 1D geometries in the
tetrax.geometries
submodule:monolayer_line_trace()
bilayer_line_trace()
multilayer_line_trace()
- Bilinear interlayer-exchange interaction is now available (only for layered systems), see Example ... The interlayer-exchange constant
sample.J1
(in J/m^2) can also have different values between different layers in a multilayered sample, by supplying a list of values (see User Guide). - The eigenmode calculation
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.
- 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. - 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 calledreferences.bib
, found in the sample directory. In this file, each entry contains acomment
field describing how the reference was important for the computation. When publishing results calculated withTetraX
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 specificy wave vector cannot be calculated, now,
NaN
s are inserted into the dispersion dataframe. Previously, this simply caused an error. - Warning message for magnetization pointing into the z direction removed.
- Addititional geometry added for waveguides,
round_wire_cross_section_refined
which supports local mesh refinement (see documentation).
Bug fixes
-
ExperimentalSetup.Bext
is now initialized as MeshVector filled with zeros. Previously, an error occured 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
eigenmodes(fname="dispersion.csv",...)
. - The director of uniaxial anistropy
e_u
can now be specified as a triplet, e.g. [0, 0, 1], just like magnetization or external field. Previously, this caused complications with the possiblity 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.
- Guides for Windows installation.
- 4 examples added:
- thick film dispersion + perturbation and comparison with Kalinikos-Slavin
- antiferromagnetically coupled films with interlayer exchange
- mode movie for magnetostatic surface waves in films
- cubic anisotropy in films