Copyright | (c) 2017 Jeffrey Rosenbluth |
---|---|

License | BSD-style (see LICENSE) |

Maintainer | jeffrey.rosenbluth@gmail.com |

Safe Haskell | None |

Language | Haskell2010 |

Recipes for the 17 wallpaper groups.

For more detailed descriptions of the various symmetry groups see: https://en.wikipedia.org/wiki/Wallpaper_group and "Creating Symmetry" by Frank A. Farris, 2015 Princeton University Press, Appendices A and B

The color wheel used for all of the images:

placed side by side with it's negative, that's where the purples come from.

- genericLattice :: RealFloat a => a -> a -> Int -> Int -> Recipe a
- p1 :: RealFloat a => a -> a -> [Coef a] -> Recipe a
- p2 :: RealFloat a => a -> a -> [Coef a] -> Recipe a
- rhombicLattice :: RealFloat a => a -> Int -> Int -> Recipe a
- cm :: RealFloat a => a -> [Coef a] -> Recipe a
- cmm :: RealFloat a => a -> [Coef a] -> Recipe a
- rectangularLattice :: RealFloat a => a -> Int -> Int -> Recipe a
- pm :: RealFloat a => a -> [Coef a] -> Recipe a
- pg :: RealFloat a => a -> [Coef a] -> Recipe a
- pmm :: RealFloat a => a -> [Coef a] -> Recipe a
- pmg :: RealFloat a => a -> [Coef a] -> Recipe a
- pgg :: RealFloat a => a -> [Coef a] -> Recipe a
- squareLattice :: RealFloat a => Int -> Int -> Recipe a
- p4 :: RealFloat a => [Coef a] -> Recipe a
- p4m :: RealFloat a => [Coef a] -> Recipe a
- p4g :: RealFloat a => [Coef a] -> Recipe a
- hexagonalLattice :: RealFloat a => Int -> Int -> Recipe a
- p3 :: RealFloat a => [Coef a] -> Recipe a
- p31m :: RealFloat a => [Coef a] -> Recipe a
- p3m1 :: RealFloat a => [Coef a] -> Recipe a
- p6 :: RealFloat a => [Coef a] -> Recipe a
- p6m :: RealFloat a => [Coef a] -> Recipe a
- enm :: RealFloat a => Int -> Int -> a -> a -> Complex a
- tnm :: RealFloat a => Int -> Int -> a -> a -> Complex a
- wnm :: RealFloat a => Int -> Int -> a -> a -> Complex a

# Wallpaper Groups

## Generic Lattice

Lattice vectors: **1, xi + i * eta**.

p1 :: RealFloat a => a -> a -> [Coef a] -> Recipe a Source #

The symmetry group with translations only.

p2 :: RealFloat a => a -> a -> [Coef a] -> Recipe a Source #

The symmetry group with four rotational centers of order 2, 180 degree rotational symmetry.

## Rhombic (Centered) Lattice

Lattice vectors: **1/ 2 + i * b, 1/2 - i * b**.

rhombicLattice :: RealFloat a => a -> Int -> Int -> Recipe a Source #

Rhombic Lattice for creating symmmetry about the center.

cm :: RealFloat a => a -> [Coef a] -> Recipe a Source #

Reflection about the horizontal axis plus horizontal glide reflection.

cmm :: RealFloat a => a -> [Coef a] -> Recipe a Source #

Rotaion and Reflection about the horizontal axis in addition to translation invariance about the center of the lattice.

## Rectangular Lattice

Lattice vectors: **1, i * l**.

rectangularLattice :: RealFloat a => a -> Int -> Int -> Recipe a Source #

Rectangular Lattice for creating symmetry with no rotational symmetry.

pg :: RealFloat a => a -> [Coef a] -> Recipe a Source #

Glide reflection in the horizontal direction.

pmm :: RealFloat a => a -> [Coef a] -> Recipe a Source #

Reflection about the horizontal and vertical axis in addition to 2-fold symmetry.

pmg :: RealFloat a => a -> [Coef a] -> Recipe a Source #

Glide Reflection about the horizontal axis in addition to 2-fold symmetry.

pgg :: RealFloat a => a -> [Coef a] -> Recipe a Source #

Glide Reflection about the line x=1/4 in addition to 2-fold symmetry.

## Square Lattice

Lattice vectors: **1, i**.

squareLattice :: RealFloat a => Int -> Int -> Recipe a Source #

Square Lattice for creating 4-fold symmetry.

p4m :: RealFloat a => [Coef a] -> Recipe a Source #

Reflection along the diagonal of the square in addition to 4-fold symmetry.

p4g :: RealFloat a => [Coef a] -> Recipe a Source #

Glide symmetry about the diagonal of the sqaure in addition to 4-fold symmetry.

## Hexagonal Lattice

Lattice vectors: **1, (-1 + i * sqrt(3)) // 2**.

hexagonalLattice :: RealFloat a => Int -> Int -> Recipe a Source #

Hexagonal Lattice for creating 3-fold symmetry.

p31m :: RealFloat a => [Coef a] -> Recipe a Source #

Reflection about the horizontal axis in addition to 3-fold symmetry.

p3m1 :: RealFloat a => [Coef a] -> Recipe a Source #

Reflction about the vertical axis in addtion to 3-fold symmetry.

p6m :: RealFloat a => [Coef a] -> Recipe a Source #

60 degree Rotation and reflection about the horizontal in addtion to 3-fold symmetry.

## Wave Functions

enm :: RealFloat a => Int -> Int -> a -> a -> Complex a Source #

Periodic waves with respect to two translations. A Fourier vector.