Meander.jl

Define paths through abstract vector spaces, and work with them efficiently.

MIT License

Stars
0
Committers
1

= Meander.jl Sean Marshallsay [email protected] :source-highlighter: highlightjs :highlightjs-languages: julia :reproducible:

image:https://img.shields.io/badge/docs-dev-blue.svg[title="Dev", link="https://seamsay.gitlab.io/Meander.jl/dev"] image:https://gitlab.com/seamsay/Meander.jl/badges/main/pipeline.svg[title="Build Status", link="https://gitlab.com/seamsay/Meander.jl/pipelines"] image:https://gitlab.com/seamsay/Meander.jl/badges/main/coverage.svg[title="Coverage", link="https://gitlab.com/seamsay/Meander.jl/commits/main"]

[.text-center] image::docs/src/assets/logo-title.svg["The Meander.jl logo."]

Meander is a Julia package for easily defining and iterating through paths in abstract vector spaces. In particular this package was written with Brillouin zone https://en.wikipedia.org/wiki/Brillouin_zone#Critical_points[critical points] in mind, but should work fine with any kind of abstract vector space. See the examples below, or check the documentation link in the badges above.

== Examples

=== Brillouin Zone Critical Points

[source,julia]

include::test/examples/brillouin/code.jl[]

plot("dispersion.png")

<1> Define the path by specifying the critical points, creating an iterator with a length of N (1000 in this case). <2> Retrieve the indices of the iterator at which each of the critical points appears. <3> Retrieve the tags that were used to define the critical points. <4> The results of indices and tags can be passed straight to Makie. <5> The path is an entirely normal iterator, that can be used for broadcasting and other such things.

image::test/examples/brillouin/output.png["dispersion.png"]