From 3b99e1259fea76103adc3c25b3af2da6d98635ed Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 14 Apr 2021 17:14:20 +0200 Subject: Add some animations --- vorlesungen/punktgruppen/crystals.py | 269 +++++++++++++++ vorlesungen/punktgruppen/poetry.lock | 591 ++++++++++++++++++++++++++++++++ vorlesungen/punktgruppen/pyproject.toml | 15 + 3 files changed, 875 insertions(+) create mode 100644 vorlesungen/punktgruppen/crystals.py create mode 100644 vorlesungen/punktgruppen/poetry.lock create mode 100644 vorlesungen/punktgruppen/pyproject.toml (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py new file mode 100644 index 0000000..0f97a0f --- /dev/null +++ b/vorlesungen/punktgruppen/crystals.py @@ -0,0 +1,269 @@ +from manim import * + +import math as m +import numpy as np + +# configure style +config.background_color = '#202020' +config.tex_template.add_to_preamble( + r"\usepackage[p,osf]{scholax}" + r"\usepackage{amsmath}" + r"\usepackage[scaled=1.075,ncf,vvarbb]{newtxmath}" +) + +# scenes +class Geometric2DSymmetries(Scene): + def construct(self): + # title + title = Tex(r"Geometrische \\ Symmetrien") + title.scale(1.5) + self.play(Write(title)) + self.wait() + self.play(FadeOut(title)) + self.wait() + + self.intro() + self.cyclic() + self.dihedral() + + def intro(self): + # create square + square = Square() + square.set_fill(PINK, opacity=.5) + self.play(SpinInFromNothing(square)) + self.wait() + + # the action of doing nothing + action = MathTex(r"1") + self.play(Write(action)) + self.play(ApplyMethod(square.scale, 1.2)) + self.play(ApplyMethod(square.scale, 1/1.2)) + self.play(FadeOut(action)) + + # show some reflections + axis = DashedLine(2 * LEFT, 2 * RIGHT) + sigma = MathTex(r"\sigma") + sigma.next_to(axis, RIGHT) + + self.play(Create(axis)) + self.play(Write(sigma)) + + self.play(ApplyMethod(square.flip, RIGHT)) + self.wait() + + for d in [UP + RIGHT, UP]: + self.play( + Rotate(axis, PI/4), + Rotate(sigma, PI/4, about_point=ORIGIN)) + + self.play(Rotate(sigma, -PI/4), run_time=.5) + self.play(ApplyMethod(square.flip, d)) + + self.play( + FadeOutAndShift(sigma), + Uncreate(axis)) + + # show some rotations + dot = Dot(UP + RIGHT) + figure = VGroup() + figure.add(square) + figure.add(dot) + + rot = MathTex(r"r") + self.play(Write(rot), Create(dot)) + + last = rot + for newrot in map(MathTex, [r"r", r"r^2", r"r^3"]): + self.play( + ReplacementTransform(last, newrot), + Rotate(figure, PI/2, about_point=ORIGIN)) + self.wait() + last = newrot + + self.play(Uncreate(dot), FadeOut(square), FadeOut(last)) + + + def cyclic(self): + # create symmetric figure + figure = VGroup() + prev = [1.5, 0, 0] + for i in range(1,6): + pos = [ + 1.5*m.cos(2 * PI/5 * i), + 1.5*m.sin(2 * PI/5 * i), + 0 + ] + + if prev: + line = Line(prev, pos) + figure.add(line) + + dot = Dot(pos, radius=.1) + if i == 5: + dot.set_fill(RED) + + prev = pos + figure.add(dot) + + group = MathTex(r"G = \langle r \rangle") + self.play(Write(group), run_time = 2) + self.wait() + self.play(ApplyMethod(group.to_corner, UP)) + + actions = map(MathTex, [r"1", r"r", r"r^2", r"r^3", r"r^4", r"1"]) + action = next(actions, MathTex(r"r")) + + self.play(Create(figure)) + self.play(Write(action)) + self.wait() + + for i in range(5): + newaction = next(actions, MathTex(r"r")) + self.play( + ReplacementTransform(action, newaction), + Rotate(figure, 2*PI/5, about_point=ORIGIN)) + action = newaction + + self.play(Uncreate(figure), FadeOut(action)) + + whole_group = MathTex( + r"G = \langle r \rangle" + r"= \left\{1, r, r^2, r^3, r^4 \right\}") + + self.play(ApplyMethod(group.move_to, ORIGIN)) + self.play(ReplacementTransform(group, whole_group)) + self.wait() + + cyclic = MathTex( + r"C_n = \langle r \rangle" + r"= \left\{1, r, r^2, \dots, r^n \right\}") + + cyclic_title = Tex(r"Zyklische Gruppe") + cyclic_title.next_to(cyclic, UP * 2) + + cyclic.scale(1.2) + cyclic_title.scale(1.2) + + self.play(ReplacementTransform(whole_group, cyclic)) + self.play(FadeInFrom(cyclic_title, UP)) + + self.wait(5) + self.play(FadeOut(cyclic), FadeOut(cyclic_title)) + + def dihedral(self): + # create square + square = Square() + square.set_fill(PINK, opacity=.5) + + # generator equation + group = MathTex( + r"G = \langle \sigma, r \,|\,", + r"\sigma^2 = 1,", + r"r^4 = 1,", + r"(\sigma r)^2 = 1 \rangle") + + self.play(Write(group), run_time = 2) + self.wait() + self.play(ApplyMethod(group.to_corner, UP)) + self.play(FadeIn(square)) + + axis = DashedLine(2 * LEFT, 2 * RIGHT) + sigma = MathTex(r"\sigma^2 = 1") + sigma.next_to(axis, RIGHT) + self.play(Create(axis), Write(sigma)) + self.play(ApplyMethod(square.flip, RIGHT)) + self.play(ApplyMethod(square.flip, RIGHT)) + self.play(Uncreate(axis), FadeOut(sigma)) + + # rotations + dot = Dot(UP + RIGHT) + rot = MathTex(r"r^4 = 1") + rot.next_to(square, DOWN * 3) + + figure = VGroup() + figure.add(dot) + figure.add(square) + + self.play(Write(rot), Create(dot)) + for i in range(4): + self.play(Rotate(figure, PI/2)) + self.play(FadeOut(rot), Uncreate(dot)) + + # rotation and flip + action = MathTex(r"(\sigma r)^2 = 1") + action.next_to(square, DOWN * 5) + + dot = Dot(UP + RIGHT) + axis = DashedLine(2 * LEFT, 2 * RIGHT) + self.play(Create(dot), Create(axis), Write(action)) + + figure = VGroup() + figure.add(dot) + figure.add(square) + + for i in range(2): + self.play(Rotate(figure, PI/2)) + self.play(ApplyMethod(figure.flip, RIGHT)) + self.wait() + + self.play(Uncreate(dot), Uncreate(axis), FadeOut(action)) + self.play(FadeOut(square)) + + # equation for the whole + whole_group = MathTex( + r"G &= \langle \sigma, r \,|\," + r"\sigma^2 = r^4 = (\sigma r)^2 = 1 \rangle \\" + r"&= \left\{" + r"1, r, r^2, r^3, \sigma, \sigma r, \sigma r^2, \sigma r^3" + r"\right\}") + + self.play(ApplyMethod(group.move_to, ORIGIN)) + self.play(ReplacementTransform(group, whole_group)) + self.wait(2) + + dihedral = MathTex( + r"D_n &= \langle \sigma, r \,|\," + r"\sigma^2 = r^n = (\sigma r)^2 = 1 \rangle \\" + r"&= \left\{" + r"1, r, r^2, \dots, \sigma, \sigma r, \sigma r^2, \dots" + r"\right\}") + + dihedral_title = Tex(r"Diedergruppe: Symmetrien eines \(n\)-gons") + dihedral_title.next_to(dihedral, UP * 2) + + dihedral.scale(1.2) + dihedral_title.scale(1.2) + + self.play(ReplacementTransform(whole_group, dihedral)) + self.play(FadeInFrom(dihedral_title, UP)) + + self.wait(5) + self.play(FadeOut(dihedral), FadeOut(dihedral_title)) + + +class Geometric3DSymmetries(ThreeDScene): + def construct(self): + self.symmetric() + + def symmetric(self): + self.renderer.camera.light_source.move_to(3*IN) # changes the source of the light + self.set_camera_orientation(phi=60 * DEGREES, theta=-20 * DEGREES) + + cube = Cube() + axes = ThreeDAxes() + + axis = np.array([2,2,2]) + line = DashedLine(-axis, axis) + + self.play(Create(axes), Create(cube)) + self.play(Create(line)) + + self.play(ApplyMethod(cube.rotate, PI, axis / abs(axis))) + + self.begin_ambient_camera_rotation(rate=0.1) + self.wait(7) + + +class AlgebraicSymmetries(Scene): + def construct(self): + pass diff --git a/vorlesungen/punktgruppen/poetry.lock b/vorlesungen/punktgruppen/poetry.lock new file mode 100644 index 0000000..13c5100 --- /dev/null +++ b/vorlesungen/punktgruppen/poetry.lock @@ -0,0 +1,591 @@ +[[package]] +name = "colorama" +version = "0.4.4" +description = "Cross-platform colored terminal text." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "colour" +version = "0.1.5" +description = "converts and manipulates various color representation (HSL, RVB, web, X11, ...)" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +test = ["nose"] + +[[package]] +name = "commonmark" +version = "0.9.1" +description = "Python parser for the CommonMark Markdown spec" +category = "main" +optional = false +python-versions = "*" + +[package.extras] +test = ["flake8 (==3.7.8)", "hypothesis (==3.55.3)"] + +[[package]] +name = "decorator" +version = "4.4.2" +description = "Decorators for Humans" +category = "main" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*" + +[[package]] +name = "glcontext" +version = "2.3.3" +description = "Portable OpenGL Context" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "importlib-metadata" +version = "3.10.0" +description = "Read metadata from Python packages" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} +zipp = ">=0.5" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytest-cov", "pytest-enabler (>=1.0.1)", "packaging", "pep517", "pyfakefs", "flufl.flake8", "pytest-black (>=0.3.7)", "pytest-mypy", "importlib-resources (>=1.3)"] + +[[package]] +name = "manim" +version = "0.5.0" +description = "Animation engine for explanatory math videos." +category = "main" +optional = false +python-versions = ">=3.6.2,<4.0.0" + +[package.dependencies] +colour = "*" +importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} +manimpango = ">=0.2.4,<0.3.0" +mapbox-earcut = ">=0.12.10,<0.13.0" +moderngl = ">=5.6.3,<6.0.0" +moderngl-window = ">=2.3.0,<3.0.0" +networkx = ">=2.5,<3.0" +numpy = ">=1.9,<2.0" +Pillow = "*" +pycairo = ">=1.19,<2.0" +pydub = "*" +pygments = "*" +rich = ">=6.0,<7.0" +scipy = "*" +tqdm = "*" + +[package.extras] +webgl_renderer = ["grpcio (>=1.33.0,<1.34.0)", "grpcio-tools (>=1.33.0,<1.34.0)", "watchdog"] +jupyterlab = ["jupyterlab (>=3.0,<4.0)"] + +[[package]] +name = "manimpango" +version = "0.2.5.post0" +description = "Bindings for Pango for using with Manim." +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "mapbox-earcut" +version = "0.12.10" +description = "Python bindings for the mapbox earcut C++ polygon triangulation library." +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +numpy = "*" + +[[package]] +name = "moderngl" +version = "5.6.4" +description = "ModernGL: High performance rendering for Python 3" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +glcontext = ">=2,<3" + +[[package]] +name = "moderngl-window" +version = "2.3.0" +description = "A cross platform helper library for ModernGL making window creation and resource loading simple" +category = "main" +optional = false +python-versions = ">=3.5" + +[package.dependencies] +moderngl = "<6" +numpy = ">=1.16,<2" +Pillow = ">=5" +pyglet = ">=1.5.8,<2" +pyrr = ">=0.10.3,<1" + +[package.extras] +pysdl2 = ["pysdl2"] +pyside2 = ["PySide2 (<6)"] +glfw = ["glfw"] +pygame = ["pygame (==2.0.0.dev10)"] +pyqt5 = ["pyqt5"] +pywavefront = ["pywavefront (>=1.2.0,<2)"] +tk = ["pyopengltk (>=0.0.3)"] +trimesh = ["trimesh (>=3.2.6,<4)", "scipy (>=1.3.2)"] + +[[package]] +name = "multipledispatch" +version = "0.6.0" +description = "Multiple dispatch" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +six = "*" + +[[package]] +name = "networkx" +version = "2.5.1" +description = "Python package for creating and manipulating graphs and networks" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +decorator = ">=4.3,<5" + +[package.extras] +all = ["numpy", "scipy", "pandas", "matplotlib", "pygraphviz", "pydot", "pyyaml", "lxml", "pytest"] +gdal = ["gdal"] +lxml = ["lxml"] +matplotlib = ["matplotlib"] +numpy = ["numpy"] +pandas = ["pandas"] +pydot = ["pydot"] +pygraphviz = ["pygraphviz"] +pytest = ["pytest"] +pyyaml = ["pyyaml"] +scipy = ["scipy"] + +[[package]] +name = "numpy" +version = "1.20.2" +description = "NumPy is the fundamental package for array computing with Python." +category = "main" +optional = false +python-versions = ">=3.7" + +[[package]] +name = "pillow" +version = "8.2.0" +description = "Python Imaging Library (Fork)" +category = "main" +optional = false +python-versions = ">=3.6" + +[[package]] +name = "pycairo" +version = "1.20.0" +description = "Python interface for cairo" +category = "main" +optional = false +python-versions = ">=3.6, <4" + +[[package]] +name = "pydub" +version = "0.25.1" +description = "Manipulate audio with an simple and easy high level interface" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pyglet" +version = "1.5.15" +description = "Cross-platform windowing and multimedia library" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "pygments" +version = "2.8.1" +description = "Pygments is a syntax highlighting package written in Python." +category = "main" +optional = false +python-versions = ">=3.5" + +[[package]] +name = "pyrr" +version = "0.10.3" +description = "3D mathematical functions using NumPy" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +multipledispatch = "*" +numpy = "*" + +[[package]] +name = "rich" +version = "6.2.0" +description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" +category = "main" +optional = false +python-versions = ">=3.6,<4.0" + +[package.dependencies] +colorama = ">=0.4.0,<0.5.0" +commonmark = ">=0.9.0,<0.10.0" +pygments = ">=2.6.0,<3.0.0" +typing-extensions = ">=3.7.4,<4.0.0" + +[package.extras] +jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"] + +[[package]] +name = "scipy" +version = "1.6.1" +description = "SciPy: Scientific Library for Python" +category = "main" +optional = false +python-versions = ">=3.7" + +[package.dependencies] +numpy = ">=1.16.5" + +[[package]] +name = "six" +version = "1.15.0" +description = "Python 2 and 3 compatibility utilities" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" + +[[package]] +name = "tqdm" +version = "4.60.0" +description = "Fast, Extensible Progress Meter" +category = "main" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" + +[package.extras] +dev = ["py-make (>=0.1.0)", "twine", "wheel"] +notebook = ["ipywidgets (>=6)"] +telegram = ["requests"] + +[[package]] +name = "typing-extensions" +version = "3.7.4.3" +description = "Backported and Experimental Type Hints for Python 3.5+" +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "zipp" +version = "3.4.1" +description = "Backport of pathlib-compatible object wrapper for zip files" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +docs = ["sphinx", "jaraco.packaging (>=8.2)", "rst.linker (>=1.9)"] +testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pytest-cov", "pytest-enabler", "jaraco.itertools", "func-timeout", "pytest-black (>=0.3.7)", "pytest-mypy"] + +[metadata] +lock-version = "1.1" +python-versions = "^3.7" +content-hash = "f990b445406f5bbce3e53cd28ef3362be09615b40062f11233a62f99bcd59a79" + +[metadata.files] +colorama = [ + {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, + {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, +] +colour = [ + {file = "colour-0.1.5-py2.py3-none-any.whl", hash = "sha256:33f6db9d564fadc16e59921a56999b79571160ce09916303d35346dddc17978c"}, + {file = "colour-0.1.5.tar.gz", hash = "sha256:af20120fefd2afede8b001fbef2ea9da70ad7d49fafdb6489025dae8745c3aee"}, +] +commonmark = [ + {file = "commonmark-0.9.1-py2.py3-none-any.whl", hash = "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"}, + {file = "commonmark-0.9.1.tar.gz", hash = "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60"}, +] +decorator = [ + {file = "decorator-4.4.2-py2.py3-none-any.whl", hash = "sha256:41fa54c2a0cc4ba648be4fd43cff00aedf5b9465c9bf18d64325bc225f08f760"}, + {file = "decorator-4.4.2.tar.gz", hash = "sha256:e3a62f0520172440ca0dcc823749319382e377f37f140a0b99ef45fecb84bfe7"}, +] +glcontext = [ + {file = "glcontext-2.3.3-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:f518379551a2b60d45c1eec23759cb1ee85517d4b943fc31530b6ab13e304fe4"}, + {file = "glcontext-2.3.3-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:d3a8fbc27f43766d168bae02474790459f4050adeb25832ff0a227cc5006c933"}, + {file = "glcontext-2.3.3-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:aa1d9e4f9bd6eda3d195f39c47c849b3721caf65813a4ad1e006a20fa02d33e4"}, + {file = "glcontext-2.3.3-cp35-cp35m-win32.whl", hash = "sha256:8b4ee9cb5573e2ae313e1681fdfe2c5ac5b8780b20e857daf8f95e318c36aa2f"}, + {file = "glcontext-2.3.3-cp35-cp35m-win_amd64.whl", hash = "sha256:b92ca447a04c3a05afb3974a6e94f584e60f55444c3e55ecd31fbfacad6ee07a"}, + {file = "glcontext-2.3.3-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:b102a00e7bbce03a5e8bb02692197f96fcb77c51dbe133859b70afa361eef5b7"}, + {file = "glcontext-2.3.3-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:ea3975a9d86a97b49f9524713c8e3f0df92044715cfbe5a24102e10762673b23"}, + {file = "glcontext-2.3.3-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:5f2e7fb61ea1f69c44db0799f8929ea66ad207619c18063ae60cfb26ad0f447f"}, + {file = "glcontext-2.3.3-cp36-cp36m-win32.whl", hash = "sha256:bf8c3fa5f3a8962c9bcc03a869a0bb178bd1681619225b9f0a070a65ff3f766d"}, + {file = "glcontext-2.3.3-cp36-cp36m-win_amd64.whl", hash = "sha256:e0b637f2ac1c2dd1e0dbfcbad6d7be2dae75290f9af8f82aa67aa55b977766e1"}, + {file = "glcontext-2.3.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:2002d29dee90e9ba800c8699e13e1ff8b0fa1292a7c5bb0a98ef50b5f6cd3f14"}, + {file = "glcontext-2.3.3-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:941be8972ad64e70080ad4702c037c64c09d1378ddd9b1b4576b957bc2d7f1c2"}, + {file = "glcontext-2.3.3-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:0eb69c4add7f724017169bcefc2a8ef8ce053183e9384cc4770162e934090592"}, + {file = "glcontext-2.3.3-cp37-cp37m-win32.whl", hash = "sha256:f63aed2116907225f7392921df790a391fd1a843cd1af0756dcd533e9d3ecf2b"}, + {file = "glcontext-2.3.3-cp37-cp37m-win_amd64.whl", hash = "sha256:2fa9b939c15f5f7e63110a1021e8d20341c03921b8d3aebbb4bb191f11414d86"}, + {file = "glcontext-2.3.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:44f95953bbd6a26caa9489b4f838b106470ede432c5ef837cd3e0d3657ca2a06"}, + {file = "glcontext-2.3.3-cp38-cp38-manylinux1_i686.whl", hash = "sha256:843d3361bf46aec487f268bb7f680700166640995a82424fa86e53f428dc43ae"}, + {file = "glcontext-2.3.3-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:be3e25a8595976699b6d30a2619ca4faf7bd5e60ff38dcd4445fa38a8f3b2cf9"}, + {file = "glcontext-2.3.3-cp38-cp38-win32.whl", hash = "sha256:7abbd227bf9e4e62ec196360fa0f440143a66b7aae3d3deb7960b87aac654043"}, + {file = "glcontext-2.3.3-cp38-cp38-win_amd64.whl", hash = "sha256:b91010d033789d1f876789e4aa4e6498e87cd284b4d0cb7a4aa1b7e620caaf57"}, + {file = "glcontext-2.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0a851f569f165a13f8fedf60dd4f2831f7c2ffbb9bc9f867d6e0e3fdd1846c8d"}, + {file = "glcontext-2.3.3-cp39-cp39-win32.whl", hash = "sha256:f36935ba84e8c52ed22bb9f683875bdf1690abd318ae704f40511f1afca5f71a"}, + {file = "glcontext-2.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:69e3a04c677e4925c0b6daf5efc5469a86d0982b05bb1d0ca29bce57f4aaf7d1"}, + {file = "glcontext-2.3.3.tar.gz", hash = "sha256:f86a6c4ad99f941623911f964da74c443dc3f833fac7eb03cd485fae82acb80c"}, +] +importlib-metadata = [ + {file = "importlib_metadata-3.10.0-py3-none-any.whl", hash = "sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe"}, + {file = "importlib_metadata-3.10.0.tar.gz", hash = "sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a"}, +] +manim = [ + {file = "manim-0.5.0-py3-none-any.whl", hash = "sha256:1a164c8caa6058f67c6fcd7cf1e6f5dbb9833b292117885dc470dabad1cc00c7"}, + {file = "manim-0.5.0.tar.gz", hash = "sha256:e4284648cbb5d463c6dbced1d4e60fa9b68c14f4bb3b10c8eab0f8f49ca5da88"}, +] +manimpango = [ + {file = "ManimPango-0.2.5.post0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:53f754594ccedeaf464028777d4502fb31f2251b9dca7e99b40786b3e4ff394d"}, + {file = "ManimPango-0.2.5.post0-cp36-cp36m-win32.whl", hash = "sha256:ac33cc00a89aabe7459043b7aab8851e4ec4c7fa78cea2b3dacb618b2b03c98b"}, + {file = "ManimPango-0.2.5.post0-cp36-cp36m-win_amd64.whl", hash = "sha256:87e205f5a35ff5504104cd30b8d086e9f97c17f95cf490de7cc1d4aa8c2a8425"}, + {file = "ManimPango-0.2.5.post0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:70e59f888ca5ad0be37777f761cee8fb3d6e28c5d949e5da13f727326b46da60"}, + {file = "ManimPango-0.2.5.post0-cp37-cp37m-win32.whl", hash = "sha256:d9cc5ac80dd363fd4f3fa233f7fad74e9749965b6e4af10a2174f946fe1d9813"}, + {file = "ManimPango-0.2.5.post0-cp37-cp37m-win_amd64.whl", hash = "sha256:3bef549783fc5e3f39598880e7cc41bb44dc2e37ceb8c7e20f0381fd8d67b3e8"}, + {file = "ManimPango-0.2.5.post0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:978bcf4c6cf145f723ec551ed18a1959f6952f100d61c7b4431939ee850f9308"}, + {file = "ManimPango-0.2.5.post0-cp38-cp38-win32.whl", hash = "sha256:db877a3a037739ce2f647f747bc750c7e9a881ce5175a4ad764170f24fb2d68a"}, + {file = "ManimPango-0.2.5.post0-cp38-cp38-win_amd64.whl", hash = "sha256:2876c64724a73893ba22c250ddf603724865c650a925ddca76102eea0e489373"}, + {file = "ManimPango-0.2.5.post0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e3694ae99ef758a8eaf847f77b0fa2bf7318ed2ee55a32b3a3bb155dd2d6ec9b"}, + {file = "ManimPango-0.2.5.post0-cp39-cp39-win32.whl", hash = "sha256:139469a6130270e3cf94c4b01fa9b17dc516170a11b901ff0ce0f6cdff6752e9"}, + {file = "ManimPango-0.2.5.post0-cp39-cp39-win_amd64.whl", hash = "sha256:aad57df6ec62585f52c662b84f2d5ff2c686daa8ca753326b6cde8b798c4da96"}, + {file = "ManimPango-0.2.5.post0.tar.gz", hash = "sha256:c33d073d4389ad93bbac13029b8a0da5d8ee0b8fe7f282379ff95012e34d324e"}, +] +mapbox-earcut = [ + {file = "mapbox_earcut-0.12.10-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:2aaf7bdb002d36d38d1412088329a9176de3fcadc24a53951b76e49a27e34d78"}, + {file = "mapbox_earcut-0.12.10-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:ddda755c63cf5f9bff338cd375e4e937035898827fef960102e2f4c8984cb068"}, + {file = "mapbox_earcut-0.12.10-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:3475382dd573986d0dfe3f6b6fd3b1f576e74af7fd7d95066d2506ce8f4b38e5"}, + {file = "mapbox_earcut-0.12.10-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:f2b9079df53258766c3108a1c46a7942963c26f216f9bc2d216f93eeed1da76c"}, + {file = "mapbox_earcut-0.12.10-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:124cc27486d0e9c9b185a6d80e551e736e2bc81d28e077e297ac39980c14e588"}, + {file = "mapbox_earcut-0.12.10-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:04228ff704d5edc49d71ba3fd07c4a8621a4f416d2ad5c2504a80d0cabd51c18"}, + {file = "mapbox_earcut-0.12.10-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:9a15cb52f3f6d5980e41b6ca31976cc2048acf290f2e5159d7527e16e5c5d748"}, + {file = "mapbox_earcut-0.12.10-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:6b083a065afd40961cc311b425c54275f531d91a27bdd34a2049993a68d8a651"}, + {file = "mapbox_earcut-0.12.10-cp35-cp35m-win32.whl", hash = "sha256:fa3355248d3beaab67438373315e55a37ecc2694a4a4b1965e9d8f582a210479"}, + {file = "mapbox_earcut-0.12.10-cp35-cp35m-win_amd64.whl", hash = "sha256:90b2977a9eda2a1873e44d7821ecf3b18062aa0878e957cb306e6018aba105c9"}, + {file = "mapbox_earcut-0.12.10-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:553688de45e73fa7d192fd6c29b87a4c5ea60a728b3c7b4c5f1715a89e6a8e54"}, + {file = "mapbox_earcut-0.12.10-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:498b7f35c6a7c5c25829bcf1a79015ae64e94e8e36b84bd06e93131352b409f0"}, + {file = "mapbox_earcut-0.12.10-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:8b9c6147249edf5049ccf7a7bca5bb29c9d512b3a5b62510659cfc51f1b8f806"}, + {file = "mapbox_earcut-0.12.10-cp36-cp36m-win32.whl", hash = "sha256:4eaf2a9e86bbf808bf045eb587ec93a393e9d75ab87e7c1c9c8a5d9e122e30ac"}, + {file = "mapbox_earcut-0.12.10-cp36-cp36m-win_amd64.whl", hash = "sha256:cb82e4ea9a67a9cdd46c9fc39bcb24e11f49569010368f9c5d376489bb2d0317"}, + {file = "mapbox_earcut-0.12.10-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:619a31a4d9748a30fbea82fd45beec6ab9e7f8a7ae7818be46f09d03ea0d9185"}, + {file = "mapbox_earcut-0.12.10-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:054cd56cf8adf179d0aa0e8a061774e5afa767aaf6507851f4d2731b58f03d43"}, + {file = "mapbox_earcut-0.12.10-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:ebeef32d504bf7e1ba986f86d87a8d3c96a54b6e03b0535ccdf0ce8f2f56e563"}, + {file = "mapbox_earcut-0.12.10-cp37-cp37m-win32.whl", hash = "sha256:62a8787e30f7bbc6e1ebe8b11591119ed85aa5044b2cf3f6afb058e6fffeb8a3"}, + {file = "mapbox_earcut-0.12.10-cp37-cp37m-win_amd64.whl", hash = "sha256:5f854a887f854bdea62c4b58785b82cf70056d53dc3bf23146ce68c125ceed96"}, + {file = "mapbox_earcut-0.12.10-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:19f16be13a40d20419362f8ce27cf2dca8f0b8f4c7caa24caaff8351bcdf853e"}, + {file = "mapbox_earcut-0.12.10-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:cac7c8c332d1e802f478b5b79166ab38005b6d1bd908fb96857a8941e702f70d"}, + {file = "mapbox_earcut-0.12.10-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:24cc595987932b5d47b93ddb733c6bd084d91ff0af66ff2205aa717f0a5a13b8"}, + {file = "mapbox_earcut-0.12.10-cp38-cp38-win32.whl", hash = "sha256:fe4b4e1c53fe0fde8e5fee86d868344f47d4d9fd89d9599548ea4b98349f10d6"}, + {file = "mapbox_earcut-0.12.10-cp38-cp38-win_amd64.whl", hash = "sha256:6f4601b949ab43cf21dca86ffb6b4e2b30974ab3112f089d16b5f365e8b446f4"}, + {file = "mapbox_earcut-0.12.10-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ca00bdcb162b6a543f3061f49e2dcde42d6b780a545b5054da437e4ff5e33905"}, + {file = "mapbox_earcut-0.12.10-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:031132cdfa4d20e640f24d6817b65a91e3292c34ed527b4309617c9992284133"}, + {file = "mapbox_earcut-0.12.10-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:f284c0fc7f3c84664e9dddabae4eae729e6458e96ec5f30c9d7000c9b0dadca7"}, + {file = "mapbox_earcut-0.12.10-cp39-cp39-win32.whl", hash = "sha256:c94a263767a841a5f7e8f03c725bdf41c87b8936c1a5fe18a5a77f3b9344d68f"}, + {file = "mapbox_earcut-0.12.10-cp39-cp39-win_amd64.whl", hash = "sha256:742bd1f94113f44f1adcb5f3e2dca6e288695645b7eeab5d94f589dacda092af"}, + {file = "mapbox_earcut-0.12.10-pp27-pypy_73-macosx_10_9_x86_64.whl", hash = "sha256:ad76defd6188e71023e43e5aed32ab5d540c0452a74918fc5de9bcccdee6c053"}, + {file = "mapbox_earcut-0.12.10-pp27-pypy_73-manylinux2010_x86_64.whl", hash = "sha256:a3a9a81f696627f3c331f16c8d628b494949fa68067a42d2f1a6a56ee115eb0d"}, + {file = "mapbox_earcut-0.12.10-pp27-pypy_73-win32.whl", hash = "sha256:044f70ed230bdb94f08356ec84f4bd30e4ea493d63700c3cc6fa86c5cf57623e"}, + {file = "mapbox_earcut-0.12.10-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:e352482e6022cc113dd008886012f0966bd2511933f888805fa87f070423d5b1"}, + {file = "mapbox_earcut-0.12.10-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:41a282c485e96135ff15c01e0e1eb334cf1a05235edde8154b7b6e30187e54f4"}, + {file = "mapbox_earcut-0.12.10-pp36-pypy36_pp73-win32.whl", hash = "sha256:5e1e3cf5a881eafeba7a7e5c4b1b9e7376710c48513513894e2a082ebf870326"}, + {file = "mapbox_earcut-0.12.10-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7b6c2bfc28dc82a27071079885ffbe0836c0ad5dbd4ab47a5edaa24a86218daf"}, + {file = "mapbox_earcut-0.12.10-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:6e6614f7b437b4b0a69ab642cf35569079408ac25c193013d5ad26e82c71fc01"}, + {file = "mapbox_earcut-0.12.10-pp37-pypy37_pp73-win32.whl", hash = "sha256:d016823e863309b9cc542bb1d3bcdc274ec65fb23f2566de298188dcd4a75c0e"}, + {file = "mapbox_earcut-0.12.10.tar.gz", hash = "sha256:50d995673ac9ce8cb9abb7ab64b709d611c1d27557907e00b631b5272345c453"}, +] +moderngl = [ + {file = "moderngl-5.6.4-cp35-cp35m-macosx_10_9_x86_64.whl", hash = "sha256:bc3764d67f037b67051871345a1d0b7a3d2c19cb5c0c0af0a84c532e802d6642"}, + {file = "moderngl-5.6.4-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:90006d9dfd5333da604a7d26b2a5e70e1a570f291cd745b8bf80e4833d8821b6"}, + {file = "moderngl-5.6.4-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:af44437545380a840dafd09658eb56592831dbd4fb481d320249d0d42c591bae"}, + {file = "moderngl-5.6.4-cp35-cp35m-win32.whl", hash = "sha256:b5023633bcbfbab90be6a6f4edcde75f9c1e244d9acbda94678f3e3fb238b363"}, + {file = "moderngl-5.6.4-cp35-cp35m-win_amd64.whl", hash = "sha256:ffc48fc4deeb525ed33a828d13ca4c12c5af8e5cb0449011f1802e18b5fc3c25"}, + {file = "moderngl-5.6.4-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:331fd4bce60b10a08eed81a3ed4c70b7c297c38f981fdf3968d03a1c892af247"}, + {file = "moderngl-5.6.4-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:1bd864b5cc2fc1255785e33575cec98fa5ded698503c4f8f3fa9230abeaa3a04"}, + {file = "moderngl-5.6.4-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:b22534529f5bc52c1fe43336787c06d51123ae978fb56e74e47cabd85056c934"}, + {file = "moderngl-5.6.4-cp36-cp36m-win32.whl", hash = "sha256:ee5b1eced39d7f6dc68782c2abf01c1130a40b6d83d333d175ee71adbea7c721"}, + {file = "moderngl-5.6.4-cp36-cp36m-win_amd64.whl", hash = "sha256:52ee915a559762f0e992344961b35e0d241be32f8aa7464494e958f777e0534c"}, + {file = "moderngl-5.6.4-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:f83f6ab1fafdba2d9c06a7a1c8a4e460689ea1d514146606acc74f14e0831d93"}, + {file = "moderngl-5.6.4-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:c350e06affea9fabc636b2350cf6e58d83ee2e7264527eee0f5d142c167f5463"}, + {file = "moderngl-5.6.4-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:3eb65afc8ec4a1d4a4c48696fb0f4f6cf7a7ada6bef97818d717dbca73c57b11"}, + {file = "moderngl-5.6.4-cp37-cp37m-win32.whl", hash = "sha256:4fd721eb83e73d34c3f7b5a11aec656fef461b51bbe7503b07ea27370c593cbd"}, + {file = "moderngl-5.6.4-cp37-cp37m-win_amd64.whl", hash = "sha256:01c71d94dbd59b5d37ead463991e2998c0924426cffa393b9da2b8334551c998"}, + {file = "moderngl-5.6.4-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:d2ec6ecd845f21ba44a08c11521cb71f2a9c2ea2ec189b7ed30d17837d392d70"}, + {file = "moderngl-5.6.4-cp38-cp38-manylinux1_i686.whl", hash = "sha256:40f74a2246e5302f93f2d46f76c0d2a26cbed1eb29731674c4052476f1e9c9ea"}, + {file = "moderngl-5.6.4-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:5e158e6881034c7e1d0c583d7c82ff608439606f2359dc6098e4be4fd93cef9d"}, + {file = "moderngl-5.6.4-cp38-cp38-win32.whl", hash = "sha256:a28dc741469eeb69549ee85b4ddbf8e9cfca6a2b19ce0406df9fde20f78082c8"}, + {file = "moderngl-5.6.4-cp38-cp38-win_amd64.whl", hash = "sha256:ce87962b91635d857cac4a753c5d5f647d94dc66dcb0f090bb8d758fd226c3e8"}, + {file = "moderngl-5.6.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3fb139bcdd25eae2c546e5788e9d8719f6c4b18a2ba68a9df31699b4ac57d62d"}, + {file = "moderngl-5.6.4-cp39-cp39-win32.whl", hash = "sha256:fc5cc1601a3df8f45f1901c6b9960731e0619d1781b0d036e12341fbf2ef55d3"}, + {file = "moderngl-5.6.4-cp39-cp39-win_amd64.whl", hash = "sha256:1c74b71c9acee9f0e69807a086d76e92f37c1960c3bb1d6a6e2472fd03f7be5b"}, + {file = "moderngl-5.6.4.tar.gz", hash = "sha256:8c6d04559f5e3bf75a18525cd46d213c0f3a8409363718978e6de691bdb551fb"}, +] +moderngl-window = [ + {file = "moderngl_window-2.3.0-py3-none-any.whl", hash = "sha256:79056e6b6a1e8c540031166d2ec308a40806baf461e5d492730966c3cf372a31"}, +] +multipledispatch = [ + {file = "multipledispatch-0.6.0-py2-none-any.whl", hash = "sha256:407e6d8c5fa27075968ba07c4db3ef5f02bea4e871e959570eeb69ee39a6565b"}, + {file = "multipledispatch-0.6.0-py3-none-any.whl", hash = "sha256:a55c512128fb3f7c2efd2533f2550accb93c35f1045242ef74645fc92a2c3cba"}, + {file = "multipledispatch-0.6.0.tar.gz", hash = "sha256:a7ab1451fd0bf9b92cab3edbd7b205622fb767aeefb4fb536c2e3de9e0a38bea"}, +] +networkx = [ + {file = "networkx-2.5.1-py3-none-any.whl", hash = "sha256:0635858ed7e989f4c574c2328380b452df892ae85084144c73d8cd819f0c4e06"}, + {file = "networkx-2.5.1.tar.gz", hash = "sha256:109cd585cac41297f71103c3c42ac6ef7379f29788eb54cb751be5a663bb235a"}, +] +numpy = [ + {file = "numpy-1.20.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e9459f40244bb02b2f14f6af0cd0732791d72232bbb0dc4bab57ef88e75f6935"}, + {file = "numpy-1.20.2-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:a8e6859913ec8eeef3dbe9aed3bf475347642d1cdd6217c30f28dee8903528e6"}, + {file = "numpy-1.20.2-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:9cab23439eb1ebfed1aaec9cd42b7dc50fc96d5cd3147da348d9161f0501ada5"}, + {file = "numpy-1.20.2-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:9c0fab855ae790ca74b27e55240fe4f2a36a364a3f1ebcfd1fb5ac4088f1cec3"}, + {file = "numpy-1.20.2-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:61d5b4cf73622e4d0c6b83408a16631b670fc045afd6540679aa35591a17fe6d"}, + {file = "numpy-1.20.2-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:d15007f857d6995db15195217afdbddfcd203dfaa0ba6878a2f580eaf810ecd6"}, + {file = "numpy-1.20.2-cp37-cp37m-win32.whl", hash = "sha256:d76061ae5cab49b83a8cf3feacefc2053fac672728802ac137dd8c4123397677"}, + {file = "numpy-1.20.2-cp37-cp37m-win_amd64.whl", hash = "sha256:bad70051de2c50b1a6259a6df1daaafe8c480ca98132da98976d8591c412e737"}, + {file = "numpy-1.20.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:719656636c48be22c23641859ff2419b27b6bdf844b36a2447cb39caceb00935"}, + {file = "numpy-1.20.2-cp38-cp38-manylinux1_i686.whl", hash = "sha256:aa046527c04688af680217fffac61eec2350ef3f3d7320c07fd33f5c6e7b4d5f"}, + {file = "numpy-1.20.2-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:2428b109306075d89d21135bdd6b785f132a1f5a3260c371cee1fae427e12727"}, + {file = "numpy-1.20.2-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:e8e4fbbb7e7634f263c5b0150a629342cc19b47c5eba8d1cd4363ab3455ab576"}, + {file = "numpy-1.20.2-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:edb1f041a9146dcf02cd7df7187db46ab524b9af2515f392f337c7cbbf5b52cd"}, + {file = "numpy-1.20.2-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:c73a7975d77f15f7f68dacfb2bca3d3f479f158313642e8ea9058eea06637931"}, + {file = "numpy-1.20.2-cp38-cp38-win32.whl", hash = "sha256:6c915ee7dba1071554e70a3664a839fbc033e1d6528199d4621eeaaa5487ccd2"}, + {file = "numpy-1.20.2-cp38-cp38-win_amd64.whl", hash = "sha256:471c0571d0895c68da309dacee4e95a0811d0a9f9f532a48dc1bea5f3b7ad2b7"}, + {file = "numpy-1.20.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4703b9e937df83f5b6b7447ca5912b5f5f297aba45f91dbbbc63ff9278c7aa98"}, + {file = "numpy-1.20.2-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:abc81829c4039e7e4c30f7897938fa5d4916a09c2c7eb9b244b7a35ddc9656f4"}, + {file = "numpy-1.20.2-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:377751954da04d4a6950191b20539066b4e19e3b559d4695399c5e8e3e683bf6"}, + {file = "numpy-1.20.2-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:6e51e417d9ae2e7848314994e6fc3832c9d426abce9328cf7571eefceb43e6c9"}, + {file = "numpy-1.20.2-cp39-cp39-win32.whl", hash = "sha256:780ae5284cb770ade51d4b4a7dce4faa554eb1d88a56d0e8b9f35fca9b0270ff"}, + {file = "numpy-1.20.2-cp39-cp39-win_amd64.whl", hash = "sha256:924dc3f83de20437de95a73516f36e09918e9c9c18d5eac520062c49191025fb"}, + {file = "numpy-1.20.2-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:97ce8b8ace7d3b9288d88177e66ee75480fb79b9cf745e91ecfe65d91a856042"}, + {file = "numpy-1.20.2.zip", hash = "sha256:878922bf5ad7550aa044aa9301d417e2d3ae50f0f577de92051d739ac6096cee"}, +] +pillow = [ + {file = "Pillow-8.2.0-cp36-cp36m-macosx_10_10_x86_64.whl", hash = "sha256:dc38f57d8f20f06dd7c3161c59ca2c86893632623f33a42d592f097b00f720a9"}, + {file = "Pillow-8.2.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:a013cbe25d20c2e0c4e85a9daf438f85121a4d0344ddc76e33fd7e3965d9af4b"}, + {file = "Pillow-8.2.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8bb1e155a74e1bfbacd84555ea62fa21c58e0b4e7e6b20e4447b8d07990ac78b"}, + {file = "Pillow-8.2.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:c5236606e8570542ed424849f7852a0ff0bce2c4c8d0ba05cc202a5a9c97dee9"}, + {file = "Pillow-8.2.0-cp36-cp36m-win32.whl", hash = "sha256:12e5e7471f9b637762453da74e390e56cc43e486a88289995c1f4c1dc0bfe727"}, + {file = "Pillow-8.2.0-cp36-cp36m-win_amd64.whl", hash = "sha256:5afe6b237a0b81bd54b53f835a153770802f164c5570bab5e005aad693dab87f"}, + {file = "Pillow-8.2.0-cp37-cp37m-macosx_10_10_x86_64.whl", hash = "sha256:cb7a09e173903541fa888ba010c345893cd9fc1b5891aaf060f6ca77b6a3722d"}, + {file = "Pillow-8.2.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:0d19d70ee7c2ba97631bae1e7d4725cdb2ecf238178096e8c82ee481e189168a"}, + {file = "Pillow-8.2.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:083781abd261bdabf090ad07bb69f8f5599943ddb539d64497ed021b2a67e5a9"}, + {file = "Pillow-8.2.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:c6b39294464b03457f9064e98c124e09008b35a62e3189d3513e5148611c9388"}, + {file = "Pillow-8.2.0-cp37-cp37m-win32.whl", hash = "sha256:01425106e4e8cee195a411f729cff2a7d61813b0b11737c12bd5991f5f14bcd5"}, + {file = "Pillow-8.2.0-cp37-cp37m-win_amd64.whl", hash = "sha256:3b570f84a6161cf8865c4e08adf629441f56e32f180f7aa4ccbd2e0a5a02cba2"}, + {file = "Pillow-8.2.0-cp38-cp38-macosx_10_10_x86_64.whl", hash = "sha256:031a6c88c77d08aab84fecc05c3cde8414cd6f8406f4d2b16fed1e97634cc8a4"}, + {file = "Pillow-8.2.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:66cc56579fd91f517290ab02c51e3a80f581aba45fd924fcdee01fa06e635812"}, + {file = "Pillow-8.2.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:6c32cc3145928c4305d142ebec682419a6c0a8ce9e33db900027ddca1ec39178"}, + {file = "Pillow-8.2.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:624b977355cde8b065f6d51b98497d6cd5fbdd4f36405f7a8790e3376125e2bb"}, + {file = "Pillow-8.2.0-cp38-cp38-win32.whl", hash = "sha256:5cbf3e3b1014dddc45496e8cf38b9f099c95a326275885199f427825c6522232"}, + {file = "Pillow-8.2.0-cp38-cp38-win_amd64.whl", hash = "sha256:463822e2f0d81459e113372a168f2ff59723e78528f91f0bd25680ac185cf797"}, + {file = "Pillow-8.2.0-cp39-cp39-macosx_10_10_x86_64.whl", hash = "sha256:95d5ef984eff897850f3a83883363da64aae1000e79cb3c321915468e8c6add5"}, + {file = "Pillow-8.2.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b91c36492a4bbb1ee855b7d16fe51379e5f96b85692dc8210831fbb24c43e484"}, + {file = "Pillow-8.2.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:d68cb92c408261f806b15923834203f024110a2e2872ecb0bd2a110f89d3c602"}, + {file = "Pillow-8.2.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:f217c3954ce5fd88303fc0c317af55d5e0204106d86dea17eb8205700d47dec2"}, + {file = "Pillow-8.2.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5b70110acb39f3aff6b74cf09bb4169b167e2660dabc304c1e25b6555fa781ef"}, + {file = "Pillow-8.2.0-cp39-cp39-win32.whl", hash = "sha256:a7d5e9fad90eff8f6f6106d3b98b553a88b6f976e51fce287192a5d2d5363713"}, + {file = "Pillow-8.2.0-cp39-cp39-win_amd64.whl", hash = "sha256:238c197fc275b475e87c1453b05b467d2d02c2915fdfdd4af126145ff2e4610c"}, + {file = "Pillow-8.2.0-pp36-pypy36_pp73-macosx_10_10_x86_64.whl", hash = "sha256:0e04d61f0064b545b989126197930807c86bcbd4534d39168f4aa5fda39bb8f9"}, + {file = "Pillow-8.2.0-pp36-pypy36_pp73-manylinux2010_i686.whl", hash = "sha256:63728564c1410d99e6d1ae8e3b810fe012bc440952168af0a2877e8ff5ab96b9"}, + {file = "Pillow-8.2.0-pp36-pypy36_pp73-manylinux2010_x86_64.whl", hash = "sha256:c03c07ed32c5324939b19e36ae5f75c660c81461e312a41aea30acdd46f93a7c"}, + {file = "Pillow-8.2.0-pp37-pypy37_pp73-macosx_10_10_x86_64.whl", hash = "sha256:4d98abdd6b1e3bf1a1cbb14c3895226816e666749ac040c4e2554231068c639b"}, + {file = "Pillow-8.2.0-pp37-pypy37_pp73-manylinux2010_i686.whl", hash = "sha256:aac00e4bc94d1b7813fe882c28990c1bc2f9d0e1aa765a5f2b516e8a6a16a9e4"}, + {file = "Pillow-8.2.0-pp37-pypy37_pp73-manylinux2010_x86_64.whl", hash = "sha256:22fd0f42ad15dfdde6c581347eaa4adb9a6fc4b865f90b23378aa7914895e120"}, + {file = "Pillow-8.2.0-pp37-pypy37_pp73-win32.whl", hash = "sha256:e98eca29a05913e82177b3ba3d198b1728e164869c613d76d0de4bde6768a50e"}, + {file = "Pillow-8.2.0.tar.gz", hash = "sha256:a787ab10d7bb5494e5f76536ac460741788f1fbce851068d73a87ca7c35fc3e1"}, +] +pycairo = [ + {file = "pycairo-1.20.0-cp36-cp36m-win32.whl", hash = "sha256:e5a3433690c473e073a9917dc8f1fc7dc8b9af7b201bf372894b8ad70d960c6d"}, + {file = "pycairo-1.20.0-cp36-cp36m-win_amd64.whl", hash = "sha256:a942614923b88ae75c794506d5c426fba9c46a055d3fdd3b8db7046b75c079cc"}, + {file = "pycairo-1.20.0-cp37-cp37m-win32.whl", hash = "sha256:8cfa9578b745fb9cf2915ec580c2c50ebc2da00eac2cf4c4b54b63aa19da4b77"}, + {file = "pycairo-1.20.0-cp37-cp37m-win_amd64.whl", hash = "sha256:273a33c56aba724ec42fe1d8f94c86c2e2660c1277470be9b04e5113d7c5b72d"}, + {file = "pycairo-1.20.0-cp38-cp38-win32.whl", hash = "sha256:2088100a099c09c5e90bf247409ce6c98f51766b53bd13f96d6aac7addaa3e66"}, + {file = "pycairo-1.20.0-cp38-cp38-win_amd64.whl", hash = "sha256:ceb1edcbeb48dabd5fbbdff2e4b429aa88ddc493d6ebafe78d94b050ac0749e2"}, + {file = "pycairo-1.20.0-cp39-cp39-win32.whl", hash = "sha256:57a768f4edc8a9890d98070dd473a812ac3d046cef4bc1c817d68024dab9a9b4"}, + {file = "pycairo-1.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:57166119e424d71eccdba6b318bd731bdabd17188e2ba10d4f315f7bf16ace3f"}, + {file = "pycairo-1.20.0.tar.gz", hash = "sha256:5695a10cb7f9ae0d01f665b56602a845b0a8cb17e2123bfece10c2e58552468c"}, +] +pydub = [ + {file = "pydub-0.25.1-py2.py3-none-any.whl", hash = "sha256:65617e33033874b59d87db603aa1ed450633288aefead953b30bded59cb599a6"}, + {file = "pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"}, +] +pyglet = [ + {file = "pyglet-1.5.15-py3-none-any.whl", hash = "sha256:4401cc176580e4e17e2df8bbf7536f27e691327dc3f38f209a12f1859c70aed2"}, + {file = "pyglet-1.5.15.zip", hash = "sha256:da9d8337388cedabf1f1c5dc21a45bb2b0e5327fba47f996c8573818c3dfa478"}, +] +pygments = [ + {file = "Pygments-2.8.1-py3-none-any.whl", hash = "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"}, + {file = "Pygments-2.8.1.tar.gz", hash = "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94"}, +] +pyrr = [ + {file = "pyrr-0.10.3-py3-none-any.whl", hash = "sha256:d8af23fb9bb29262405845e1c98f7339fbba5e49323b98528bd01160a75c65ac"}, + {file = "pyrr-0.10.3.tar.gz", hash = "sha256:3c0f7b20326e71f706a610d58f2190fff73af01eef60c19cb188b186f0ec7e1d"}, +] +rich = [ + {file = "rich-6.2.0-py3-none-any.whl", hash = "sha256:fa55d5d6ba9a0df1f1c95518891b57b13f1d45548a9a198a87b093fceee513ec"}, + {file = "rich-6.2.0.tar.gz", hash = "sha256:f99c877277906e1ff83b135c564920590ba31188f424dcdb5d1cae652a519b4b"}, +] +scipy = [ + {file = "scipy-1.6.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:a15a1f3fc0abff33e792d6049161b7795909b40b97c6cc2934ed54384017ab76"}, + {file = "scipy-1.6.1-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:e79570979ccdc3d165456dd62041d9556fb9733b86b4b6d818af7a0afc15f092"}, + {file = "scipy-1.6.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:a423533c55fec61456dedee7b6ee7dce0bb6bfa395424ea374d25afa262be261"}, + {file = "scipy-1.6.1-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:33d6b7df40d197bdd3049d64e8e680227151673465e5d85723b3b8f6b15a6ced"}, + {file = "scipy-1.6.1-cp37-cp37m-win32.whl", hash = "sha256:6725e3fbb47da428794f243864f2297462e9ee448297c93ed1dcbc44335feb78"}, + {file = "scipy-1.6.1-cp37-cp37m-win_amd64.whl", hash = "sha256:5fa9c6530b1661f1370bcd332a1e62ca7881785cc0f80c0d559b636567fab63c"}, + {file = "scipy-1.6.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bd50daf727f7c195e26f27467c85ce653d41df4358a25b32434a50d8870fc519"}, + {file = "scipy-1.6.1-cp38-cp38-manylinux1_i686.whl", hash = "sha256:f46dd15335e8a320b0fb4685f58b7471702234cba8bb3442b69a3e1dc329c345"}, + {file = "scipy-1.6.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:0e5b0ccf63155d90da576edd2768b66fb276446c371b73841e3503be1d63fb5d"}, + {file = "scipy-1.6.1-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:2481efbb3740977e3c831edfd0bd9867be26387cacf24eb5e366a6a374d3d00d"}, + {file = "scipy-1.6.1-cp38-cp38-win32.whl", hash = "sha256:68cb4c424112cd4be886b4d979c5497fba190714085f46b8ae67a5e4416c32b4"}, + {file = "scipy-1.6.1-cp38-cp38-win_amd64.whl", hash = "sha256:5f331eeed0297232d2e6eea51b54e8278ed8bb10b099f69c44e2558c090d06bf"}, + {file = "scipy-1.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0c8a51d33556bf70367452d4d601d1742c0e806cd0194785914daf19775f0e67"}, + {file = "scipy-1.6.1-cp39-cp39-manylinux1_i686.whl", hash = "sha256:83bf7c16245c15bc58ee76c5418e46ea1811edcc2e2b03041b804e46084ab627"}, + {file = "scipy-1.6.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:794e768cc5f779736593046c9714e0f3a5940bc6dcc1dba885ad64cbfb28e9f0"}, + {file = "scipy-1.6.1-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:5da5471aed911fe7e52b86bf9ea32fb55ae93e2f0fac66c32e58897cfb02fa07"}, + {file = "scipy-1.6.1-cp39-cp39-win32.whl", hash = "sha256:8e403a337749ed40af60e537cc4d4c03febddcc56cd26e774c9b1b600a70d3e4"}, + {file = "scipy-1.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:a5193a098ae9f29af283dcf0041f762601faf2e595c0db1da929875b7570353f"}, + {file = "scipy-1.6.1.tar.gz", hash = "sha256:c4fceb864890b6168e79b0e714c585dbe2fd4222768ee90bc1aa0f8218691b11"}, +] +six = [ + {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, + {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, +] +tqdm = [ + {file = "tqdm-4.60.0-py2.py3-none-any.whl", hash = "sha256:daec693491c52e9498632dfbe9ccfc4882a557f5fa08982db1b4d3adbe0887c3"}, + {file = "tqdm-4.60.0.tar.gz", hash = "sha256:ebdebdb95e3477ceea267decfc0784859aa3df3e27e22d23b83e9b272bf157ae"}, +] +typing-extensions = [ + {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, + {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, + {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, +] +zipp = [ + {file = "zipp-3.4.1-py3-none-any.whl", hash = "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098"}, + {file = "zipp-3.4.1.tar.gz", hash = "sha256:3607921face881ba3e026887d8150cca609d517579abe052ac81fc5aeffdbd76"}, +] diff --git a/vorlesungen/punktgruppen/pyproject.toml b/vorlesungen/punktgruppen/pyproject.toml new file mode 100644 index 0000000..92c06e2 --- /dev/null +++ b/vorlesungen/punktgruppen/pyproject.toml @@ -0,0 +1,15 @@ +[tool.poetry] +name = "presentation" +version = "0.1.0" +description = "" +authors = ["Nao Pross "] + +[tool.poetry.dependencies] +python = "^3.7" +manim = "^0.5.0" + +[tool.poetry.dev-dependencies] + +[build-system] +requires = ["poetry-core>=1.0.0"] +build-backend = "poetry.core.masonry.api" -- cgit v1.2.1 From 78d0e0e09a959b793179761b098910fe04cc5448 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 14 Apr 2021 19:44:24 +0200 Subject: Add gitignore for presentation --- vorlesungen/punktgruppen/.gitignore | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 vorlesungen/punktgruppen/.gitignore (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/.gitignore b/vorlesungen/punktgruppen/.gitignore new file mode 100644 index 0000000..7f69fa5 --- /dev/null +++ b/vorlesungen/punktgruppen/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +media -- cgit v1.2.1 From 90ef643e08df0d62f4e1124040f7676fb8e7dbce Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 14 Apr 2021 21:04:36 +0200 Subject: Add doc to write presentation script --- vorlesungen/punktgruppen/.gitignore | 6 +++++ vorlesungen/punktgruppen/Makefile | 18 ++++++++++++++ vorlesungen/punktgruppen/script.pdf | Bin 0 -> 22284 bytes vorlesungen/punktgruppen/script.tex | 47 ++++++++++++++++++++++++++++++++++++ 4 files changed, 71 insertions(+) create mode 100644 vorlesungen/punktgruppen/Makefile create mode 100644 vorlesungen/punktgruppen/script.pdf create mode 100644 vorlesungen/punktgruppen/script.tex (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/.gitignore b/vorlesungen/punktgruppen/.gitignore index 7f69fa5..068a456 100644 --- a/vorlesungen/punktgruppen/.gitignore +++ b/vorlesungen/punktgruppen/.gitignore @@ -1,2 +1,8 @@ +# directories __pycache__ media +build + +# files +script.log +missfont.log diff --git a/vorlesungen/punktgruppen/Makefile b/vorlesungen/punktgruppen/Makefile new file mode 100644 index 0000000..eb4eed6 --- /dev/null +++ b/vorlesungen/punktgruppen/Makefile @@ -0,0 +1,18 @@ +TEX=xelatex +TEXARGS=--output-directory=build --halt-on-error + +all: script.pdf media + +.PHONY: clean +clean: + @rm -rfv build + # @rm -rfv media + +script.pdf: script.tex + mkdir -p build + $(TEX) $(TEXARGS) script.tex + cp build/script.pdf . + +media: + poetry install + poetry run manim -ql crystals.py diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf new file mode 100644 index 0000000..0893e79 Binary files /dev/null and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex new file mode 100644 index 0000000..e4fc63c --- /dev/null +++ b/vorlesungen/punktgruppen/script.tex @@ -0,0 +1,47 @@ +\documentclass[a4paper]{article} + +\usepackage[cm]{manuscript} +\usepackage{xcolor} + +\newcommand{\scene}[1]{\noindent[ #1 ]\par} +\newenvironment{totranslate}{\color{red!60!black}}{} + +\begin{document} + +\section{Intro} + +\section{Geometrie} +\scene{Intro} +\scene{Zyklische Gruppe} + +\begin{totranslate} + Let's now focus our attention on the simplest class of simmetries: those + generated only by a rotation. We'll describe the symmetries with a group + \(G\), and we'll write that it is generated by a rotation \(r\) with these + angle brackets. + + Take this shape as an example. By applying the rotation \emph{action} 5 + times, it seems as if we had not done anything, furthermore, if we \emph{act} + with higher ``powers'' \(r\), they will have the same effect as one of the + previous action. Thus the group only contain the identity and the powers of + \(r\) up to 4. + + In general, groups with this structure are known as the + ``Cyclic Groups'' of order \(n\), where the action \(r\) can be applied + \(n-1\) times before wrapping around. +\end{totranslate} + +\scene{Diedergruppe} + +\begin{totranslate} + Okay that was not difficult, now let's spice this up a bit. +\end{totranslate} + +\scene{Symmetrische Gruppe} +\scene{Alternierende Gruppe} + +\section{Algebra} + +\section{Krystalle} + +\end{document} -- cgit v1.2.1 From 89aec59f070bcbf4ad32d274da73a19131f58a98 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 15 Apr 2021 09:53:59 +0200 Subject: Start animating algebraic symmetries --- vorlesungen/punktgruppen/crystals.py | 79 ++++++++++++++++++++++++++++++++++-- 1 file changed, 76 insertions(+), 3 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index 0f97a0f..d0ff205 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -135,8 +135,8 @@ class Geometric2DSymmetries(Scene): self.wait() cyclic = MathTex( - r"C_n = \langle r \rangle" - r"= \left\{1, r, r^2, \dots, r^n \right\}") + r"Z_n = \langle r \rangle" + r"= \left\{1, r, r^2, \dots, r^{n-1} \right\}") cyclic_title = Tex(r"Zyklische Gruppe") cyclic_title.next_to(cyclic, UP * 2) @@ -266,4 +266,77 @@ class Geometric3DSymmetries(ThreeDScene): class AlgebraicSymmetries(Scene): def construct(self): - pass + # title + title = Tex(r"Algebraische \\ Symmetrien") + title.scale(1.5) + self.play(Write(title)) + self.wait() + self.play(FadeOut(title)) + self.wait() + + self.cyclic() + + def cyclic(self): + root_powers = MathTex( + r"\left( e^\frac{\pi i}{2} \right)^0 &= 1 \\", + r"\left( e^\frac{\pi i}{2} \right)^1 &= i \\", + r"\left( e^\frac{\pi i}{2} \right)^2 &= -1 \\", + r"\left( e^\frac{\pi i}{2} \right)^3 &= -i \\") + + root_more_powers = MathTex( + r"\left( e^\frac{\pi i}{2} \right)^4 &= 1 \\", + r"\left( e^\frac{\pi i}{2} \right)^5 &= i \\", + r"\left( e^\frac{\pi i}{2} \right)^6 &= -1 \\", + r"\left( e^\frac{\pi i}{2} \right)^7 &= -i \\") + + root_powers.shift(LEFT * 2) + root_more_powers.shift(RIGHT * 2) + + for line in root_powers: + self.play(Write(line)) + + for line in root_more_powers: + self.play(Write(line)) + + self.wait() + self.play( + ApplyMethod(root_powers.to_edge, LEFT), + FadeOutAndShift(root_more_powers, RIGHT)) + + groups = MathTex( + r"G &= \left\{ 1, i, -1, -i \right\} \\", + r"&= \left\{", + "1,", "i,", "i^2,", "i^3", + r"\right\} \\", + r"Z_4 &= \left\{", + "1,", "r,", "r^2,", "r^3" + r"\right\}") + groups.shift(UP) + + self.play(Write(groups[0])) + self.play(FadeOutAndShift(root_powers, LEFT)) + for part in groups[0:]: + self.play(Write(part)) + self.play(ApplyMethod(groups.to_corner, UP + LEFT)) + self.wait() + + isomorphism = MathTex( + r"\varphi : G &\to Z_4 \\", + r"\mathrm{ker}(\varphi) &= \emptyset \\", + r"G &\cong Z_4") + + iso_it = iter(isomorphism) + self.play(Write(next(iso_it))) + self.wait() + self.play(Write(next(iso_it))) + self.wait() + + # TODO: show in group + + self.play(Write(next(iso_it))) + self.wait() + + self.play(ApplyMethod(isomorphism.to_edge, UP)) + + self.wait(5) + -- cgit v1.2.1 From 852e683777b8d8594ddd2a752affccb98ebc9fdf Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 15 Apr 2021 09:54:19 +0200 Subject: Reword video script --- vorlesungen/punktgruppen/script.pdf | Bin 22284 -> 22295 bytes vorlesungen/punktgruppen/script.tex | 14 +++++++------- 2 files changed, 7 insertions(+), 7 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index 0893e79..044a426 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index e4fc63c..a1e356a 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -15,13 +15,13 @@ \scene{Zyklische Gruppe} \begin{totranslate} - Let's now focus our attention on the simplest class of simmetries: those - generated only by a rotation. We'll describe the symmetries with a group - \(G\), and we'll write that it is generated by a rotation \(r\) with these - angle brackets. + Let's now focus our attention on the simplest class of symmetries: those + generated by a single rotation. We describe the symmetries with a group + \(G\), and denote that it is generated by a rotation \(r\) with these angle + brackets. - Take this shape as an example. By applying the rotation \emph{action} 5 - times, it seems as if we had not done anything, furthermore, if we \emph{act} + Take this shape as an example. By applying the rotation \emph{action} 5 + times, it looks as if we had not done anything, furthermore, if we \emph{act} with higher ``powers'' \(r\), they will have the same effect as one of the previous action. Thus the group only contain the identity and the powers of \(r\) up to 4. @@ -34,7 +34,7 @@ \scene{Diedergruppe} \begin{totranslate} - Okay that was not difficult, now let's spice this up a bit. + Okay that was not difficult, now let's spice this up a bit. \end{totranslate} \scene{Symmetrische Gruppe} -- cgit v1.2.1 From a331aefc04c6d615a693d892048e1615db86a99c Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 16 Apr 2021 01:01:31 +0200 Subject: Continue video script --- vorlesungen/punktgruppen/script.pdf | Bin 22295 -> 25412 bytes vorlesungen/punktgruppen/script.tex | 52 +++++++++++++++++++++++------------- 2 files changed, 34 insertions(+), 18 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index 044a426..293b248 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index a1e356a..2a6d95c 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -4,37 +4,52 @@ \usepackage{xcolor} \newcommand{\scene}[1]{\noindent[ #1 ]\par} -\newenvironment{totranslate}{\color{red!60!black}}{} +\newenvironment{totranslate}{\color{blue!70!black}}{} \begin{document} \section{Intro} \section{Geometrie} -\scene{Intro} -\scene{Zyklische Gruppe} - \begin{totranslate} - Let's now focus our attention on the simplest class of symmetries: those - generated by a single rotation. We describe the symmetries with a group +We'll start with geometric symmetries as they are the simplest to grasp. + +\scene{Intro} + To mathematically formulate the concept, we will think of symmetries as + actions to perform on an object, like this square. The simplest action, is to + take this square, do nothing and put it back down. Another action could be to + flip it along an axis, or to rotate it around its center by 90 degrees. + +\scene{Cyclic Groups} + Let's focus our attention on the simplest class of symmetries: those + generated by a single rotation. We will gather the symmetries in a group \(G\), and denote that it is generated by a rotation \(r\) with these angle brackets. - Take this shape as an example. By applying the rotation \emph{action} 5 - times, it looks as if we had not done anything, furthermore, if we \emph{act} - with higher ``powers'' \(r\), they will have the same effect as one of the - previous action. Thus the group only contain the identity and the powers of - \(r\) up to 4. + Take this pentagon as an example. By applying the rotation \emph{action} 5 + times, it is the same as if we had not done anything, furthermore, if we + \emph{act} a sixth time with \(r\), it will be the same as if we had just + acted with \(r\) once. Thus the group only contain the identity and the + powers of \(r\) up to 4. - In general, groups with this structure are known as the - ``Cyclic Groups'' of order \(n\), where the action \(r\) can be applied - \(n-1\) times before wrapping around. -\end{totranslate} + In general, groups with this structure are known as the ``Cyclic Groups'' of + order \(n\), where the action \(r\) can be applied \(n-1\) times before + wrapping around. -\scene{Diedergruppe} + % You can think of them as the rotational symmetries of an \(n\)-gon. -\begin{totranslate} - Okay that was not difficult, now let's spice this up a bit. +\scene{Dihedral Groups} + Okay that was not difficult, now let's spice this up a bit. Consider this + group for a square, generated by two actions: a rotation \(r\) and a + reflection \(\sigma\). Because we have two actions we have to write in the + generator how they relate to each other. + + Let's analyze this expression. Two reflections are the same as the identity. + Four rotations are the same as the identity, and a rotation followed by a + reflection, twice, is the same as the identity. + + This forms a group with 8 possible unique actions. This too can be generalized + to an \(n\)-gon, and is known as the ``Dihedral Group'' of order \(n\). \end{totranslate} \scene{Symmetrische Gruppe} @@ -45,3 +60,4 @@ \section{Krystalle} \end{document} +% vim:et ts=2 sw=2: -- cgit v1.2.1 From 8a4d352a656972bf4b48d2b73733f15d9adf89fc Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 16 Apr 2021 01:02:19 +0200 Subject: Change symbol for identity element --- vorlesungen/punktgruppen/crystals.py | 92 ++++++++++++++++++++++++++---------- 1 file changed, 67 insertions(+), 25 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index d0ff205..894199d 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -2,6 +2,7 @@ from manim import * import math as m import numpy as np +import itertools as it # configure style config.background_color = '#202020' @@ -34,7 +35,7 @@ class Geometric2DSymmetries(Scene): self.wait() # the action of doing nothing - action = MathTex(r"1") + action = MathTex(r"\mathbb{1}") self.play(Write(action)) self.play(ApplyMethod(square.scale, 1.2)) self.play(ApplyMethod(square.scale, 1/1.2)) @@ -110,7 +111,10 @@ class Geometric2DSymmetries(Scene): self.wait() self.play(ApplyMethod(group.to_corner, UP)) - actions = map(MathTex, [r"1", r"r", r"r^2", r"r^3", r"r^4", r"1"]) + actions = map(MathTex, [ + r"\mathbb{1}", r"r", r"r^2", + r"r^3", r"r^4", r"\mathbb{1}"]) + action = next(actions, MathTex(r"r")) self.play(Create(figure)) @@ -128,7 +132,7 @@ class Geometric2DSymmetries(Scene): whole_group = MathTex( r"G = \langle r \rangle" - r"= \left\{1, r, r^2, r^3, r^4 \right\}") + r"= \left\{\mathbb{1}, r, r^2, r^3, r^4 \right\}") self.play(ApplyMethod(group.move_to, ORIGIN)) self.play(ReplacementTransform(group, whole_group)) @@ -136,7 +140,7 @@ class Geometric2DSymmetries(Scene): cyclic = MathTex( r"Z_n = \langle r \rangle" - r"= \left\{1, r, r^2, \dots, r^{n-1} \right\}") + r"= \left\{\mathbb{1}, r, r^2, \dots, r^{n-1} \right\}") cyclic_title = Tex(r"Zyklische Gruppe") cyclic_title.next_to(cyclic, UP * 2) @@ -158,9 +162,9 @@ class Geometric2DSymmetries(Scene): # generator equation group = MathTex( r"G = \langle \sigma, r \,|\,", - r"\sigma^2 = 1,", - r"r^4 = 1,", - r"(\sigma r)^2 = 1 \rangle") + r"\sigma^2 = \mathbb{1},", + r"r^4 = \mathbb{1},", + r"(\sigma r)^2 = \mathbb{1} \rangle") self.play(Write(group), run_time = 2) self.wait() @@ -168,7 +172,7 @@ class Geometric2DSymmetries(Scene): self.play(FadeIn(square)) axis = DashedLine(2 * LEFT, 2 * RIGHT) - sigma = MathTex(r"\sigma^2 = 1") + sigma = MathTex(r"\sigma^2 = \mathbb{1}") sigma.next_to(axis, RIGHT) self.play(Create(axis), Write(sigma)) self.play(ApplyMethod(square.flip, RIGHT)) @@ -177,7 +181,7 @@ class Geometric2DSymmetries(Scene): # rotations dot = Dot(UP + RIGHT) - rot = MathTex(r"r^4 = 1") + rot = MathTex(r"r^4 = \mathbb{1}") rot.next_to(square, DOWN * 3) figure = VGroup() @@ -190,7 +194,7 @@ class Geometric2DSymmetries(Scene): self.play(FadeOut(rot), Uncreate(dot)) # rotation and flip - action = MathTex(r"(\sigma r)^2 = 1") + action = MathTex(r"(\sigma r)^2 = \mathbb{1}") action.next_to(square, DOWN * 5) dot = Dot(UP + RIGHT) @@ -212,9 +216,9 @@ class Geometric2DSymmetries(Scene): # equation for the whole whole_group = MathTex( r"G &= \langle \sigma, r \,|\," - r"\sigma^2 = r^4 = (\sigma r)^2 = 1 \rangle \\" + r"\sigma^2 = r^4 = (\sigma r)^2 = \mathbb{1} \rangle \\" r"&= \left\{" - r"1, r, r^2, r^3, \sigma, \sigma r, \sigma r^2, \sigma r^3" + r"\mathbb{1}, r, r^2, r^3, \sigma, \sigma r, \sigma r^2, \sigma r^3" r"\right\}") self.play(ApplyMethod(group.move_to, ORIGIN)) @@ -223,9 +227,9 @@ class Geometric2DSymmetries(Scene): dihedral = MathTex( r"D_n &= \langle \sigma, r \,|\," - r"\sigma^2 = r^n = (\sigma r)^2 = 1 \rangle \\" + r"\sigma^2 = r^n = (\sigma r)^2 = \mathbb{1} \rangle \\" r"&= \left\{" - r"1, r, r^2, \dots, \sigma, \sigma r, \sigma r^2, \dots" + r"\mathbb{1}, r, r^2, \dots, \sigma, \sigma r, \sigma r^2, \dots" r"\right\}") dihedral_title = Tex(r"Diedergruppe: Symmetrien eines \(n\)-gons") @@ -245,22 +249,60 @@ class Geometric3DSymmetries(ThreeDScene): def construct(self): self.symmetric() + + @staticmethod + def get_cube(): + verts = np.array(list(it.product(*3 * [[-1, 1]]))) + edges = [ + (v1, v2) + for v1, v2 in it.combinations(verts, 2) + if sum(v1 == v2) == 2 + ] + corner_dots = Group(*[ + Sphere().set_height(0.25).move_to(vert) + for vert in verts + ]) + corner_dots.set_color(GREY_B) + edge_rods = Group(*[ + Line3D(v1, v2) + for v1, v2 in edges + ]) + + faces = Cube(square_resolution=(10, 10)) + faces.set_height(2) + faces.set_color(BLUE_E, 0.3) + # faces.add_updater(lambda m: m.sort(lambda p: np.dot(p, [np.sign(self.euler_angles[0]) * 0.2, -1, 0.2]))) + + cube = Group(corner_dots, edge_rods, faces) + cube.corner_dots = corner_dots + cube.edge_rods = edge_rods + cube.faces = faces + return cube + def symmetric(self): self.renderer.camera.light_source.move_to(3*IN) # changes the source of the light - self.set_camera_orientation(phi=60 * DEGREES, theta=-20 * DEGREES) + self.set_camera_orientation(phi=60 * DEGREES, theta=5 * DEGREES) cube = Cube() - axes = ThreeDAxes() - - axis = np.array([2,2,2]) - line = DashedLine(-axis, axis) - - self.play(Create(axes), Create(cube)) - self.play(Create(line)) - - self.play(ApplyMethod(cube.rotate, PI, axis / abs(axis))) + self.play(GrowFromCenter(cube)) + + axes = list( + map(lambda v: v / np.linalg.norm(v), + map(np.array, [ + [0, 0, 1], + [0, 1, 1], + [1, 1, 1], + ]) + )) + angles = [ PI, PI, PI * 2/3 ] + lines = list(map(lambda x: Line(-2 * x, 2 * x), axes)) + + camera_thetas = list(map(lambda x: x * DEGREES, [10, 100, 110])) + for axis, line, angle, camera_angle in zip(axes, lines, angles, camera_thetas): + self.move_camera(theta=camera_angle) + self.play(Create(line)) + self.play(Rotate(cube, angle, axis=axis, run_time=3)) - self.begin_ambient_camera_rotation(rate=0.1) self.wait(7) -- cgit v1.2.1 From 89ff85cc982caac0a32c8f871da362c1b6970f61 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 16 Apr 2021 03:56:47 +0200 Subject: Rewrite cyclic group algebraic symmetry video --- vorlesungen/punktgruppen/crystals.py | 165 +++++++++++++++++++++++++---------- 1 file changed, 118 insertions(+), 47 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index 894199d..dd55bbe 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -109,7 +109,7 @@ class Geometric2DSymmetries(Scene): group = MathTex(r"G = \langle r \rangle") self.play(Write(group), run_time = 2) self.wait() - self.play(ApplyMethod(group.to_corner, UP)) + self.play(ApplyMethod(group.to_edge, UP)) actions = map(MathTex, [ r"\mathbb{1}", r"r", r"r^2", @@ -168,7 +168,7 @@ class Geometric2DSymmetries(Scene): self.play(Write(group), run_time = 2) self.wait() - self.play(ApplyMethod(group.to_corner, UP)) + self.play(ApplyMethod(group.to_edge, UP)) self.play(FadeIn(square)) axis = DashedLine(2 * LEFT, 2 * RIGHT) @@ -319,66 +319,137 @@ class AlgebraicSymmetries(Scene): self.cyclic() def cyclic(self): - root_powers = MathTex( - r"\left( e^\frac{\pi i}{2} \right)^0 &= 1 \\", - r"\left( e^\frac{\pi i}{2} \right)^1 &= i \\", - r"\left( e^\frac{\pi i}{2} \right)^2 &= -1 \\", - r"\left( e^\frac{\pi i}{2} \right)^3 &= -i \\") - - root_more_powers = MathTex( - r"\left( e^\frac{\pi i}{2} \right)^4 &= 1 \\", - r"\left( e^\frac{\pi i}{2} \right)^5 &= i \\", - r"\left( e^\frac{\pi i}{2} \right)^6 &= -1 \\", - r"\left( e^\frac{\pi i}{2} \right)^7 &= -i \\") + # show the i product + product = MathTex( + r"1", r"\cdot i &= i \\", + r"i \cdot i &= -1 \\", + r"-1 \cdot i &= -i \\", + r"-i \cdot i &= 1") + product.scale(1.5) + + for part in product: + self.play(Write(part)) - root_powers.shift(LEFT * 2) - root_more_powers.shift(RIGHT * 2) + self.wait() + self.play(ApplyMethod(product.scale, 1/1.5)) - for line in root_powers: - self.play(Write(line)) + # gather in group + group = MathTex(r"G = \left\{ 1, i, -1, -i \right\}") + self.play(ReplacementTransform(product, group)) + self.wait() - for line in root_more_powers: - self.play(Write(line)) + # show Z4 + grouppow = MathTex( + r"G &= \left\{ 1, i, i^2, i^3 \right\} \\", + r"Z_4 &= \left\{ \mathbb{1}, r, r^2, r^3 \right\}") + self.play(ReplacementTransform(group, grouppow[0])) + self.wait() + self.play(Write(grouppow[1])) + self.wait() + self.play(ApplyMethod(grouppow.to_edge, UP)) + + # define morphisms + morphism = MathTex(r"\phi: Z_4 \to G \\") + morphism.shift(UP) + self.play(Write(morphism)) + + # show an example + mappings = MathTex( + r"\phi(\mathbb{1}) &= 1 \\", + r"\phi(r) &= i \\", + r"\phi(r^2) &= i^2 \\", + r"\phi(r^3) &= i^3 \\") + mappings.next_to(morphism, DOWN) + + self.play(Write(mappings)) self.wait() + self.play(FadeOutAndShift(mappings, DOWN)) + + # more general definition + homomorphism = MathTex( + r"\phi(r\circ \mathbb{1}) &= i\cdot 1 \\", + r"&= \phi(r)\cdot\phi(\mathbb{1})") + homomorphism.next_to(morphism, DOWN).align_to(morphism, LEFT) + for part in homomorphism: + self.play(Write(part)) + + hom_bracegrp = VGroup() + hom_bracegrp.add(morphism) + hom_bracegrp.add(homomorphism) + self.play( - ApplyMethod(root_powers.to_edge, LEFT), - FadeOutAndShift(root_more_powers, RIGHT)) - - groups = MathTex( - r"G &= \left\{ 1, i, -1, -i \right\} \\", - r"&= \left\{", - "1,", "i,", "i^2,", "i^3", - r"\right\} \\", - r"Z_4 &= \left\{", - "1,", "r,", "r^2,", "r^3" - r"\right\}") - groups.shift(UP) + ApplyMethod(grouppow.shift, 2.5 * LEFT), + ApplyMethod(hom_bracegrp.shift, 2.5 * LEFT)) - self.play(Write(groups[0])) - self.play(FadeOutAndShift(root_powers, LEFT)) - for part in groups[0:]: - self.play(Write(part)) - self.play(ApplyMethod(groups.to_corner, UP + LEFT)) + hom_brace = Brace(hom_bracegrp, direction=RIGHT) + hom_text = Tex("Homomorphismus").next_to(hom_brace.get_tip(), RIGHT) + + self.play(Create(hom_brace)) + self.play(Write(hom_text)) self.wait() - isomorphism = MathTex( - r"\varphi : G &\to Z_4 \\", - r"\mathrm{ker}(\varphi) &= \emptyset \\", - r"G &\cong Z_4") + self.play(FadeOut(hom_brace), FadeOut(hom_text)) - iso_it = iter(isomorphism) - self.play(Write(next(iso_it))) + # add the isomorphism part + isomorphism = Tex(r"\(\phi\) ist bijektiv") + isomorphism.next_to(homomorphism, DOWN).align_to(homomorphism, LEFT) + self.play(Write(isomorphism)) + + iso_bracegrp = VGroup() + iso_bracegrp.add(hom_bracegrp) + iso_bracegrp.add(isomorphism) + + iso_brace = Brace(iso_bracegrp, RIGHT) + iso_text = Tex("Isomorphismus").next_to(iso_brace.get_tip(), RIGHT) + iso_text_short = MathTex("Z_4 \cong G").next_to(iso_brace.get_tip(), RIGHT) + + self.play(Create(iso_brace)) + self.play(Write(iso_text)) self.wait() - self.play(Write(next(iso_it))) + + self.play(ReplacementTransform(iso_text, iso_text_short)) self.wait() - # TODO: show in group + # create a group for the whole + morphgrp = VGroup() + morphgrp.add(iso_bracegrp) + morphgrp.add(iso_brace) + morphgrp.add(iso_text_short) + + self.play( + FadeOutAndShift(grouppow, UP), + FadeOutAndShift(morphgrp, DOWN)) + + # draw a complex plane + plane = ComplexPlane() + plane.axis_config["number_scale_val"] = 1 + self.play(Create(plane)) - self.play(Write(next(iso_it))) + roots = list(map(lambda p: Dot(p, fill_color=PINK), ( + [1, 0, 0], [0, 1, 0], [-1, 0, 0], [0, -1, 0] + ))) + + self.play( + *map(Create, roots), + *map(Write, plane.get_coordinate_labels(1, -1, 1j, -1j))) self.wait() - self.play(ApplyMethod(isomorphism.to_edge, UP)) + arrow = CurvedArrow( + 1.5 * np.array([m.cos(10 * DEGREES), m.sin(10 * DEGREES), 0]), + 1.5 * np.array([m.cos(80 * DEGREES), m.sin(80 * DEGREES), 0])) - self.wait(5) + arrowtext = MathTex("\cdot i") + arrowtext.move_to(2 / m.sqrt(2) * (UP + RIGHT)) + + square = Square().rotate(PI/4).scale(1/m.sqrt(2)) + square.set_fill(PINK).set_opacity(.4) + + self.play(FadeIn(square), Create(arrow), Write(arrowtext)) + + for _ in range(4): + self.play(Rotate(square, PI/2)) + self.wait(.5) + self.play(FadeOut(square), FadeOut(arrow), *map(FadeOut, roots)) + self.play(Uncreate(plane)) -- cgit v1.2.1 From 7191f61813d079d543242b5160a011a18b2bcd7b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 16 Apr 2021 14:24:37 +0200 Subject: Fix complex plane animation --- vorlesungen/punktgruppen/crystals.py | 81 ++++++++++++++++++++++-------------- 1 file changed, 49 insertions(+), 32 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index dd55bbe..76dee1f 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -66,9 +66,7 @@ class Geometric2DSymmetries(Scene): # show some rotations dot = Dot(UP + RIGHT) - figure = VGroup() - figure.add(square) - figure.add(dot) + figure = VGroup(square, dot) rot = MathTex(r"r") self.play(Write(rot), Create(dot)) @@ -184,9 +182,7 @@ class Geometric2DSymmetries(Scene): rot = MathTex(r"r^4 = \mathbb{1}") rot.next_to(square, DOWN * 3) - figure = VGroup() - figure.add(dot) - figure.add(square) + figure = VGroup(dot, square) self.play(Write(rot), Create(dot)) for i in range(4): @@ -201,9 +197,7 @@ class Geometric2DSymmetries(Scene): axis = DashedLine(2 * LEFT, 2 * RIGHT) self.play(Create(dot), Create(axis), Write(action)) - figure = VGroup() - figure.add(dot) - figure.add(square) + figure = VGroup(dot, square) for i in range(2): self.play(Rotate(figure, PI/2)) @@ -317,6 +311,7 @@ class AlgebraicSymmetries(Scene): self.wait() self.cyclic() + self.matrices() def cyclic(self): # show the i product @@ -374,9 +369,7 @@ class AlgebraicSymmetries(Scene): for part in homomorphism: self.play(Write(part)) - hom_bracegrp = VGroup() - hom_bracegrp.add(morphism) - hom_bracegrp.add(homomorphism) + hom_bracegrp = VGroup(morphism, homomorphism) self.play( ApplyMethod(grouppow.shift, 2.5 * LEFT), @@ -384,21 +377,21 @@ class AlgebraicSymmetries(Scene): hom_brace = Brace(hom_bracegrp, direction=RIGHT) hom_text = Tex("Homomorphismus").next_to(hom_brace.get_tip(), RIGHT) + hom_text_short = MathTex(r"G \simeq Z_4").next_to(hom_brace.get_tip(), RIGHT) self.play(Create(hom_brace)) self.play(Write(hom_text)) + self.play(ReplacementTransform(hom_text, hom_text_short)) self.wait() - self.play(FadeOut(hom_brace), FadeOut(hom_text)) + self.play(FadeOut(hom_brace), FadeOut(hom_text_short)) # add the isomorphism part isomorphism = Tex(r"\(\phi\) ist bijektiv") isomorphism.next_to(homomorphism, DOWN).align_to(homomorphism, LEFT) self.play(Write(isomorphism)) - iso_bracegrp = VGroup() - iso_bracegrp.add(hom_bracegrp) - iso_bracegrp.add(isomorphism) + iso_bracegrp = VGroup(hom_bracegrp, isomorphism) iso_brace = Brace(iso_bracegrp, RIGHT) iso_text = Tex("Isomorphismus").next_to(iso_brace.get_tip(), RIGHT) @@ -412,44 +405,68 @@ class AlgebraicSymmetries(Scene): self.wait() # create a group for the whole - morphgrp = VGroup() - morphgrp.add(iso_bracegrp) - morphgrp.add(iso_brace) - morphgrp.add(iso_text_short) + morphgrp = VGroup(iso_bracegrp, iso_brace, iso_text_short) self.play( - FadeOutAndShift(grouppow, UP), - FadeOutAndShift(morphgrp, DOWN)) + ApplyMethod(grouppow.to_edge, LEFT), + ApplyMethod(morphgrp.to_edge, LEFT)) + # self.play( + # FadeOutAndShift(grouppow, UP), + # FadeOutAndShift(morphgrp, DOWN)) # draw a complex plane - plane = ComplexPlane() - plane.axis_config["number_scale_val"] = 1 - self.play(Create(plane)) + plane = ComplexPlane(x_min = -2, x_max = 3) + coordinates = plane.get_coordinate_labels(1, -1, 1j, -1j) roots = list(map(lambda p: Dot(p, fill_color=PINK), ( [1, 0, 0], [0, 1, 0], [-1, 0, 0], [0, -1, 0] ))) - self.play( - *map(Create, roots), - *map(Write, plane.get_coordinate_labels(1, -1, 1j, -1j))) - self.wait() - arrow = CurvedArrow( 1.5 * np.array([m.cos(10 * DEGREES), m.sin(10 * DEGREES), 0]), 1.5 * np.array([m.cos(80 * DEGREES), m.sin(80 * DEGREES), 0])) - arrowtext = MathTex("\cdot i") arrowtext.move_to(2 / m.sqrt(2) * (UP + RIGHT)) square = Square().rotate(PI/4).scale(1/m.sqrt(2)) square.set_fill(PINK).set_opacity(.4) + figuregrp = Group(plane, square, arrow, arrowtext, *coordinates, *roots) + figuregrp.to_edge(RIGHT) + + self.play(Create(plane)) + self.play( + *map(Create, roots), + *map(Write, coordinates)) + self.wait() self.play(FadeIn(square), Create(arrow), Write(arrowtext)) for _ in range(4): self.play(Rotate(square, PI/2)) self.wait(.5) - self.play(FadeOut(square), FadeOut(arrow), *map(FadeOut, roots)) + self.play( + *map(FadeOut, (square, arrow, arrowtext)), + *map(FadeOut, coordinates), + *map(FadeOut, roots)) self.play(Uncreate(plane)) + self.play( + FadeOutAndShift(grouppow, RIGHT), + FadeOutAndShift(morphgrp, RIGHT)) + + modulo = MathTex( + r"\phi: Z_4 &\to (\mathbb{Z}/4\mathbb{Z}, +) \\" + r"\phi(\mathbb{1} \circ r^2) &= 0 + 2 \pmod 4").scale(1.5) + self.play(Write(modulo)) + self.wait(2) + + self.play(FadeOut(modulo)) + self.wait(3) + + def matrices(self): + question = MathTex(r"D_n \cong \,? \\ S_n \cong \,? \\ A_n \cong \,?") + question.scale(1.5) + + self.play(Write(question)) + + self.wait(3) -- cgit v1.2.1 From 4c2a0d4d394dbb85222f480d271aa2171f0f201c Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 23 Apr 2021 20:18:45 +0200 Subject: Change brace animation --- vorlesungen/punktgruppen/crystals.py | 22 ++++++++++++++++------ vorlesungen/punktgruppen/script.pdf | Bin 25412 -> 25619 bytes vorlesungen/punktgruppen/script.tex | 6 +++++- 3 files changed, 21 insertions(+), 7 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index 76dee1f..136481b 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -377,14 +377,14 @@ class AlgebraicSymmetries(Scene): hom_brace = Brace(hom_bracegrp, direction=RIGHT) hom_text = Tex("Homomorphismus").next_to(hom_brace.get_tip(), RIGHT) - hom_text_short = MathTex(r"G \simeq Z_4").next_to(hom_brace.get_tip(), RIGHT) + hom_text_short = MathTex(r"\mathrm{Hom}(G, Z_4)").next_to(hom_brace.get_tip(), RIGHT) self.play(Create(hom_brace)) self.play(Write(hom_text)) self.play(ReplacementTransform(hom_text, hom_text_short)) self.wait() - self.play(FadeOut(hom_brace), FadeOut(hom_text_short)) + # self.play(FadeOut(hom_brace), FadeOut(hom_text_short)) # add the isomorphism part isomorphism = Tex(r"\(\phi\) ist bijektiv") @@ -397,8 +397,9 @@ class AlgebraicSymmetries(Scene): iso_text = Tex("Isomorphismus").next_to(iso_brace.get_tip(), RIGHT) iso_text_short = MathTex("Z_4 \cong G").next_to(iso_brace.get_tip(), RIGHT) - self.play(Create(iso_brace)) - self.play(Write(iso_text)) + self.play( + ReplacementTransform(hom_brace, iso_brace), + ReplacementTransform(hom_text_short, iso_text)) self.wait() self.play(ReplacementTransform(iso_text, iso_text_short)) @@ -464,9 +465,18 @@ class AlgebraicSymmetries(Scene): self.wait(3) def matrices(self): - question = MathTex(r"D_n \cong \,? \\ S_n \cong \,? \\ A_n \cong \,?") - question.scale(1.5) + question = MathTex( + r"D_n &\cong \,? \\" + r"S_n &\cong \,? \\" + r"A_n &\cong \,?").scale(1.5) + + answer = MathTex( + r"D_n &\cong \,?\\" + r"S_4 &\cong \mathrm{Aut}(Q_8) \\" + r"A_5 &\cong \mathrm{PSL}_2 (5)").scale(1.5) self.play(Write(question)) + self.wait() + self.play(ReplacementTransform(question, answer)) self.wait(3) diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index 293b248..a701d6a 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index 2a6d95c..fe095fb 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -3,7 +3,7 @@ \usepackage[cm]{manuscript} \usepackage{xcolor} -\newcommand{\scene}[1]{\noindent[ #1 ]\par} +\newcommand{\scene}[1]{\par\noindent[ #1 ]\par} \newenvironment{totranslate}{\color{blue!70!black}}{} \begin{document} @@ -56,6 +56,10 @@ We'll start with geometric symmetries as they are the simplest to grasp. \scene{Alternierende Gruppe} \section{Algebra} +\begin{totranslate} +Let's now move into something seemingly unrelated: \emph{algebra}. +\scene{Complex numbers and cyclic groups} +\end{totranslate} \section{Krystalle} -- cgit v1.2.1 From 4b3f4be3305d130c0435c269fd038eb049252f5d Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 28 Apr 2021 21:52:38 +0200 Subject: Create slides --- vorlesungen/punktgruppen/.gitignore | 1 + vorlesungen/punktgruppen/Makefile | 7 ++++- vorlesungen/punktgruppen/slides.pdf | Bin 0 -> 9740 bytes vorlesungen/punktgruppen/slides.tex | 61 ++++++++++++++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 vorlesungen/punktgruppen/slides.pdf create mode 100644 vorlesungen/punktgruppen/slides.tex (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/.gitignore b/vorlesungen/punktgruppen/.gitignore index 068a456..632b499 100644 --- a/vorlesungen/punktgruppen/.gitignore +++ b/vorlesungen/punktgruppen/.gitignore @@ -5,4 +5,5 @@ build # files script.log +slides.log missfont.log diff --git a/vorlesungen/punktgruppen/Makefile b/vorlesungen/punktgruppen/Makefile index eb4eed6..c155b04 100644 --- a/vorlesungen/punktgruppen/Makefile +++ b/vorlesungen/punktgruppen/Makefile @@ -1,13 +1,18 @@ TEX=xelatex TEXARGS=--output-directory=build --halt-on-error -all: script.pdf media +all: slides.pdf script.pdf media .PHONY: clean clean: @rm -rfv build # @rm -rfv media +slides.pdf: slides.tex + mkdir -p build + $(TEX) $(TEXARGS) slides.tex + cp build/slides.pdf . + script.pdf: script.tex mkdir -p build $(TEX) $(TEXARGS) script.tex diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf new file mode 100644 index 0000000..bfb36e9 Binary files /dev/null and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex new file mode 100644 index 0000000..5c6982c --- /dev/null +++ b/vorlesungen/punktgruppen/slides.tex @@ -0,0 +1,61 @@ +\documentclass[12pt, xcolor, aspectratio=169]{beamer} + + +% Theme +\beamertemplatenavigationsymbolsempty + +% set look +\usetheme{default} +\usecolortheme{fly} + +%% Set font +\usepackage[p,osf]{scholax} +\usepackage{amsmath} +\usepackage[scaled=1.075,ncf,vvarbb]{newtxmath} + +% set colors +\definecolor{background}{HTML}{202020} + +\setbeamercolor{normal text}{fg=white, bg=background} +\setbeamercolor{structure}{fg=white} + +\setbeamercolor{item projected}{use=item,fg=background,bg=item.fg!35} + +\setbeamercolor*{palette primary}{use=structure,fg=white,bg=structure.fg} +\setbeamercolor*{palette secondary}{use=structure,fg=white,bg=structure.fg!75} +\setbeamercolor*{palette tertiary}{use=structure,fg=white,bg=structure.fg!50} +\setbeamercolor*{palette quaternary}{fg=white,bg=background} + +\setbeamercolor*{block title}{parent=structure} +\setbeamercolor*{block body}{fg=background, bg=} + +\setbeamercolor*{framesubtitle}{fg=white} + +% Metadata +\title{\LARGE \scshape Punktgruppen und Kristallen} +\author[N. Pross, T. T\"onz]{Naoki Pross, Tim T\"onz} +\institute{Hochschule f\"ur Technik OST, Rapperswil} +\date{10. Mai 2021} + +% Slides +\begin{document} +\begin{frame}{} +\titlepage +\end{frame} + +% \begin{frame}{} +% \tableofcontents +% \end{frame} + +\section{Einleitung} +\begin{frame}{Kristallen} +\[ + \psi +\] +\end{frame} + +\section{Geometrische Symmetrien} +\section{Algebraische Symmetrien} +\section{Kristallen} + +\end{document} -- cgit v1.2.1 From 152b7c463b1ae7cd7916dff075a11b306e5c22fc Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 1 May 2021 19:43:15 +0200 Subject: Add section title pages --- vorlesungen/punktgruppen/slides.pdf | Bin 9740 -> 12641 bytes vorlesungen/punktgruppen/slides.tex | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index bfb36e9..02a3348 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 5c6982c..8394451 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -1,5 +1,8 @@ \documentclass[12pt, xcolor, aspectratio=169]{beamer} +% language +\usepackage{polyglossia} +\setmainlanguage{german} % Theme \beamertemplatenavigationsymbolsempty @@ -31,6 +34,15 @@ \setbeamercolor*{framesubtitle}{fg=white} +\setbeamertemplate{section page} +{ + \begin{center} + \Huge + \insertsection + \end{center} +} +\AtBeginSection{\frame{\sectionpage}} + % Metadata \title{\LARGE \scshape Punktgruppen und Kristallen} \author[N. Pross, T. T\"onz]{Naoki Pross, Tim T\"onz} @@ -55,7 +67,15 @@ \end{frame} \section{Geometrische Symmetrien} +%% Made in video + \section{Algebraische Symmetrien} +\begin{frame}{} + Hello +\end{frame} + \section{Kristallen} +\section{Anwendungen} + \end{document} -- cgit v1.2.1 From 6e507ac59576c7b7ac5f0c80eee4e3a36b599a7e Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 1 May 2021 21:09:26 +0200 Subject: Add slide for 4th roots of 1 --- vorlesungen/punktgruppen/slides.pdf | Bin 12641 -> 25325 bytes vorlesungen/punktgruppen/slides.tex | 73 ++++++++++++++++++++++++++++-------- 2 files changed, 58 insertions(+), 15 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 02a3348..090a661 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 8394451..2199b26 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -10,6 +10,7 @@ % set look \usetheme{default} \usecolortheme{fly} +\usefonttheme{serif} %% Set font \usepackage[p,osf]{scholax} @@ -51,28 +52,70 @@ % Slides \begin{document} -\begin{frame}{} -\titlepage -\end{frame} - -% \begin{frame}{} -% \tableofcontents -% \end{frame} +\frame{\titlepage} +\frame{\tableofcontents} \section{Einleitung} -\begin{frame}{Kristallen} -\[ - \psi -\] -\end{frame} +\frame{ + \[ + \psi + \] +} \section{Geometrische Symmetrien} %% Made in video \section{Algebraische Symmetrien} -\begin{frame}{} - Hello -\end{frame} +\frame{ + \begin{columns} + \begin{column}{.3\textwidth} + Produkt mit \(i\) + \begin{align*} + 1 \cdot i &= i \\ + i \cdot i &= -1 \\ + -1 \cdot i &= -i \\ + -i \cdot i &= 1 + \end{align*} + \pause + % + Gruppe + \begin{align*} + G &= \left\{ + 1, i, -1, -i + \right\} \\ + &= \left\{ + 1, i, i^2, i^3 + \right\} \\ + Z_4 &= \left\{ + \mathbb{1}, r, r^2, r^3 + \right\} + \end{align*} + \pause + % + \end{column} + \begin{column}{.5\textwidth} + % + Darstellung + \[ + \phi : Z_4 \to G + \] + \begin{align*} + \phi(\mathbb{1}) &= 1 & \phi(r^2) &= i^2 \\ + \phi(r) &= i & \phi(r^3) &= i^3 + \end{align*} + \pause + % + Homomorphismus + \begin{align*} + \phi(r \circ \mathbb{1}) &= \phi(r) \cdot \phi(\mathbb{1}) \\ + &= i \cdot 1 + \end{align*} + \pause + % + \(\phi\) ist bijektiv \(\implies Z_4 \cong G\) + \end{column} + \end{columns} +} \section{Kristallen} -- cgit v1.2.1 From f5c4eff1d1d77b0d7a805e873ff24753e7fc84f2 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 1 May 2021 21:43:50 +0200 Subject: Remove title from GeometriSymmetries scene and add circle group --- vorlesungen/punktgruppen/crystals.py | 44 +++++++++++++++++++++++++++++------- 1 file changed, 36 insertions(+), 8 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index 136481b..70e1f89 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -16,16 +16,10 @@ config.tex_template.add_to_preamble( class Geometric2DSymmetries(Scene): def construct(self): # title - title = Tex(r"Geometrische \\ Symmetrien") - title.scale(1.5) - self.play(Write(title)) - self.wait() - self.play(FadeOut(title)) - self.wait() - self.intro() self.cyclic() self.dihedral() + self.circle() def intro(self): # create square @@ -114,7 +108,7 @@ class Geometric2DSymmetries(Scene): r"r^3", r"r^4", r"\mathbb{1}"]) action = next(actions, MathTex(r"r")) - + self.play(Create(figure)) self.play(Write(action)) self.wait() @@ -238,6 +232,40 @@ class Geometric2DSymmetries(Scene): self.wait(5) self.play(FadeOut(dihedral), FadeOut(dihedral_title)) + def circle(self): + circle = Circle(radius=2) + dot = Dot() + dot.move_to(2 * RIGHT) + + figure = VGroup(circle, dot) + group_name = MathTex(r"S^1") + + # create circle + self.play(Create(circle)) + self.play(Create(dot)) + + # move it around + self.play(Rotate(figure, PI/3)) + self.play(Rotate(figure, PI/6)) + self.play(Rotate(figure, -PI/3)) + + # show name + self.play(Rotate(figure, PI/4), Write(group_name)) + self.play(Uncreate(figure)) + + nsphere = MathTex(r"S^1 = \left\{z \in \mathbb{C} : |z| = 1\right\}") + nsphere_title = Tex(r"Kreisgruppe") + nsphere_title.next_to(nsphere, 2 * UP) + + nsphere.scale(1.2) + nsphere_title.scale(1.2) + + self.play(ReplacementTransform(group_name, nsphere)) + self.play(FadeInFrom(nsphere_title, UP)) + + self.wait(5) + self.play(FadeOut(nsphere_title), FadeOut(nsphere)) + class Geometric3DSymmetries(ThreeDScene): def construct(self): -- cgit v1.2.1 From 981b0e6a7e490d275e193a53b5ff224ec73e6b21 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 2 May 2021 01:04:33 +0200 Subject: Create 3D scene for axial groups --- vorlesungen/punktgruppen/crystals.py | 171 +++++++++++++++++++++-------------- 1 file changed, 105 insertions(+), 66 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index 70e1f89..cbae3d0 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -15,7 +15,6 @@ config.tex_template.add_to_preamble( # scenes class Geometric2DSymmetries(Scene): def construct(self): - # title self.intro() self.cyclic() self.dihedral() @@ -269,75 +268,115 @@ class Geometric2DSymmetries(Scene): class Geometric3DSymmetries(ThreeDScene): def construct(self): - self.symmetric() - - - @staticmethod - def get_cube(): - verts = np.array(list(it.product(*3 * [[-1, 1]]))) - edges = [ - (v1, v2) - for v1, v2 in it.combinations(verts, 2) - if sum(v1 == v2) == 2 - ] - corner_dots = Group(*[ - Sphere().set_height(0.25).move_to(vert) - for vert in verts - ]) - corner_dots.set_color(GREY_B) - edge_rods = Group(*[ - Line3D(v1, v2) - for v1, v2 in edges - ]) - - faces = Cube(square_resolution=(10, 10)) - faces.set_height(2) - faces.set_color(BLUE_E, 0.3) - # faces.add_updater(lambda m: m.sort(lambda p: np.dot(p, [np.sign(self.euler_angles[0]) * 0.2, -1, 0.2]))) - - cube = Group(corner_dots, edge_rods, faces) - cube.corner_dots = corner_dots - cube.edge_rods = edge_rods - cube.faces = faces - return cube - - def symmetric(self): - self.renderer.camera.light_source.move_to(3*IN) # changes the source of the light - self.set_camera_orientation(phi=60 * DEGREES, theta=5 * DEGREES) - - cube = Cube() - self.play(GrowFromCenter(cube)) - - axes = list( - map(lambda v: v / np.linalg.norm(v), - map(np.array, [ - [0, 0, 1], - [0, 1, 1], - [1, 1, 1], - ]) - )) - angles = [ PI, PI, PI * 2/3 ] - lines = list(map(lambda x: Line(-2 * x, 2 * x), axes)) - - camera_thetas = list(map(lambda x: x * DEGREES, [10, 100, 110])) - for axis, line, angle, camera_angle in zip(axes, lines, angles, camera_thetas): - self.move_camera(theta=camera_angle) - self.play(Create(line)) - self.play(Rotate(cube, angle, axis=axis, run_time=3)) - - self.wait(7) + self.improper_rotation() + def improper_rotation(self): + # changes the source of the light and camera + self.renderer.camera.light_source.move_to(3*IN) + self.set_camera_orientation(phi=0, theta=0) -class AlgebraicSymmetries(Scene): - def construct(self): - # title - title = Tex(r"Algebraische \\ Symmetrien") - title.scale(1.5) - self.play(Write(title)) + # initial square + square = Square() + square.set_fill(PINK, opacity=.5) + + self.play(Create(square)) + self.wait() + + self.play(Rotate(square, PI/2)) + self.wait() + + self.move_camera(phi= 75 * DEGREES, theta = -80 * DEGREES) + + # create sphere from slices + cyclic_slices = [] + for i in range(4): + colors = [PINK, RED] if i % 2 == 0 else [BLUE_D, BLUE_E] + cyclic_slices.append(ParametricSurface( + lambda u, v: np.array([ + np.sqrt(2) * np.cos(u) * np.cos(v), + np.sqrt(2) * np.cos(u) * np.sin(v), + np.sqrt(2) * np.sin(u) + ]), + v_min=PI/4 + PI/2 * i, + v_max=PI/4 + PI/2 * (i + 1), + u_min=-PI/2, u_max=PI/2, + checkerboard_colors=colors, resolution=(10,5))) + + self.play(FadeOut(square), *map(Create, cyclic_slices)) + + axis = Line3D(start=[0,0,-2.5], end=[0,0,2.5]) + + axis_name = MathTex(r"r \in Z_4") + # move to yz plane + axis_name.rotate(PI/2, axis = RIGHT) + axis_name.next_to(axis, OUT) + + self.play(Create(axis)) + self.play(Write(axis_name)) + self.wait() + + cyclic_sphere = VGroup(*cyclic_slices) + self.play(Rotate(cyclic_sphere, PI/2)) self.wait() - self.play(FadeOut(title)) + + # reflection plane + self.play(FadeOut(cyclic_sphere), FadeIn(square)) + plane = ParametricSurface( + lambda u, v: np.array([u, 0, v]), + u_min = -2, u_max = 2, + v_min = -2, v_max = 2, + fill_opacity=.3, resolution=(1,1)) + + plane_name = MathTex(r"\sigma \in D_4") + # move to yz plane + plane_name.rotate(PI/2, axis = RIGHT) + plane_name.next_to(plane, OUT + RIGHT) + + self.play(Create(plane)) + self.play(Write(plane_name)) self.wait() + self.move_camera(phi = 25 * DEGREES, theta = -75 * DEGREES) + + self.play(Rotate(square, PI/2)) + self.play(Rotate(square, PI, RIGHT)) + + self.play(Rotate(square, PI/2)) + self.play(Rotate(square, PI, RIGHT)) + + self.move_camera(phi = 75 * DEGREES, theta = -80 * DEGREES) + + # create sphere from slices + dihedral_slices = [] + for i in range(4): + for j in range(2): + colors = [PINK, RED] if i % 2 == 0 else [BLUE_D, BLUE_E] + dihedral_slices.append(ParametricSurface( + lambda u, v: np.array([ + np.sqrt(2) * np.cos(u) * np.cos(v), + np.sqrt(2) * np.cos(u) * np.sin(v), + np.sqrt(2) * np.sin(u) + ]), + v_min=PI/2 * j + PI/4 + PI/2 * i, + v_max=PI/2 * j + PI/4 + PI/2 * (i + 1), + u_min=-PI/2 if j == 0 else 0, + u_max=0 if j == 0 else PI/2, + checkerboard_colors=colors, resolution=(10,5))) + + dihedral_sphere = VGroup(*dihedral_slices) + + self.play(FadeOut(square), Create(dihedral_sphere)) + + self.play(Rotate(dihedral_sphere, PI/2)) + self.play(Rotate(dihedral_sphere, PI, RIGHT)) + + self.play(Rotate(dihedral_sphere, PI/2)) + self.play(Rotate(dihedral_sphere, PI, RIGHT)) + + self.wait(5) + +class AlgebraicSymmetries(Scene): + def construct(self): self.cyclic() self.matrices() @@ -349,7 +388,7 @@ class AlgebraicSymmetries(Scene): r"-1 \cdot i &= -i \\", r"-i \cdot i &= 1") product.scale(1.5) - + for part in product: self.play(Write(part)) -- cgit v1.2.1 From 6eed506199b5ff21b58af9f8db6477d5af56aa0b Mon Sep 17 00:00:00 2001 From: tim30b Date: Mon, 3 May 2021 18:45:24 +0200 Subject: Write Intro --- vorlesungen/punktgruppen/script.pdf | Bin 25619 -> 31145 bytes vorlesungen/punktgruppen/script.tex | 12 +++++++++++- vorlesungen/punktgruppen/slides.pdf | Bin 25325 -> 25333 bytes vorlesungen/punktgruppen/slides.tex | 4 ++-- 4 files changed, 13 insertions(+), 3 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index a701d6a..127d877 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index fe095fb..c4c4e94 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -7,8 +7,18 @@ \newenvironment{totranslate}{\color{blue!70!black}}{} \begin{document} +\section{hello} +(TT) Willkommen zu unserer Präsentation über Punktgruppen und deren Anwendung in der Kristallographie. +Ich bin Tim Tönz habe vor dem Studium die Lehre als Elektroinstallateur abgeschlossen und studiere jetzt Elektrotechnik im Vierten Semester mit Herrn Naoki Pross. +(NP)Das bin ich\ldots \ldots Nun zum Inhalt + +\section{Introtim} +Wir möchten Euch zeigen, was eine Punktgruppe ausmacht, an bespielen zeigen, wie sie im 2D und 3D Raum aussehen kann und Zusammenhänge zu Algebraischen Symmetrien erläutern. +Mit dem Wissen über Punktgruppen können wir uns versuchen der Praxis anzunähern, in unserem Fall dem Kristall und seiner Strukturellen Eigenschaften. +Als Abschluss Zeigen wir euch konkret wieso ein inversionszentrum ein Piezoelektrisches verhalten in einem Kristall ausschliesst. + +\section{intro} -\section{Intro} \section{Geometrie} \begin{totranslate} diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 090a661..8a2ee54 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 2199b26..1c1b1d8 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -45,7 +45,7 @@ \AtBeginSection{\frame{\sectionpage}} % Metadata -\title{\LARGE \scshape Punktgruppen und Kristallen} +\title{\LARGE \scshape Punktgruppen und Kristalle} \author[N. Pross, T. T\"onz]{Naoki Pross, Tim T\"onz} \institute{Hochschule f\"ur Technik OST, Rapperswil} \date{10. Mai 2021} @@ -117,7 +117,7 @@ \end{columns} } -\section{Kristallen} +\section{Kristalle} \section{Anwendungen} -- cgit v1.2.1 From 1d617927bf8f83d633e61b064e7433d3a5b36f51 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 3 May 2021 20:10:39 +0200 Subject: Fix makefile --- vorlesungen/punktgruppen/Makefile | 12 ++++-------- vorlesungen/punktgruppen/script.pdf | Bin 31145 -> 31136 bytes vorlesungen/punktgruppen/slides.pdf | Bin 25333 -> 25800 bytes 3 files changed, 4 insertions(+), 8 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/Makefile b/vorlesungen/punktgruppen/Makefile index c155b04..d685652 100644 --- a/vorlesungen/punktgruppen/Makefile +++ b/vorlesungen/punktgruppen/Makefile @@ -8,15 +8,11 @@ clean: @rm -rfv build # @rm -rfv media -slides.pdf: slides.tex +%.pdf: %.tex mkdir -p build - $(TEX) $(TEXARGS) slides.tex - cp build/slides.pdf . - -script.pdf: script.tex - mkdir -p build - $(TEX) $(TEXARGS) script.tex - cp build/script.pdf . + $(TEX) $(TEXARGS) $< + $(TEX) $(TEXARGS) $< + cp build/$@ . media: poetry install diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index 127d877..6b17967 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 8a2ee54..66c44e8 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ -- cgit v1.2.1 From 28d897afbf98b5988a25a9067984e4cc165e0fcc Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 3 May 2021 23:09:27 +0200 Subject: Use schoenflies notation --- vorlesungen/punktgruppen/crystals.py | 72 +++++++++++++++++++----------------- 1 file changed, 38 insertions(+), 34 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index cbae3d0..7eef9b8 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -130,7 +130,7 @@ class Geometric2DSymmetries(Scene): self.wait() cyclic = MathTex( - r"Z_n = \langle r \rangle" + r"C_n = \langle r \rangle" r"= \left\{\mathbb{1}, r, r^2, \dots, r^{n-1} \right\}") cyclic_title = Tex(r"Zyklische Gruppe") @@ -237,7 +237,7 @@ class Geometric2DSymmetries(Scene): dot.move_to(2 * RIGHT) figure = VGroup(circle, dot) - group_name = MathTex(r"S^1") + group_name = MathTex(r"C_\infty") # create circle self.play(Create(circle)) @@ -252,7 +252,7 @@ class Geometric2DSymmetries(Scene): self.play(Rotate(figure, PI/4), Write(group_name)) self.play(Uncreate(figure)) - nsphere = MathTex(r"S^1 = \left\{z \in \mathbb{C} : |z| = 1\right\}") + nsphere = MathTex(r"C_\infty \cong S^1 = \left\{z \in \mathbb{C} : |z| = 1\right\}") nsphere_title = Tex(r"Kreisgruppe") nsphere_title.next_to(nsphere, 2 * UP) @@ -269,6 +269,7 @@ class Geometric2DSymmetries(Scene): class Geometric3DSymmetries(ThreeDScene): def construct(self): self.improper_rotation() + self.icosahedron() def improper_rotation(self): # changes the source of the light and camera @@ -279,11 +280,12 @@ class Geometric3DSymmetries(ThreeDScene): square = Square() square.set_fill(PINK, opacity=.5) - self.play(Create(square)) - self.wait() + self.play(SpinInFromNothing(square)) + self.wait(2) - self.play(Rotate(square, PI/2)) - self.wait() + for i in range(4): + self.play(Rotate(square, PI/2)) + self.wait(.5) self.move_camera(phi= 75 * DEGREES, theta = -80 * DEGREES) @@ -306,7 +308,7 @@ class Geometric3DSymmetries(ThreeDScene): axis = Line3D(start=[0,0,-2.5], end=[0,0,2.5]) - axis_name = MathTex(r"r \in Z_4") + axis_name = MathTex(r"r \in C_4") # move to yz plane axis_name.rotate(PI/2, axis = RIGHT) axis_name.next_to(axis, OUT) @@ -316,8 +318,9 @@ class Geometric3DSymmetries(ThreeDScene): self.wait() cyclic_sphere = VGroup(*cyclic_slices) - self.play(Rotate(cyclic_sphere, PI/2)) - self.wait() + for i in range(4): + self.play(Rotate(cyclic_sphere, PI/2)) + self.wait() # reflection plane self.play(FadeOut(cyclic_sphere), FadeIn(square)) @@ -367,18 +370,21 @@ class Geometric3DSymmetries(ThreeDScene): self.play(FadeOut(square), Create(dihedral_sphere)) - self.play(Rotate(dihedral_sphere, PI/2)) - self.play(Rotate(dihedral_sphere, PI, RIGHT)) - - self.play(Rotate(dihedral_sphere, PI/2)) - self.play(Rotate(dihedral_sphere, PI, RIGHT)) + for i in range(2): + self.play(Rotate(dihedral_sphere, PI/2)) + self.play(Rotate(dihedral_sphere, PI, RIGHT)) + self.wait() self.wait(5) + def icosahedron(self): + pass + + class AlgebraicSymmetries(Scene): def construct(self): self.cyclic() - self.matrices() + # self.matrices() def cyclic(self): # show the i product @@ -391,30 +397,31 @@ class AlgebraicSymmetries(Scene): for part in product: self.play(Write(part)) + self.wait() - self.wait() self.play(ApplyMethod(product.scale, 1/1.5)) # gather in group group = MathTex(r"G = \left\{ 1, i, -1, -i \right\}") self.play(ReplacementTransform(product, group)) - self.wait() + self.wait(2) # show Z4 grouppow = MathTex( r"G &= \left\{ 1, i, i^2, i^3 \right\} \\", - r"Z_4 &= \left\{ \mathbb{1}, r, r^2, r^3 \right\}") + r"C_4 &= \left\{ \mathbb{1}, r, r^2, r^3 \right\}") self.play(ReplacementTransform(group, grouppow[0])) - self.wait() + self.wait(2) self.play(Write(grouppow[1])) self.wait() self.play(ApplyMethod(grouppow.to_edge, UP)) # define morphisms - morphism = MathTex(r"\phi: Z_4 \to G \\") + morphism = MathTex(r"\phi: C_4 \to G \\") morphism.shift(UP) self.play(Write(morphism)) + self.wait() # show an example mappings = MathTex( @@ -425,34 +432,34 @@ class AlgebraicSymmetries(Scene): mappings.next_to(morphism, DOWN) self.play(Write(mappings)) - self.wait() + self.wait(3) self.play(FadeOutAndShift(mappings, DOWN)) # more general definition homomorphism = MathTex( - r"\phi(r\circ \mathbb{1}) &= i\cdot 1 \\", - r"&= \phi(r)\cdot\phi(\mathbb{1})") + r"\phi(r\circ \mathbb{1}) &= \phi(r)\cdot\phi(\mathbb{1}) \\", + r"&= i\cdot 1") homomorphism.next_to(morphism, DOWN).align_to(morphism, LEFT) for part in homomorphism: self.play(Write(part)) + self.wait() hom_bracegrp = VGroup(morphism, homomorphism) self.play( - ApplyMethod(grouppow.shift, 2.5 * LEFT), - ApplyMethod(hom_bracegrp.shift, 2.5 * LEFT)) + ApplyMethod(grouppow.shift, 3 * LEFT), + ApplyMethod(hom_bracegrp.shift, 3 * LEFT)) hom_brace = Brace(hom_bracegrp, direction=RIGHT) hom_text = Tex("Homomorphismus").next_to(hom_brace.get_tip(), RIGHT) - hom_text_short = MathTex(r"\mathrm{Hom}(G, Z_4)").next_to(hom_brace.get_tip(), RIGHT) + hom_text_short = MathTex(r"\mathrm{Hom}(C_4, G)").next_to(hom_brace.get_tip(), RIGHT) self.play(Create(hom_brace)) self.play(Write(hom_text)) + self.wait() self.play(ReplacementTransform(hom_text, hom_text_short)) self.wait() - # self.play(FadeOut(hom_brace), FadeOut(hom_text_short)) - # add the isomorphism part isomorphism = Tex(r"\(\phi\) ist bijektiv") isomorphism.next_to(homomorphism, DOWN).align_to(homomorphism, LEFT) @@ -462,7 +469,7 @@ class AlgebraicSymmetries(Scene): iso_brace = Brace(iso_bracegrp, RIGHT) iso_text = Tex("Isomorphismus").next_to(iso_brace.get_tip(), RIGHT) - iso_text_short = MathTex("Z_4 \cong G").next_to(iso_brace.get_tip(), RIGHT) + iso_text_short = MathTex("C_4 \cong G").next_to(iso_brace.get_tip(), RIGHT) self.play( ReplacementTransform(hom_brace, iso_brace), @@ -478,9 +485,6 @@ class AlgebraicSymmetries(Scene): self.play( ApplyMethod(grouppow.to_edge, LEFT), ApplyMethod(morphgrp.to_edge, LEFT)) - # self.play( - # FadeOutAndShift(grouppow, UP), - # FadeOutAndShift(morphgrp, DOWN)) # draw a complex plane plane = ComplexPlane(x_min = -2, x_max = 3) @@ -523,7 +527,7 @@ class AlgebraicSymmetries(Scene): FadeOutAndShift(morphgrp, RIGHT)) modulo = MathTex( - r"\phi: Z_4 &\to (\mathbb{Z}/4\mathbb{Z}, +) \\" + r"\phi: C_4 &\to (\mathbb{Z}/4\mathbb{Z}, +) \\" r"\phi(\mathbb{1} \circ r^2) &= 0 + 2 \pmod 4").scale(1.5) self.play(Write(modulo)) self.wait(2) -- cgit v1.2.1 From 2de3a8ffcfb661abfde05cf3611ad08d5a1160fc Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 4 May 2021 20:08:33 +0200 Subject: Create slides for applications --- vorlesungen/punktgruppen/slides.pdf | Bin 25800 -> 32512 bytes vorlesungen/punktgruppen/slides.tex | 202 ++++++++++++++++++++++++++++-------- 2 files changed, 160 insertions(+), 42 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 66c44e8..d732296 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 1c1b1d8..380dcec 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -4,6 +4,10 @@ \usepackage{polyglossia} \setmainlanguage{german} +% pretty drawings +\usepackage{tikz} +\usetikzlibrary{positioning} + % Theme \beamertemplatenavigationsymbolsempty @@ -44,6 +48,9 @@ } \AtBeginSection{\frame{\sectionpage}} +% Macros +\newcommand{\ten}[1]{#1} + % Metadata \title{\LARGE \scshape Punktgruppen und Kristalle} \author[N. Pross, T. T\"onz]{Naoki Pross, Tim T\"onz} @@ -66,59 +73,170 @@ %% Made in video \section{Algebraische Symmetrien} +%% Made in video + +\section{Kristalle} + +\section{Anwendungen} +\begin{frame}[fragile]{} + \centering + \begin{tikzpicture}[ + box/.style = { + rectangle, thick, draw = white, fill = darkgray!50!background, + minimum height = 1cm, outer sep = 2mm, + }, + ] + + \matrix [nodes = {box, align = center}, column sep = 1cm, row sep = 1.5cm] { + & \node (A) {32 Punktgruppe}; \\ + \node (B) {11 Mit\\ Inversionszentrum}; & \node (C) {21 Ohne\\ Inversionszentrum}; \\ + & \node[fill=red!20!background] (D) {20 Piezoelektrisch}; & \node (E) {1 Nicht\\ piezoelektrisch}; \\ + }; + + \draw[thick, ->] (A.west) to[out=180, in=90] (B.north); + \draw[thick, ->] (A.south) to (C); + \draw[thick, ->] (C.south) to (D.north); + \draw[thick, ->] (C.east) to[out=0, in=90] (E.north); + \end{tikzpicture} +\end{frame} + +\begin{frame}[fragile]{} + \begin{tikzpicture}[ + overlay, xshift = 1.5cm, yshift = 1.5cm, + node distance = 2mm, + charge/.style = { + circle, draw = white, thick, + minimum size = 5mm + }, + positive/.style = { fill = red!50 }, + negative/.style = { fill = blue!50 }, + ] + + \node[font = {\large\bfseries}, align = center] (title) at (6,0) {Mit und Ohne\\ Symmetriezentrum}; + \node[below = of title] {Polarisation Feld \(\vec{E}_p\)}; + + \begin{scope} + \matrix[nodes = { charge }, row sep = 8mm, column sep = 8mm] { + \node[positive] {}; & \node[negative] (N) {}; & \node [positive] {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] {}; & \node[negative] (S) {}; & \node [positive] {}; \\ + }; + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{scope} + + \begin{scope}[yshift=-4.5cm] + \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { + \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] (SW) {}; & \node[negative] (S) {}; & \node [positive] (SE) {}; \\ + }; + + \foreach \d in {NW, N, NE} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {SW, S, SE} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); + \end{scope} + + \begin{scope}[xshift=11cm] + \foreach \x/\t [count=\i] in {60/positive, 120/negative, 180/positive, 240/negative, 300/positive, 360/negative} { + \node[charge, \t] (C\i) at (\x:1.5cm) {}; + } + + \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + \end{scope} + + \begin{scope}[xshift=6cm, yshift=-4.5cm] + \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; + + \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \foreach \d in {C1, C2} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {C4, C5} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \node[white] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[blue!50, right = of E] {\(-\)}; + \node[red!50, left = of E] {\(+\)}; + \end{scope} + \end{scope} + + \begin{scope}[xshift=11cm, yshift=-4.5cm] + \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; + + \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + + \draw[orange, very thick, <-] (C6) to ++(.7,0); + \draw[orange, very thick, <-] (C3) to ++(-.7,0); + + \node[white] (E) {\(\vec{E}_p\)}; + \begin{scope}[node distance = .5mm] + \node[blue!50, right = of E] {\(-\)}; + \node[red!50, left = of E] {\(+\)}; + \end{scope} + \end{scope} + \end{tikzpicture} +\end{frame} + \frame{ - \begin{columns} - \begin{column}{.3\textwidth} - Produkt mit \(i\) + \begin{columns}[T] + \begin{column}{.5\textwidth} + Symmetriegruppe und Darstellung \begin{align*} - 1 \cdot i &= i \\ - i \cdot i &= -1 \\ - -1 \cdot i &= -i \\ - -i \cdot i &= 1 + G &= \left\{\mathbb{1}, r, \sigma, \dots \right\} \\ + &\Phi : G \to O(n) \end{align*} - \pause - % - Gruppe \begin{align*} - G &= \left\{ - 1, i, -1, -i - \right\} \\ - &= \left\{ - 1, i, i^2, i^3 - \right\} \\ - Z_4 &= \left\{ - \mathbb{1}, r, r^2, r^3 - \right\} + U_\lambda &= \left\{ v : \Phi v = \lambda v \right\} \\ + &= \mathrm{null}\left(\Phi - \lambda I\right) \end{align*} - \pause - % + Helmholtz Wellengleichung + \[ + \nabla^2 \vec{E} = \ten{\varepsilon}\mu + \frac{\partial^2}{\partial t^2} \vec{E} + \] \end{column} \begin{column}{.5\textwidth} - % - Darstellung + Ebene Welle \[ - \phi : Z_4 \to G + \vec{E} = \vec{E}_0 \exp\left[i + \left(\vec{k}\cdot\vec{r} - \omega t \right)\right] + \] + Anisotropisch Dielektrikum + \[ + \ten{R}\ten{\varepsilon}\vec{E} = \frac{\omega^2}{\mu k^2} \vec{E} + \] + \[ + \vec{E} \in U_\lambda \implies (\ten{R}\ten{\varepsilon}) \vec{E} = \lambda \vec{E} + \] + \"Ahenlich auch in der Mechanik + \[ + \vec{F} = \kappa \vec{x} \quad \text{(Hooke)} \] - \begin{align*} - \phi(\mathbb{1}) &= 1 & \phi(r^2) &= i^2 \\ - \phi(r) &= i & \phi(r^3) &= i^3 - \end{align*} - \pause - % - Homomorphismus - \begin{align*} - \phi(r \circ \mathbb{1}) &= \phi(r) \cdot \phi(\mathbb{1}) \\ - &= i \cdot 1 - \end{align*} - \pause - % - \(\phi\) ist bijektiv \(\implies Z_4 \cong G\) \end{column} \end{columns} } -\section{Kristalle} - -\section{Anwendungen} - \end{document} -- cgit v1.2.1 From 5d2f685df7b2d7691625937609cf92be9fc8c9da Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Tue, 4 May 2021 20:36:41 +0200 Subject: Create intro slide --- vorlesungen/punktgruppen/slides.pdf | Bin 32512 -> 36038 bytes vorlesungen/punktgruppen/slides.tex | 79 +++++++++++++++++++++++++++++++++--- 2 files changed, 73 insertions(+), 6 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index d732296..bd7afc9 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 380dcec..25761c0 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -7,6 +7,7 @@ % pretty drawings \usepackage{tikz} \usetikzlibrary{positioning} +\usetikzlibrary{arrows.meta} % Theme \beamertemplatenavigationsymbolsempty @@ -64,17 +65,82 @@ \section{Einleitung} \frame{ - \[ - \psi - \] + \begin{itemize} + \item Was heisst \emph{Symmetrie} in der Mathematik? + \item Wie kann ein Kristall modelliert werden? + \item Aus der Physik: Piezoelektrizit\"at + \end{itemize} + \begin{center} + \begin{tikzpicture} + \begin{scope}[ + node distance = 0cm + ] + \node[ + rectangle, fill = gray!40!background, + minimum width = 3cm, minimum height = 2cm, + ] (body) {\(\vec{E}_p = \vec{0}\)}; + + \node[ + draw, rectangle, thick, white, fill = red!50, + minimum width = 3cm, minimum height = 1mm, + above = of body + ] (pos) {}; + + \node[ + draw, rectangle, thick, white, fill = blue!50, + minimum width = 3cm, minimum height = 1mm, + below = of body + ] (neg) {}; + + \draw[white, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; + \draw[white, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; + + \draw[white, thick, ->] (p) to[out = -80, in = 80] node[midway, right] {\(U = 0\)} (n); + \end{scope} + \begin{scope}[ + node distance = 0cm, + xshift = 7cm + ] + \node[ + rectangle, fill = gray!40!background, + minimum width = 3cm, minimum height = 1.5cm, + ] (body) {\(\vec{E}_p = \vec{0}\)}; + + \node[ + draw, rectangle, thick, white, fill = red!50, + minimum width = 3cm, minimum height = 1mm, + above = of body + ] (pos) {}; + + \node[ + draw, rectangle, thick, white, fill = blue!50, + minimum width = 3cm, minimum height = 1mm, + below = of body + ] (neg) {}; + + \draw[orange, very thick, <-] (pos.north) to node[near end, right] {\(\vec{F}\)} ++(0,1); + \draw[orange, very thick, <-] (neg.south) to node[near end, right] {\(\vec{F}\)} ++(0,-1); + + \draw[white, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; + \draw[white, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; + + \draw[white, thick, ->] (p) to[out = -80, in = 80] node[midway, right] {\(U \neq 0\)} (n); + \end{scope} + \end{tikzpicture} + \end{center} } -\section{Geometrische Symmetrien} +\section{2D Symmetrien} %% Made in video \section{Algebraische Symmetrien} %% Made in video +\section{3D Symmetrien} +%% Made in video + +\section{Matrizen} + \section{Kristalle} \section{Anwendungen} @@ -201,6 +267,7 @@ \end{frame} \frame{ + \frametitle{Licht in Kristallen} \begin{columns}[T] \begin{column}{.5\textwidth} Symmetriegruppe und Darstellung @@ -226,10 +293,10 @@ \] Anisotropisch Dielektrikum \[ - \ten{R}\ten{\varepsilon}\vec{E} = \frac{\omega^2}{\mu k^2} \vec{E} + (\ten{K}\ten{\varepsilon})\vec{E} = \frac{\omega^2}{\mu k^2} \vec{E} \] \[ - \vec{E} \in U_\lambda \implies (\ten{R}\ten{\varepsilon}) \vec{E} = \lambda \vec{E} + \vec{E} \in U_\lambda \implies (\ten{K}\ten{\varepsilon}) \vec{E} = \lambda \vec{E} \] \"Ahenlich auch in der Mechanik \[ -- cgit v1.2.1 From 71aa1f502c62c877df738c496199413b631e7606 Mon Sep 17 00:00:00 2001 From: tim30b Date: Wed, 5 May 2021 13:01:22 +0200 Subject: write intro and matrizen --- vorlesungen/punktgruppen/script.tex | 49 ++++++++++++++++++++++++++++--------- 1 file changed, 37 insertions(+), 12 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index c4c4e94..0ea0aed 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -7,19 +7,25 @@ \newenvironment{totranslate}{\color{blue!70!black}}{} \begin{document} -\section{hello} -(TT) Willkommen zu unserer Präsentation über Punktgruppen und deren Anwendung in der Kristallographie. -Ich bin Tim Tönz habe vor dem Studium die Lehre als Elektroinstallateur abgeschlossen und studiere jetzt Elektrotechnik im Vierten Semester mit Herrn Naoki Pross. -(NP)Das bin ich\ldots \ldots Nun zum Inhalt - -\section{Introtim} -Wir möchten Euch zeigen, was eine Punktgruppe ausmacht, an bespielen zeigen, wie sie im 2D und 3D Raum aussehen kann und Zusammenhänge zu Algebraischen Symmetrien erläutern. -Mit dem Wissen über Punktgruppen können wir uns versuchen der Praxis anzunähern, in unserem Fall dem Kristall und seiner Strukturellen Eigenschaften. -Als Abschluss Zeigen wir euch konkret wieso ein inversionszentrum ein Piezoelektrisches verhalten in einem Kristall ausschliesst. +\section{das Sind wir} + (TT) Willkommen zu unserer Präsentation über Punktgruppen und deren Anwendung in der Kristallographie. + Ich bin Tim Tönz habe vor dem Studium die Lehre als Elektroinstallateur abgeschlossen und studiere jetzt Elektrotechnik im Vierten Semester mit Herrn Naoki Pross. + (NP)Das bin ich \ldots Nun zum Inhalt + +\section{Ablauf} + Wir möchten Euch zeigen, was eine Punktgruppe ausmacht, Konkret an Bespielen in 2D zeigen mit Gemainsamkeiten zu Algebraischen Symmetrien. + Da wir Menschen jedoch 3 Räumliche Dimensionen Wahrnehmen möchten wir euch die 3D Symetrien natürlcih nicht vorenthalten. + Um dem Thema des Mathematikseminars gerecht zu werden, Werden wir die einfache Verbindung zwischen Matrizen und Punktsymetrien zeigen. + Dammit die Praxis nicht ganz vergessen geht, Kristalle Mathematisch beschreiben und dessen Limitationen in hinsicht Symmetrien. + Als Abschluss Zeigen wir euch einen zusammenhan zwischen Piezoelektrizität und Symmetrien. \section{intro} - - + Ich hoffe wir konnten schon mit der Einleitung ein wenig Neugirde wecken. + fals dies noch nicht der Fall ist, sind hier noch die wichtigsten fragen, welche wir euch beantworten wollen, oder zumindest überzeugen, wieso dies spannende Fragen sind. + Als erstes, was eine Symetrie ist oder in unserem Fall eine Punktsymetrie. + Was macht ein Kristall aus, also wie kann man seine Wichtigsten eigenschaften mathematisch beschreiben. + Als letztes noch zu der Piezoelektrizität, welche ein Effekt beschreibt, dass bestimmte Krisstalle eine elektrische Spannung erzeugen, wenn sie unter mechanischen Druck gesetzt werden. + welche kristalle diese fähigkeit haben, hat ganz konkret mit ihrer Symmetrie zu tun. \section{Geometrie} \begin{totranslate} We'll start with geometric symmetries as they are the simplest to grasp. @@ -71,7 +77,26 @@ Let's now move into something seemingly unrelated: \emph{algebra}. \scene{Complex numbers and cyclic groups} \end{totranslate} -\section{Krystalle} +\scene{Matrizen} + Das man mit matrizen so einiges darstellen kann ist keine neuigkeit mehr nach einem halben Semester Matheseminar. + Also überrascht es wohl auch keinen, das mann alle punktsymetrischen Operationen auch mit Matrizen Formulieren kann. + (Beispiel zu Rotation mit video) + Für die Spiegelung wie auch eine Punkt inversion habt ihr dank dem matheseminar bestmmt schon eine Idee wie diese Operationen als Matrizen aussehen. + Ich weis nicht obe der Tipp etwas nützt, aber ih müsst nur in der Gruppe O(3) suchen. + Was auch sinn macht, denn die Gruppe O(3) zeichnet sich aus weil ihre Matrizen distanzen konstant hallten wie auch einen fixpunkt haben was sehr erwünscht ist, wenn man Punktsymmetrien beschreiben will. + + + +\scene{Krystalle} + Jenen welchen die Kristalle bis jetzt ein wenig zu kurz gekommen sind, Freuen sich hoffentlich zurecht an dieser Folie. + Es geht ab jetzt nähmlich um Kristalle. + Bevor wir mit ihnen arbeiten könne sollten wir jedoch klähren, was ein Kristall ist. + Per definition aus eienm Anerkanten Theoriebuch von XXXXXXXXXX Zitat:"YYYYYYYYYYYYYYY" + Was so viel heist wie, ein Idealer Kristall ist der schlimmste Ort um sich zu verlaufen. + Macht man nähmlich einen Schritt in genau in das nächste lattice feld hat siet der kristall wieser genau gleich aus. + Als Orentierungshilfe ist diese eigenschaft ein grosser Nachteil nicht jedoch wenn man versucht alle möglichen Symmetrien in einem Kristall zu finden. + Denn die Lattice Strucktur schränkt die unendlichen möglichen Punktsymmetrien im 3D Raum beträchtlich ein. + Was im Englischen bekannt is unter dem Crystallographic Restrictiontheorem. \end{document} % vim:et ts=2 sw=2: -- cgit v1.2.1 From 714f0685c47dfa46775859024936b22f610619c9 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 5 May 2021 13:03:09 +0200 Subject: Create crystal slides --- vorlesungen/punktgruppen/slides.pdf | Bin 36038 -> 50470 bytes vorlesungen/punktgruppen/slides.tex | 115 +++++++++++++++++++++++++++++++++++- 2 files changed, 112 insertions(+), 3 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index bd7afc9..0851fd8 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 25761c0..e800a87 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -8,6 +8,7 @@ \usepackage{tikz} \usetikzlibrary{positioning} \usetikzlibrary{arrows.meta} +\usetikzlibrary{calc} % Theme \beamertemplatenavigationsymbolsempty @@ -95,7 +96,7 @@ \draw[white, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; \draw[white, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; - \draw[white, thick, ->] (p) to[out = -80, in = 80] node[midway, right] {\(U = 0\)} (n); + \draw[white, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U = 0\)} (n); \end{scope} \begin{scope}[ node distance = 0cm, @@ -124,7 +125,7 @@ \draw[white, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; \draw[white, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; - \draw[white, thick, ->] (p) to[out = -80, in = 80] node[midway, right] {\(U \neq 0\)} (n); + \draw[white, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U \neq 0\)} (n); \end{scope} \end{tikzpicture} \end{center} @@ -142,6 +143,114 @@ \section{Matrizen} \section{Kristalle} +\begin{frame}[fragile]{} + \begin{columns}[T] + \begin{column}{.5\textwidth} + Kristallgitter: + \(n_i \in \mathbb{Z}\), + \(\vec{a}_i \in \mathbb{R}^3\) + \[ + \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 + n_3 \vec{a}_3 + \] + \begin{center} + \begin{tikzpicture}[ + dot/.style = { + draw, circle, thick, white, fill = gray!40!background, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, + ] + + \begin{scope} + \clip (-1,-1) rectangle (4,3); + \foreach \y in {-5,-4,...,5} { + \foreach \x in {-5,-4,...,5} { + \node[dot, xshift=3mm*\y] (N\x\y) at (\x, \y) {}; + } + } + \end{scope} + + \draw[white, thick] (-1, -1) rectangle (4,3); + + \draw[red!80!background, thick, ->] (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); + \draw[cyan!80!background, thick, ->] (N00) to node[midway, left] {\(\vec{a}_2\)} (N01); + + \end{tikzpicture} + \end{center} + Invariant (symmetrisch) unten Translation + \[ + Q_i(\vec{r}) = \vec{r} + \vec{a}_i + \] + \end{column} + \begin{column}{.5\textwidth} + Wie kombiniert sich \(Q_i\) mit der anderen Symmetrien? + \begin{center} + \begin{tikzpicture}[ + dot/.style = { + draw, circle, thick, white, fill = gray!40!background, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, + ] + + \node[dot] (A1) at (0,0) {}; + \node[below left] at (A1) {\(A\)}; + + \node[dot] (A2) at (2.5,0) {}; + \node[below right] at (A2) {\(A'\)}; + + \draw[red!80!background, thick, ->] + (A1) to node[midway, below] {\(\vec{Q}\)} (A2); + + \node[dot] (B1) at (120:2.5) {}; + \node[above left] at (B1) {\(B\)}; + + \draw[green!70!background, thick, ->] + (A1) ++(.5,0) arc (0:120:.5) node[midway, above, xshift=1mm] {\(C_n\)}; + \draw[red!80!background, dashed, thick, ->] (A1) to (B1); + + + \node[dot] (B2) at ($(A2)+(60:2.5)$) {}; + \node[above right] at (B2) {\(B'\)}; + + \draw[green!70!background, thick, dashed, ->] (A2) ++(-.5,0) arc (180:60:.5); + \draw[red!80!background, dashed, thick, ->] (A2) to (B2); + + \draw[yellow!80!background, thick, ->] (B1) to node[above, midway] {\(\vec{Q}'\)} (B2); + + \draw[gray, dashed, thick] (A1) to (A1 |- B1) node (X) {}; + \draw[gray, dashed, thick] (A2) to (A2 |- B2); + + \node[above left, xshift=-2mm] at (X) {\(x\)}; + \end{tikzpicture} + \end{center} + Sei \(q = |\vec{Q}|\), \(\alpha = 2\pi/n\) und \(n \in \mathbb{N}\) + \begin{align*} + q' = n q &= q + 2x \\ + nq &= q + 2q\sin(\alpha - \pi/2) \\ + n &= 1 - 2\cos\alpha + \end{align*} + \end{column} + \end{columns} +\end{frame} + +\frame{ + \begin{columns}[T] + \begin{column}{.5\textwidth} + Somit muss + \[ + \alpha = \cos^{-1}\left(\frac{m-1}{2}\right) + \] + \begin{gather*} + \alpha \in \left\{ 0, 60^\circ, 90^\circ, 120^\circ, 180^\circ \right\} + \end{gather*} + \end{column} + \begin{column}{.5\textwidth} + \end{column} + \end{columns} +} \section{Anwendungen} \begin{frame}[fragile]{} @@ -154,7 +263,7 @@ ] \matrix [nodes = {box, align = center}, column sep = 1cm, row sep = 1.5cm] { - & \node (A) {32 Punktgruppe}; \\ + & \node (A) {32 Punktgruppen}; \\ \node (B) {11 Mit\\ Inversionszentrum}; & \node (C) {21 Ohne\\ Inversionszentrum}; \\ & \node[fill=red!20!background] (D) {20 Piezoelektrisch}; & \node (E) {1 Nicht\\ piezoelektrisch}; \\ }; -- cgit v1.2.1 From cbcb1b7f273875a0faf6ffa3d4daf7de7d6e0490 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 5 May 2021 14:57:07 +0200 Subject: Add slides for matrices --- vorlesungen/punktgruppen/slides.pdf | Bin 50470 -> 52627 bytes vorlesungen/punktgruppen/slides.tex | 55 ++++++++++++++++++++++++++++++------ 2 files changed, 47 insertions(+), 8 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 0851fd8..199498c 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index e800a87..54798f1 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -141,6 +141,44 @@ %% Made in video \section{Matrizen} +\frame{ + \begin{columns}[T] + \begin{column}{.5\textwidth} + Symmetriegruppe + \[ + G = \left\{\mathbb{1}, r, \sigma, \dots \right\} + \] + Matrixdarstellung + \begin{align*} + \Phi : G &\to O(3) \\ + g &\mapsto \Phi_g + \end{align*} + Orthogonale Gruppe + \[ + O(n) = \left\{ Q \in \mathrm{GL}_n(\mathbb{R}) : QQ^t = Q^tQ = I \right\} + \] + \end{column} + \begin{column}{.5\textwidth} + \begin{align*} + \Phi_\mathbb{1} &= \begin{pmatrix} + 1 & 0 & 0 \\ + 0 & 1 & 0 \\ + 0 & 0 & 1 + \end{pmatrix} = I \\[1em] + \Phi_\sigma &= \begin{pmatrix} + 1 & 0 & 0 \\ + 0 & -1 & 0 \\ + 0 & 0 & 1 + \end{pmatrix} \\[1em] + \Phi_r &= \begin{pmatrix} + \cos \alpha & -\sin \alpha & 0 \\ + \sin \alpha & \cos \alpha & 0 \\ + 0 & 0 & 1 \\[1em] + \end{pmatrix} + \end{align*} + \end{column} + \end{columns} +} \section{Kristalle} \begin{frame}[fragile]{} @@ -178,11 +216,19 @@ \end{tikzpicture} \end{center} + \end{column} + \begin{column}{.5\textwidth} Invariant (symmetrisch) unten Translation \[ Q_i(\vec{r}) = \vec{r} + \vec{a}_i \] + M\"ogliche Kristallstrukturen \end{column} + \end{columns} +\end{frame} + +\begin{frame}[fragile]{} + \begin{columns}[T] \begin{column}{.5\textwidth} Wie kombiniert sich \(Q_i\) mit der anderen Symmetrien? \begin{center} @@ -233,11 +279,6 @@ n &= 1 - 2\cos\alpha \end{align*} \end{column} - \end{columns} -\end{frame} - -\frame{ - \begin{columns}[T] \begin{column}{.5\textwidth} Somit muss \[ @@ -247,10 +288,8 @@ \alpha \in \left\{ 0, 60^\circ, 90^\circ, 120^\circ, 180^\circ \right\} \end{gather*} \end{column} - \begin{column}{.5\textwidth} - \end{column} \end{columns} -} +\end{frame} \section{Anwendungen} \begin{frame}[fragile]{} -- cgit v1.2.1 From 262989abd634eddac1dae3974964c382c0301a94 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 5 May 2021 16:17:06 +0200 Subject: Add venn diagram and fix typos --- vorlesungen/punktgruppen/slides.pdf | Bin 52627 -> 53285 bytes vorlesungen/punktgruppen/slides.tex | 59 ++++++++++++++++++++++++------------ 2 files changed, 40 insertions(+), 19 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 199498c..45ae1dd 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 54798f1..d38065d 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -155,7 +155,7 @@ \end{align*} Orthogonale Gruppe \[ - O(n) = \left\{ Q \in \mathrm{GL}_n(\mathbb{R}) : QQ^t = Q^tQ = I \right\} + O(n) = \left\{ Q : QQ^t = Q^tQ = I \right\} \] \end{column} \begin{column}{.5\textwidth} @@ -173,7 +173,7 @@ \Phi_r &= \begin{pmatrix} \cos \alpha & -\sin \alpha & 0 \\ \sin \alpha & \cos \alpha & 0 \\ - 0 & 0 & 1 \\[1em] + 0 & 0 & 1 \end{pmatrix} \end{align*} \end{column} @@ -208,21 +208,40 @@ } } \end{scope} - \draw[white, thick] (-1, -1) rectangle (4,3); - \draw[red!80!background, thick, ->] (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); - \draw[cyan!80!background, thick, ->] (N00) to node[midway, left] {\(\vec{a}_2\)} (N01); - + \draw[red!80!background, thick, ->] + (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); + \draw[cyan!80!background, thick, ->] + (N00) to node[midway, left] {\(\vec{a}_2\)} (N01); \end{tikzpicture} \end{center} \end{column} \begin{column}{.5\textwidth} - Invariant (symmetrisch) unten Translation + Invariant (symmetrisch) unter Translation \[ Q_i(\vec{r}) = \vec{r} + \vec{a}_i \] M\"ogliche Kristallstrukturen + \begin{center} + \begin{tikzpicture}[] + \node[circle, dashed, draw = gray, + thick, fill = background, + minimum size = 4cm] {}; + \node[gray] at (.9,-1.2) {674}; + + \node[circle, draw = white, thick, + fill = orange!40!background, + xshift = -3mm, yshift = 2mm, + minimum size = 2.75cm] (A) {}; + \node[white, yshift = 2mm] at (A) {230}; + + \node[circle, draw = white, thick, + fill = red!20!background, + xshift = -5mm, yshift = -5mm, + minimum size = 1cm] {32}; + \end{tikzpicture} + \end{center} \end{column} \end{columns} \end{frame} @@ -272,21 +291,19 @@ \node[above left, xshift=-2mm] at (X) {\(x\)}; \end{tikzpicture} \end{center} + \end{column} + \begin{column}{.5\textwidth} Sei \(q = |\vec{Q}|\), \(\alpha = 2\pi/n\) und \(n \in \mathbb{N}\) \begin{align*} q' = n q &= q + 2x \\ nq &= q + 2q\sin(\alpha - \pi/2) \\ n &= 1 - 2\cos\alpha \end{align*} - \end{column} - \begin{column}{.5\textwidth} Somit muss - \[ - \alpha = \cos^{-1}\left(\frac{m-1}{2}\right) - \] - \begin{gather*} - \alpha \in \left\{ 0, 60^\circ, 90^\circ, 120^\circ, 180^\circ \right\} - \end{gather*} + \begin{align*} + \alpha &= \cos^{-1}\left(\frac{n-1}{2}\right) \\[1em] + \alpha &\in \left\{ 0, 60^\circ, 90^\circ, 120^\circ, 180^\circ \right\} + \end{align*} \end{column} \end{columns} \end{frame} @@ -386,9 +403,11 @@ \node[white] (E) {\(\vec{E}_p\)}; \begin{scope}[node distance = .5mm] - \node[blue!50, right = of E] {\(-\)}; - \node[red!50, left = of E] {\(+\)}; + \node[red!50, right = of E] {\(+\)}; + \node[blue!50, left = of E] {\(-\)}; \end{scope} + \draw[gray, thick, dotted] (E) to ++(0,2); + \draw[gray, thick, dotted] (E) to ++(0,-2); \end{scope} \begin{scope}[xshift=11cm, yshift=-4.5cm] @@ -407,9 +426,11 @@ \node[white] (E) {\(\vec{E}_p\)}; \begin{scope}[node distance = .5mm] - \node[blue!50, right = of E] {\(-\)}; - \node[red!50, left = of E] {\(+\)}; + \node[red!50, right = of E] {\(+\)}; + \node[blue!50, left = of E] {\(-\)}; \end{scope} + \draw[gray, thick, dotted] (E) to ++(0,2); + \draw[gray, thick, dotted] (E) to ++(0,-2); \end{scope} \end{tikzpicture} \end{frame} -- cgit v1.2.1 From c9e39a53713297b11c23ca1d153c582d1ab37538 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 5 May 2021 16:17:50 +0200 Subject: Add shotcut project --- .../shotcut/Punktgruppen/Punktgruppen.mlt | 115 +++++++++++++++++++++ 1 file changed, 115 insertions(+) create mode 100644 vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt b/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt new file mode 100644 index 0000000..37d8b30 --- /dev/null +++ b/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt @@ -0,0 +1,115 @@ + + + + + 00:01:05.867 + pause + /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/AlgebraicSymmetries.mp4 + avformat-novalidate + 1 + -1 + 0 + 0 + cbe611893baad5bff7cbdb23a3d4e7f3 + 0 + 2021-05-05T11:17:04 + was here + + + 5944 + pause + /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/Geometric2DSymmetries.mp4 + avformat-novalidate + 1 + -1 + 0 + 0 + was here + 47ac11813561d23004945f1738115b32 + + + 2632 + pause + /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/Geometric3DSymmetries.mp4 + avformat-novalidate + 1 + -1 + 0 + 0 + was here + f5af3911322b3cb8d68246387eef0a48 + + + 1 + + + + + + 00:02:22.933 + pause + 0 + 1 + color + rgba + 0 + + + + + + 5944 + pause + /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/Geometric2DSymmetries.mp4 + avformat-novalidate + 1 + -1 + 0 + 0 + was here + 47ac11813561d23004945f1738115b32 + Geometric2DSymmetries.mp4 + + + 2632 + pause + /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/Geometric3DSymmetries.mp4 + avformat-novalidate + 1 + -1 + 0 + 0 + was here + f5af3911322b3cb8d68246387eef0a48 + Geometric3DSymmetries.mp4 + + + 1 + V1 + + + + + 1 + 0.124449 + 2 + 1 + + + + 0 + 1 + mix + 1 + 1 + + + 0 + 1 + 0.9 + frei0r.cairoblend + 0 + 1 + + + -- cgit v1.2.1 From c9e25f8c35027bde9af6f2ab72071dbdd21fa444 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 5 May 2021 21:23:44 +0200 Subject: Add pauses and minor fixes --- vorlesungen/punktgruppen/script.pdf | Bin 31136 -> 34480 bytes .../shotcut/Punktgruppen/Punktgruppen.mlt | 96 ++++----- vorlesungen/punktgruppen/slides.pdf | Bin 53285 -> 148139 bytes vorlesungen/punktgruppen/slides.tex | 233 ++++++++++++--------- 4 files changed, 173 insertions(+), 156 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index 6b17967..70ea683 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt b/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt index 37d8b30..7275d5c 100644 --- a/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt +++ b/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt @@ -1,52 +1,24 @@ - - 00:01:05.867 + + 4200 pause - /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/AlgebraicSymmetries.mp4 + /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/camera/DSCF6392.MOV avformat-novalidate 1 - -1 - 0 - 0 - cbe611893baad5bff7cbdb23a3d4e7f3 - 0 - 2021-05-05T11:17:04 - was here - - - 5944 - pause - /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/Geometric2DSymmetries.mp4 - avformat-novalidate - 1 - -1 - 0 - 0 - was here - 47ac11813561d23004945f1738115b32 - - - 2632 - pause - /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/Geometric3DSymmetries.mp4 - avformat-novalidate - 1 - -1 + 1 0 0 was here - f5af3911322b3cb8d68246387eef0a48 + d255c7f03c50cb9dcfb2f9e0db73cb05 1 - - - + - - 00:02:22.933 + + 00:01:10.000 pause 0 1 @@ -55,47 +27,54 @@ 0 - + - - 5944 + + 4200 pause - /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/Geometric2DSymmetries.mp4 + /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/camera/DSCF6392.MOV avformat-novalidate 1 -1 0 0 was here - 47ac11813561d23004945f1738115b32 - Geometric2DSymmetries.mp4 + d255c7f03c50cb9dcfb2f9e0db73cb05 + DSCF6392.MOV + 1 - - 2632 + + 1 + V1 + + + + 4200 pause - /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/crystals/480p15/Geometric3DSymmetries.mp4 + /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/camera/DSCF6392.MOV avformat-novalidate 1 - -1 + 1 0 0 was here - f5af3911322b3cb8d68246387eef0a48 - Geometric3DSymmetries.mp4 + d255c7f03c50cb9dcfb2f9e0db73cb05 + DSCF6392.MOV + 1 - - 1 - V1 - - + + 1 + A1 + - + 1 - 0.124449 + 0.174581 2 1 + 0 1 @@ -111,5 +90,12 @@ 0 1 + + 0 + 2 + mix + 1 + 1 + diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 45ae1dd..37ada17 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index d38065d..cc62969 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -64,12 +64,11 @@ \frame{\titlepage} \frame{\tableofcontents} -\section{Einleitung} \frame{ \begin{itemize} - \item Was heisst \emph{Symmetrie} in der Mathematik? - \item Wie kann ein Kristall modelliert werden? - \item Aus der Physik: Piezoelektrizit\"at + \item Was heisst \emph{Symmetrie} in der Mathematik? \pause + \item Wie kann ein Kristall modelliert werden? \pause + \item Aus der Physik: Piezoelektrizit\"at \pause \end{itemize} \begin{center} \begin{tikzpicture} @@ -125,7 +124,7 @@ \draw[white, very thick, -Circle] (pos.east) to ++ (1,0) node (p) {}; \draw[white, very thick, -Circle] (neg.east) to ++ (1,0) node (n) {}; - \draw[white, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U \neq 0\)} (n); + \draw[white, thick, ->] (p) to[out = -70, in = 70] node[midway, right] {\(U > 0\)} (n); \end{scope} \end{tikzpicture} \end{center} @@ -148,16 +147,19 @@ \[ G = \left\{\mathbb{1}, r, \sigma, \dots \right\} \] + \pause Matrixdarstellung \begin{align*} \Phi : G &\to O(3) \\ g &\mapsto \Phi_g \end{align*} + \pause Orthogonale Gruppe \[ O(n) = \left\{ Q : QQ^t = Q^tQ = I \right\} \] \end{column} + \pause \begin{column}{.5\textwidth} \begin{align*} \Phi_\mathbb{1} &= \begin{pmatrix} @@ -181,15 +183,31 @@ } \section{Kristalle} +\begin{frame}[fragile]{M\"ogliche Kristallstrukturen} + \begin{center} + \begin{tikzpicture}[] + \node[circle, dashed, draw = gray, + thick, fill = background, + minimum size = 4cm] {}; + \node[gray] at (.9,-1.2) {674}; + + \node[circle, draw = white, thick, + fill = orange!40!background, + xshift = -3mm, yshift = 2mm, + minimum size = 2.75cm] (A) {}; + \node[white, yshift = 2mm] at (A) {230}; + + \node[circle, draw = white, thick, + fill = red!20!background, + xshift = -5mm, yshift = -5mm, + minimum size = 1cm] {32}; + \end{tikzpicture} + \end{center} +\end{frame} + \begin{frame}[fragile]{} - \begin{columns}[T] + \begin{columns} \begin{column}{.5\textwidth} - Kristallgitter: - \(n_i \in \mathbb{Z}\), - \(\vec{a}_i \in \mathbb{R}^3\) - \[ - \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 + n_3 \vec{a}_3 - \] \begin{center} \begin{tikzpicture}[ dot/.style = { @@ -201,14 +219,14 @@ ] \begin{scope} - \clip (-1,-1) rectangle (4,3); - \foreach \y in {-5,-4,...,5} { - \foreach \x in {-5,-4,...,5} { + \clip (-2,-2) rectangle (3,4); + \foreach \y in {-7,-6,...,7} { + \foreach \x in {-7,-6,...,7} { \node[dot, xshift=3mm*\y] (N\x\y) at (\x, \y) {}; } } \end{scope} - \draw[white, thick] (-1, -1) rectangle (4,3); + \draw[white, thick] (-2, -2) rectangle (3,4); \draw[red!80!background, thick, ->] (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); @@ -217,31 +235,21 @@ \end{tikzpicture} \end{center} \end{column} + \pause \begin{column}{.5\textwidth} - Invariant (symmetrisch) unter Translation + Kristallgitter: + \(n_i \in \mathbb{Z}\), + \(\vec{a}_i \in \mathbb{R}^3\) + \[ + \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 + n_3 \vec{a}_3 + \] + \vspace{1cm} + \pause + + Invariant unter Translation \[ Q_i(\vec{r}) = \vec{r} + \vec{a}_i \] - M\"ogliche Kristallstrukturen - \begin{center} - \begin{tikzpicture}[] - \node[circle, dashed, draw = gray, - thick, fill = background, - minimum size = 4cm] {}; - \node[gray] at (.9,-1.2) {674}; - - \node[circle, draw = white, thick, - fill = orange!40!background, - xshift = -3mm, yshift = 2mm, - minimum size = 2.75cm] (A) {}; - \node[white, yshift = 2mm] at (A) {230}; - - \node[circle, draw = white, thick, - fill = red!20!background, - xshift = -5mm, yshift = -5mm, - minimum size = 1cm] {32}; - \end{tikzpicture} - \end{center} \end{column} \end{columns} \end{frame} @@ -249,7 +257,9 @@ \begin{frame}[fragile]{} \begin{columns}[T] \begin{column}{.5\textwidth} - Wie kombiniert sich \(Q_i\) mit der anderen Symmetrien? + \onslide<1->{ + Wie kombiniert sich \(Q_i\) mit der anderen Symmetrien? + } \begin{center} \begin{tikzpicture}[ dot/.style = { @@ -260,50 +270,70 @@ }, ] - \node[dot] (A1) at (0,0) {}; - \node[below left] at (A1) {\(A\)}; - - \node[dot] (A2) at (2.5,0) {}; - \node[below right] at (A2) {\(A'\)}; - - \draw[red!80!background, thick, ->] - (A1) to node[midway, below] {\(\vec{Q}\)} (A2); - - \node[dot] (B1) at (120:2.5) {}; - \node[above left] at (B1) {\(B\)}; - - \draw[green!70!background, thick, ->] - (A1) ++(.5,0) arc (0:120:.5) node[midway, above, xshift=1mm] {\(C_n\)}; - \draw[red!80!background, dashed, thick, ->] (A1) to (B1); + \onslide<2->{ + \node[dot] (A1) at (0,0) {}; + \node[below left] at (A1) {\(A\)}; + } + \onslide<3->{ + \node[dot] (A2) at (2.5,0) {}; + \node[below right] at (A2) {\(A'\)}; - \node[dot] (B2) at ($(A2)+(60:2.5)$) {}; - \node[above right] at (B2) {\(B'\)}; - - \draw[green!70!background, thick, dashed, ->] (A2) ++(-.5,0) arc (180:60:.5); - \draw[red!80!background, dashed, thick, ->] (A2) to (B2); - - \draw[yellow!80!background, thick, ->] (B1) to node[above, midway] {\(\vec{Q}'\)} (B2); - + \draw[red!80!background, thick, ->] + (A1) to node[midway, below] {\(\vec{Q}\)} (A2); + } + + \onslide<4->{ + \node[dot] (B1) at (120:2.5) {}; + \node[above left] at (B1) {\(B\)}; + + \draw[green!70!background, thick, ->] + (A1) ++(.5,0) arc (0:120:.5) + node[midway, above, xshift=1mm] {\(C_n\)}; + \draw[red!80!background, dashed, thick, ->] (A1) to (B1); + } + + \onslide<5->{ + \node[dot] (B2) at ($(A2)+(60:2.5)$) {}; + \node[above right] at (B2) {\(B'\)}; + + \draw[green!70!background, thick, dashed, ->] + (A2) ++(-.5,0) arc (180:60:.5); + \draw[red!80!background, dashed, thick, ->] (A2) to (B2); + } + + \onslide<6->{ + \draw[yellow!80!background, thick, ->] + (B1) to node[above, midway] {\(\vec{Q}'\)} (B2); + } + + \onslide<7->{ \draw[gray, dashed, thick] (A1) to (A1 |- B1) node (X) {}; \draw[gray, dashed, thick] (A2) to (A2 |- B2); + } - \node[above left, xshift=-2mm] at (X) {\(x\)}; + \onslide<8->{ + \node[above left, xshift=-2mm] at (X) {\(x\)}; + } \end{tikzpicture} \end{center} \end{column} \begin{column}{.5\textwidth} - Sei \(q = |\vec{Q}|\), \(\alpha = 2\pi/n\) und \(n \in \mathbb{N}\) - \begin{align*} - q' = n q &= q + 2x \\ - nq &= q + 2q\sin(\alpha - \pi/2) \\ - n &= 1 - 2\cos\alpha - \end{align*} - Somit muss + \onslide<9->{ + Sei \(q = |\vec{Q}|\), \(\alpha = 2\pi/n\) und \(n \in \mathbb{N}\) + } \begin{align*} - \alpha &= \cos^{-1}\left(\frac{n-1}{2}\right) \\[1em] - \alpha &\in \left\{ 0, 60^\circ, 90^\circ, 120^\circ, 180^\circ \right\} + \onslide<10->{q' = n q &= q + 2x \\} + \onslide<11->{nq &= q + 2q\sin(\alpha - \pi/2) \\} + \onslide<12->{n &= 1 - 2\cos\alpha} \end{align*} + \onslide<13->{ + Somit muss + \begin{align*} + \alpha &= \cos^{-1}\left(\frac{1-n}{2}\right) \\[1em] + \alpha &\in \left\{ 0, 60^\circ, 90^\circ, 120^\circ, 180^\circ \right\} + \end{align*} + } \end{column} \end{columns} \end{frame} @@ -343,8 +373,9 @@ negative/.style = { fill = blue!50 }, ] - \node[font = {\large\bfseries}, align = center] (title) at (6,0) {Mit und Ohne\\ Symmetriezentrum}; + \node[font = {\large\bfseries}, align = center] (title) at (5.5,0) {Mit und Ohne\\ Symmetriezentrum}; \node[below = of title] {Polarisation Feld \(\vec{E}_p\)}; + \pause \begin{scope} \matrix[nodes = { charge }, row sep = 8mm, column sep = 8mm] { @@ -354,6 +385,7 @@ }; \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); \end{scope} + \pause \begin{scope}[yshift=-4.5cm] \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { @@ -372,6 +404,7 @@ \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); \end{scope} + \pause \begin{scope}[xshift=11cm] \foreach \x/\t [count=\i] in {60/positive, 120/negative, 180/positive, 240/negative, 300/positive, 360/negative} { @@ -379,27 +412,23 @@ } \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); - \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); + % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); \end{scope} + \pause - \begin{scope}[xshift=6cm, yshift=-4.5cm] - \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; - \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; - \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; - \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; - \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; - \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; + \begin{scope}[xshift=11cm, yshift=-4.5cm] + \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); - \foreach \d in {C1, C2} { - \draw[orange, very thick, <-] (\d) to ++(0,.7); - } - - \foreach \d in {C4, C5} { - \draw[orange, very thick, <-] (\d) to ++(0,-.7); - } + \draw[orange, very thick, <-] (C6) to ++(.7,0); + \draw[orange, very thick, <-] (C3) to ++(-.7,0); \node[white] (E) {\(\vec{E}_p\)}; \begin{scope}[node distance = .5mm] @@ -409,20 +438,26 @@ \draw[gray, thick, dotted] (E) to ++(0,2); \draw[gray, thick, dotted] (E) to ++(0,-2); \end{scope} + \pause - \begin{scope}[xshift=11cm, yshift=-4.5cm] - \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; - \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; - \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; - \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; - \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; - \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; + \begin{scope}[xshift=5.5cm, yshift=-4.5cm] + \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); - \draw[orange, very thick, <-] (C6) to ++(.7,0); - \draw[orange, very thick, <-] (C3) to ++(-.7,0); + \foreach \d in {C1, C2} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {C4, C5} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } \node[white] (E) {\(\vec{E}_p\)}; \begin{scope}[node distance = .5mm] @@ -462,15 +497,11 @@ \] Anisotropisch Dielektrikum \[ - (\ten{K}\ten{\varepsilon})\vec{E} = \frac{\omega^2}{\mu k^2} \vec{E} + (\ten{K}\ten{\varepsilon})\vec{E} = \frac{k^2}{\mu \omega^2} \vec{E} \] \[ \vec{E} \in U_\lambda \implies (\ten{K}\ten{\varepsilon}) \vec{E} = \lambda \vec{E} \] - \"Ahenlich auch in der Mechanik - \[ - \vec{F} = \kappa \vec{x} \quad \text{(Hooke)} - \] \end{column} \end{columns} } -- cgit v1.2.1 From 8f862d9be3117979c9694544cca0afa8d2e53cb3 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 5 May 2021 23:07:28 +0200 Subject: Add (back) slide for algebraic symmetries Probably won't be used but still. --- vorlesungen/punktgruppen/slides.pdf | Bin 148139 -> 156879 bytes vorlesungen/punktgruppen/slides.tex | 51 ++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 37ada17..f2af987 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index cc62969..8edaff6 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -135,6 +135,57 @@ \section{Algebraische Symmetrien} %% Made in video +\frame{ + \begin{columns}[T] + \begin{column}{.5\textwidth} + Produkt mit \(i\) + \begin{align*} + 1 \cdot i &= i \\ + i \cdot i &= -1 \\ + -1 \cdot i &= -i \\ + -i \cdot i &= 1 + \end{align*} + \pause + % + Gruppe + \begin{align*} + G &= \left\{ + 1, i, -1, -i + \right\} \\ + &= \left\{ + 1, i, i^2, i^3 + \right\} \\ + C_4 &= \left\{ + \mathbb{1}, r, r^2, r^3 + \right\} + \end{align*} + \pause + \end{column} + \begin{column}{.5\textwidth} + Darstellung \(\phi : C_4 \to G\) + \begin{align*} + \phi(\mathbb{1}) &= 1 & \phi(r^2) &= i^2 \\ + \phi(r) &= i & \phi(r^3) &= i^3 + \end{align*} + \pause + % + Homomorphismus + \begin{align*} + \phi(r \circ \mathbb{1}) &= \phi(r) \cdot \phi(\mathbb{1}) \\ + &= i \cdot 1 + \end{align*} + \pause + % + \(\phi\) ist bijektiv \(\implies C_4 \cong G\) + \pause + % + \begin{align*} + \psi : C_4 &\to (\mathbb{Z}/4\mathbb{Z}, +) \\ + \psi(\mathbb{1}\circ r^2) &= 0 + 2 \pmod{4} + \end{align*} + \end{column} + \end{columns} +} \section{3D Symmetrien} %% Made in video -- cgit v1.2.1 From 6c50dd1aff137beaadca5e46913355d80d3cda3b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 5 May 2021 23:09:33 +0200 Subject: Update manim to v0.6.0 --- vorlesungen/punktgruppen/crystals.py | 4 +- vorlesungen/punktgruppen/poetry.lock | 222 +++++++++++++++++++++++++++----- vorlesungen/punktgruppen/pyproject.toml | 2 +- 3 files changed, 190 insertions(+), 38 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index 7eef9b8..b29d7e4 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -487,7 +487,7 @@ class AlgebraicSymmetries(Scene): ApplyMethod(morphgrp.to_edge, LEFT)) # draw a complex plane - plane = ComplexPlane(x_min = -2, x_max = 3) + plane = ComplexPlane(x_range = [-2.5, 2.5]) coordinates = plane.get_coordinate_labels(1, -1, 1j, -1j) roots = list(map(lambda p: Dot(p, fill_color=PINK), ( @@ -503,7 +503,7 @@ class AlgebraicSymmetries(Scene): square = Square().rotate(PI/4).scale(1/m.sqrt(2)) square.set_fill(PINK).set_opacity(.4) - figuregrp = Group(plane, square, arrow, arrowtext, *coordinates, *roots) + figuregrp = VGroup(plane, square, arrow, arrowtext, *coordinates, *roots) figuregrp.to_edge(RIGHT) self.play(Create(plane)) diff --git a/vorlesungen/punktgruppen/poetry.lock b/vorlesungen/punktgruppen/poetry.lock index 13c5100..069d270 100644 --- a/vorlesungen/punktgruppen/poetry.lock +++ b/vorlesungen/punktgruppen/poetry.lock @@ -1,3 +1,49 @@ +[[package]] +name = "certifi" +version = "2020.12.5" +description = "Python package for providing Mozilla's CA Bundle." +category = "main" +optional = false +python-versions = "*" + +[[package]] +name = "chardet" +version = "4.0.0" +description = "Universal encoding detector for Python 2 and 3" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "click" +version = "7.1.2" +description = "Composable command line interface toolkit" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[[package]] +name = "click-default-group" +version = "1.2.2" +description = "Extends click.Group to invoke a command without explicit subcommand name" +category = "main" +optional = false +python-versions = "*" + +[package.dependencies] +click = "*" + +[[package]] +name = "cloup" +version = "0.7.1" +description = "Option groups and subcommand help sections for pallets/click" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.dependencies] +click = ">=7.0,<9.0" + [[package]] name = "colorama" version = "0.4.4" @@ -44,9 +90,17 @@ category = "main" optional = false python-versions = "*" +[[package]] +name = "idna" +version = "2.10" +description = "Internationalized Domain Names in Applications (IDNA)" +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" + [[package]] name = "importlib-metadata" -version = "3.10.0" +version = "4.0.1" description = "Read metadata from Python packages" category = "main" optional = false @@ -62,14 +116,18 @@ testing = ["pytest (>=4.6)", "pytest-checkdocs (>=2.4)", "pytest-flake8", "pytes [[package]] name = "manim" -version = "0.5.0" +version = "0.6.0" description = "Animation engine for explanatory math videos." category = "main" optional = false python-versions = ">=3.6.2,<4.0.0" [package.dependencies] +click = ">=7.1,<8.0" +click-default-group = "*" +cloup = ">=0.7.0,<0.8.0" colour = "*" +decorator = "<5.0.0" importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} manimpango = ">=0.2.4,<0.3.0" mapbox-earcut = ">=0.12.10,<0.13.0" @@ -81,17 +139,19 @@ Pillow = "*" pycairo = ">=1.19,<2.0" pydub = "*" pygments = "*" +requests = "*" rich = ">=6.0,<7.0" scipy = "*" tqdm = "*" +watchdog = "*" [package.extras] -webgl_renderer = ["grpcio (>=1.33.0,<1.34.0)", "grpcio-tools (>=1.33.0,<1.34.0)", "watchdog"] +webgl_renderer = ["grpcio (>=1.33.0,<1.34.0)", "grpcio-tools (>=1.33.0,<1.34.0)"] jupyterlab = ["jupyterlab (>=3.0,<4.0)"] [[package]] name = "manimpango" -version = "0.2.5.post0" +version = "0.2.6" description = "Bindings for Pango for using with Manim." category = "main" optional = false @@ -213,7 +273,7 @@ python-versions = "*" [[package]] name = "pyglet" -version = "1.5.15" +version = "1.5.16" description = "Cross-platform windowing and multimedia library" category = "main" optional = false @@ -221,7 +281,7 @@ python-versions = "*" [[package]] name = "pygments" -version = "2.8.1" +version = "2.9.0" description = "Pygments is a syntax highlighting package written in Python." category = "main" optional = false @@ -239,6 +299,24 @@ python-versions = "*" multipledispatch = "*" numpy = "*" +[[package]] +name = "requests" +version = "2.25.1" +description = "Python HTTP for Humans." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" + +[package.dependencies] +certifi = ">=2017.4.17" +chardet = ">=3.0.2,<5" +idna = ">=2.5,<3" +urllib3 = ">=1.21.1,<1.27" + +[package.extras] +security = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)"] +socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] + [[package]] name = "rich" version = "6.2.0" @@ -269,7 +347,7 @@ numpy = ">=1.16.5" [[package]] name = "six" -version = "1.15.0" +version = "1.16.0" description = "Python 2 and 3 compatibility utilities" category = "main" optional = false @@ -290,12 +368,36 @@ telegram = ["requests"] [[package]] name = "typing-extensions" -version = "3.7.4.3" +version = "3.10.0.0" description = "Backported and Experimental Type Hints for Python 3.5+" category = "main" optional = false python-versions = "*" +[[package]] +name = "urllib3" +version = "1.26.4" +description = "HTTP library with thread-safe connection pooling, file post, and more." +category = "main" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" + +[package.extras] +secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] +socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] +brotli = ["brotlipy (>=0.6.0)"] + +[[package]] +name = "watchdog" +version = "2.1.0" +description = "Filesystem events monitoring" +category = "main" +optional = false +python-versions = ">=3.6" + +[package.extras] +watchmedo = ["PyYAML (>=3.10)", "argh (>=0.24.1)"] + [[package]] name = "zipp" version = "3.4.1" @@ -311,9 +413,28 @@ testing = ["pytest (>=4.6)", "pytest-checkdocs (>=1.2.3)", "pytest-flake8", "pyt [metadata] lock-version = "1.1" python-versions = "^3.7" -content-hash = "f990b445406f5bbce3e53cd28ef3362be09615b40062f11233a62f99bcd59a79" +content-hash = "2d2a6db16cffc7cb06ce7290ad490f9555d4d7172f11fd77783e7a1f4fd933ed" [metadata.files] +certifi = [ + {file = "certifi-2020.12.5-py2.py3-none-any.whl", hash = "sha256:719a74fb9e33b9bd44cc7f3a8d94bc35e4049deebe19ba7d8e108280cfd59830"}, + {file = "certifi-2020.12.5.tar.gz", hash = "sha256:1a4995114262bffbc2413b159f2a1a480c969de6e6eb13ee966d470af86af59c"}, +] +chardet = [ + {file = "chardet-4.0.0-py2.py3-none-any.whl", hash = "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"}, + {file = "chardet-4.0.0.tar.gz", hash = "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa"}, +] +click = [ + {file = "click-7.1.2-py2.py3-none-any.whl", hash = "sha256:dacca89f4bfadd5de3d7489b7c8a566eee0d3676333fbb50030263894c38c0dc"}, + {file = "click-7.1.2.tar.gz", hash = "sha256:d2b5255c7c6349bc1bd1e59e08cd12acbbd63ce649f2588755783aa94dfb6b1a"}, +] +click-default-group = [ + {file = "click-default-group-1.2.2.tar.gz", hash = "sha256:d9560e8e8dfa44b3562fbc9425042a0fd6d21956fcc2db0077f63f34253ab904"}, +] +cloup = [ + {file = "cloup-0.7.1-py2.py3-none-any.whl", hash = "sha256:947c881ada77ea2f7b2876f7b5bb2fc7e5406daac5a045342acf8de35bcce5d7"}, + {file = "cloup-0.7.1.tar.gz", hash = "sha256:f26cc500dda4e4c9444ac1008b82376df8d72ecfa43a6310a9b3d54ef98add7b"}, +] colorama = [ {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, @@ -356,28 +477,32 @@ glcontext = [ {file = "glcontext-2.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:69e3a04c677e4925c0b6daf5efc5469a86d0982b05bb1d0ca29bce57f4aaf7d1"}, {file = "glcontext-2.3.3.tar.gz", hash = "sha256:f86a6c4ad99f941623911f964da74c443dc3f833fac7eb03cd485fae82acb80c"}, ] +idna = [ + {file = "idna-2.10-py2.py3-none-any.whl", hash = "sha256:b97d804b1e9b523befed77c48dacec60e6dcb0b5391d57af6a65a312a90648c0"}, + {file = "idna-2.10.tar.gz", hash = "sha256:b307872f855b18632ce0c21c5e45be78c0ea7ae4c15c828c20788b26921eb3f6"}, +] importlib-metadata = [ - {file = "importlib_metadata-3.10.0-py3-none-any.whl", hash = "sha256:d2d46ef77ffc85cbf7dac7e81dd663fde71c45326131bea8033b9bad42268ebe"}, - {file = "importlib_metadata-3.10.0.tar.gz", hash = "sha256:c9db46394197244adf2f0b08ec5bc3cf16757e9590b02af1fca085c16c0d600a"}, + {file = "importlib_metadata-4.0.1-py3-none-any.whl", hash = "sha256:d7eb1dea6d6a6086f8be21784cc9e3bcfa55872b52309bc5fad53a8ea444465d"}, + {file = "importlib_metadata-4.0.1.tar.gz", hash = "sha256:8c501196e49fb9df5df43833bdb1e4328f64847763ec8a50703148b73784d581"}, ] manim = [ - {file = "manim-0.5.0-py3-none-any.whl", hash = "sha256:1a164c8caa6058f67c6fcd7cf1e6f5dbb9833b292117885dc470dabad1cc00c7"}, - {file = "manim-0.5.0.tar.gz", hash = "sha256:e4284648cbb5d463c6dbced1d4e60fa9b68c14f4bb3b10c8eab0f8f49ca5da88"}, + {file = "manim-0.6.0-py3-none-any.whl", hash = "sha256:402cb91b5a472204491086ca079163dcefdc491acb0559c098156b08f4e62d8b"}, + {file = "manim-0.6.0.tar.gz", hash = "sha256:08bd27389f58312ab6d994e3a2910e77fa668c867c06da67135efe637f81c4a1"}, ] manimpango = [ - {file = "ManimPango-0.2.5.post0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:53f754594ccedeaf464028777d4502fb31f2251b9dca7e99b40786b3e4ff394d"}, - {file = "ManimPango-0.2.5.post0-cp36-cp36m-win32.whl", hash = "sha256:ac33cc00a89aabe7459043b7aab8851e4ec4c7fa78cea2b3dacb618b2b03c98b"}, - {file = "ManimPango-0.2.5.post0-cp36-cp36m-win_amd64.whl", hash = "sha256:87e205f5a35ff5504104cd30b8d086e9f97c17f95cf490de7cc1d4aa8c2a8425"}, - {file = "ManimPango-0.2.5.post0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:70e59f888ca5ad0be37777f761cee8fb3d6e28c5d949e5da13f727326b46da60"}, - {file = "ManimPango-0.2.5.post0-cp37-cp37m-win32.whl", hash = "sha256:d9cc5ac80dd363fd4f3fa233f7fad74e9749965b6e4af10a2174f946fe1d9813"}, - {file = "ManimPango-0.2.5.post0-cp37-cp37m-win_amd64.whl", hash = "sha256:3bef549783fc5e3f39598880e7cc41bb44dc2e37ceb8c7e20f0381fd8d67b3e8"}, - {file = "ManimPango-0.2.5.post0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:978bcf4c6cf145f723ec551ed18a1959f6952f100d61c7b4431939ee850f9308"}, - {file = "ManimPango-0.2.5.post0-cp38-cp38-win32.whl", hash = "sha256:db877a3a037739ce2f647f747bc750c7e9a881ce5175a4ad764170f24fb2d68a"}, - {file = "ManimPango-0.2.5.post0-cp38-cp38-win_amd64.whl", hash = "sha256:2876c64724a73893ba22c250ddf603724865c650a925ddca76102eea0e489373"}, - {file = "ManimPango-0.2.5.post0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:e3694ae99ef758a8eaf847f77b0fa2bf7318ed2ee55a32b3a3bb155dd2d6ec9b"}, - {file = "ManimPango-0.2.5.post0-cp39-cp39-win32.whl", hash = "sha256:139469a6130270e3cf94c4b01fa9b17dc516170a11b901ff0ce0f6cdff6752e9"}, - {file = "ManimPango-0.2.5.post0-cp39-cp39-win_amd64.whl", hash = "sha256:aad57df6ec62585f52c662b84f2d5ff2c686daa8ca753326b6cde8b798c4da96"}, - {file = "ManimPango-0.2.5.post0.tar.gz", hash = "sha256:c33d073d4389ad93bbac13029b8a0da5d8ee0b8fe7f282379ff95012e34d324e"}, + {file = "ManimPango-0.2.6-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:2a2d0ba8ca06e761650076a0e0050743acb2f1fb163f9b7db52decf95d91ced8"}, + {file = "ManimPango-0.2.6-cp36-cp36m-win32.whl", hash = "sha256:05c1d1af85d2016819f4ce40758d0ef6564baa121238ef6a88240ad96220a7a8"}, + {file = "ManimPango-0.2.6-cp36-cp36m-win_amd64.whl", hash = "sha256:ed9cc957df9513d31b450acdb8f9bc76885ed5eae1a71d71e939c3133c14eb09"}, + {file = "ManimPango-0.2.6-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:e094d1f136f99408bb10bf4748ee6b51efba68e54e310096e75a8d38bb7ef111"}, + {file = "ManimPango-0.2.6-cp37-cp37m-win32.whl", hash = "sha256:b2062fac21e968930cb91945a8bfcf4593a3152f8bea5d6950c6aa304eb831a7"}, + {file = "ManimPango-0.2.6-cp37-cp37m-win_amd64.whl", hash = "sha256:76d1ab6c131389e91cc84e0d3c4f746978cd301237ddd1e463f9463ff872d17f"}, + {file = "ManimPango-0.2.6-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:88bdd9c2714b94ee85da28002fd28122e4b26cb7ef74a48fe93d50cb06e8a35b"}, + {file = "ManimPango-0.2.6-cp38-cp38-win32.whl", hash = "sha256:28165fd23d8cfe7e260affa8d240d63bf66808f96154507ba534548b47834208"}, + {file = "ManimPango-0.2.6-cp38-cp38-win_amd64.whl", hash = "sha256:e74690f948c5fe2cc5e13f22683c1875155fee4a4a75c4e24ce1dc6e4f9f9883"}, + {file = "ManimPango-0.2.6-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2297b1c829cfff6d91f5d32a7a8e903e30d0b28be8006e9f61fd653981ce7827"}, + {file = "ManimPango-0.2.6-cp39-cp39-win32.whl", hash = "sha256:de974e2435d445b1244a713b7b6ce4383bc6c574e0a1b59a6f33b8a16d1a147e"}, + {file = "ManimPango-0.2.6-cp39-cp39-win_amd64.whl", hash = "sha256:59a575fb28183fe68f3d8f5e93c98b7afa8e495eb0124ec09c660eef15adfcbb"}, + {file = "ManimPango-0.2.6.tar.gz", hash = "sha256:64028b62b151bc80b047cc1757b27943498416dc4a85f073892a524b4d90ab41"}, ] mapbox-earcut = [ {file = "mapbox_earcut-0.12.10-cp27-cp27m-macosx_10_9_x86_64.whl", hash = "sha256:2aaf7bdb002d36d38d1412088329a9176de3fcadc24a53951b76e49a27e34d78"}, @@ -536,17 +661,21 @@ pydub = [ {file = "pydub-0.25.1.tar.gz", hash = "sha256:980a33ce9949cab2a569606b65674d748ecbca4f0796887fd6f46173a7b0d30f"}, ] pyglet = [ - {file = "pyglet-1.5.15-py3-none-any.whl", hash = "sha256:4401cc176580e4e17e2df8bbf7536f27e691327dc3f38f209a12f1859c70aed2"}, - {file = "pyglet-1.5.15.zip", hash = "sha256:da9d8337388cedabf1f1c5dc21a45bb2b0e5327fba47f996c8573818c3dfa478"}, + {file = "pyglet-1.5.16-py3-none-any.whl", hash = "sha256:37cced6f4f7e30e7ace73779d068c86b3dc26f1a28b602016d37113ae830d7f8"}, + {file = "pyglet-1.5.16.zip", hash = "sha256:ad4a02d6fbebdaa748f8af6d2d388d64d446b6ccdfb9c0d7dfd49d7164913400"}, ] pygments = [ - {file = "Pygments-2.8.1-py3-none-any.whl", hash = "sha256:534ef71d539ae97d4c3a4cf7d6f110f214b0e687e92f9cb9d2a3b0d3101289c8"}, - {file = "Pygments-2.8.1.tar.gz", hash = "sha256:2656e1a6edcdabf4275f9a3640db59fd5de107d88e8663c5d4e9a0fa62f77f94"}, + {file = "Pygments-2.9.0-py3-none-any.whl", hash = "sha256:d66e804411278594d764fc69ec36ec13d9ae9147193a1740cd34d272ca383b8e"}, + {file = "Pygments-2.9.0.tar.gz", hash = "sha256:a18f47b506a429f6f4b9df81bb02beab9ca21d0a5fee38ed15aef65f0545519f"}, ] pyrr = [ {file = "pyrr-0.10.3-py3-none-any.whl", hash = "sha256:d8af23fb9bb29262405845e1c98f7339fbba5e49323b98528bd01160a75c65ac"}, {file = "pyrr-0.10.3.tar.gz", hash = "sha256:3c0f7b20326e71f706a610d58f2190fff73af01eef60c19cb188b186f0ec7e1d"}, ] +requests = [ + {file = "requests-2.25.1-py2.py3-none-any.whl", hash = "sha256:c210084e36a42ae6b9219e00e48287def368a26d03a048ddad7bfee44f75871e"}, + {file = "requests-2.25.1.tar.gz", hash = "sha256:27973dd4a904a4f13b263a19c866c13b92a39ed1c964655f025f3f8d3d75b804"}, +] rich = [ {file = "rich-6.2.0-py3-none-any.whl", hash = "sha256:fa55d5d6ba9a0df1f1c95518891b57b13f1d45548a9a198a87b093fceee513ec"}, {file = "rich-6.2.0.tar.gz", hash = "sha256:f99c877277906e1ff83b135c564920590ba31188f424dcdb5d1cae652a519b4b"}, @@ -573,17 +702,40 @@ scipy = [ {file = "scipy-1.6.1.tar.gz", hash = "sha256:c4fceb864890b6168e79b0e714c585dbe2fd4222768ee90bc1aa0f8218691b11"}, ] six = [ - {file = "six-1.15.0-py2.py3-none-any.whl", hash = "sha256:8b74bedcbbbaca38ff6d7491d76f2b06b3592611af620f8426e82dddb04a5ced"}, - {file = "six-1.15.0.tar.gz", hash = "sha256:30639c035cdb23534cd4aa2dd52c3bf48f06e5f4a941509c8bafd8ce11080259"}, + {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, + {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, ] tqdm = [ {file = "tqdm-4.60.0-py2.py3-none-any.whl", hash = "sha256:daec693491c52e9498632dfbe9ccfc4882a557f5fa08982db1b4d3adbe0887c3"}, {file = "tqdm-4.60.0.tar.gz", hash = "sha256:ebdebdb95e3477ceea267decfc0784859aa3df3e27e22d23b83e9b272bf157ae"}, ] typing-extensions = [ - {file = "typing_extensions-3.7.4.3-py2-none-any.whl", hash = "sha256:dafc7639cde7f1b6e1acc0f457842a83e722ccca8eef5270af2d74792619a89f"}, - {file = "typing_extensions-3.7.4.3-py3-none-any.whl", hash = "sha256:7cb407020f00f7bfc3cb3e7881628838e69d8f3fcab2f64742a5e76b2f841918"}, - {file = "typing_extensions-3.7.4.3.tar.gz", hash = "sha256:99d4073b617d30288f569d3f13d2bd7548c3a7e4c8de87db09a9d29bb3a4a60c"}, + {file = "typing_extensions-3.10.0.0-py2-none-any.whl", hash = "sha256:0ac0f89795dd19de6b97debb0c6af1c70987fd80a2d62d1958f7e56fcc31b497"}, + {file = "typing_extensions-3.10.0.0-py3-none-any.whl", hash = "sha256:779383f6086d90c99ae41cf0ff39aac8a7937a9283ce0a414e5dd782f4c94a84"}, + {file = "typing_extensions-3.10.0.0.tar.gz", hash = "sha256:50b6f157849174217d0656f99dc82fe932884fb250826c18350e159ec6cdf342"}, +] +urllib3 = [ + {file = "urllib3-1.26.4-py2.py3-none-any.whl", hash = "sha256:2f4da4594db7e1e110a944bb1b551fdf4e6c136ad42e4234131391e21eb5b0df"}, + {file = "urllib3-1.26.4.tar.gz", hash = "sha256:e7b021f7241115872f92f43c6508082facffbd1c048e3c6e2bb9c2a157e28937"}, +] +watchdog = [ + {file = "watchdog-2.1.0-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:af1d42ac65bf3f851d787e723a950d9c878c4ef0ff3381a2196d36b0c4b6d39c"}, + {file = "watchdog-2.1.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:8a75022cacbd0ad66ab8a9059322a76a43164ea020b373cbc28ddbacf9410b14"}, + {file = "watchdog-2.1.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37bf90ef22b666fb0b5c1ea4375c9cbf43f1ff72489a91bf6f0370ba13e09b2a"}, + {file = "watchdog-2.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:66193c811498ff539d0312091bdcbd98cce03b5425b8fa918c80f21a278e8358"}, + {file = "watchdog-2.1.0-pp36-pypy36_pp73-macosx_10_9_x86_64.whl", hash = "sha256:5472ee2d23eaedf16c4b5088897cd9f50cd502074f508011180466d678cdf62a"}, + {file = "watchdog-2.1.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:a079aceede99b83a4cf4089f6e2243c864f368b60f4cce7bf46286f3cfcc8947"}, + {file = "watchdog-2.1.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:da1ca0845bbc92606b08a08988d8dbcba514a16c209be29d211b13cf0d5be2fd"}, + {file = "watchdog-2.1.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:5a62491c035646130c290a4cb773d7de103ac0202ac8305404bdb7db17ab5c3f"}, + {file = "watchdog-2.1.0-py3-none-manylinux2014_i686.whl", hash = "sha256:8c8ff287308a2ba5148aa450d742198d838636b65de52edd3eccfa4c86bf8004"}, + {file = "watchdog-2.1.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:05544fdd1cdc00b5231fb564f17428c5d502756419008cb8045be5b297eac21c"}, + {file = "watchdog-2.1.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:8ab111b71fba4f8f77baa39d42bf923d085f64869396497518c43297fe1ec4e7"}, + {file = "watchdog-2.1.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:06ee7b77a8169f9828f8d24fc3d3d99b2216e1d2f7085b5913022a55161da758"}, + {file = "watchdog-2.1.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:c2d37a9df96d8f9ea560c0824f179168d8501f3e614b5e9f2168b38fe6ef3c12"}, + {file = "watchdog-2.1.0-py3-none-win32.whl", hash = "sha256:6c6fa079abddea664f7ecda0a02636ca276f095bd26f474c23b3f968f1e938ec"}, + {file = "watchdog-2.1.0-py3-none-win_amd64.whl", hash = "sha256:80afa2b32aac3abc7fb6ced508fc612997a0c8fb0f497217d54c524ff52e9e3a"}, + {file = "watchdog-2.1.0-py3-none-win_ia64.whl", hash = "sha256:b8fb08629f52d3e0a060b93d711824f2b06fb8e0d09ad453f2a93d0c97d6b1ec"}, + {file = "watchdog-2.1.0.tar.gz", hash = "sha256:55316efab52f659b8b7b59730680bfb27ac003522f24c44f6bcd60c4e3736ccd"}, ] zipp = [ {file = "zipp-3.4.1-py3-none-any.whl", hash = "sha256:51cb66cc54621609dd593d1787f286ee42a5c0adbb4b29abea5a63edc3e03098"}, diff --git a/vorlesungen/punktgruppen/pyproject.toml b/vorlesungen/punktgruppen/pyproject.toml index 92c06e2..527eb57 100644 --- a/vorlesungen/punktgruppen/pyproject.toml +++ b/vorlesungen/punktgruppen/pyproject.toml @@ -6,7 +6,7 @@ authors = ["Nao Pross "] [tool.poetry.dependencies] python = "^3.7" -manim = "^0.5.0" +manim = "^0.6.0" [tool.poetry.dev-dependencies] -- cgit v1.2.1 From 1d952ad204000bd84383564cbd4240dcb6982738 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Wed, 5 May 2021 23:51:37 +0200 Subject: Add placeholder slides for video parts and update gitignore --- vorlesungen/punktgruppen/.gitignore | 4 +++- vorlesungen/punktgruppen/media/images/nosignal.jpg | Bin 0 -> 711846 bytes vorlesungen/punktgruppen/slides.pdf | Bin 156879 -> 869387 bytes vorlesungen/punktgruppen/slides.tex | 10 ++++++++++ 4 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 vorlesungen/punktgruppen/media/images/nosignal.jpg (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/.gitignore b/vorlesungen/punktgruppen/.gitignore index 632b499..3d67444 100644 --- a/vorlesungen/punktgruppen/.gitignore +++ b/vorlesungen/punktgruppen/.gitignore @@ -1,6 +1,8 @@ # directories __pycache__ -media +media/Tex +media/images/crystal +media/videos build # files diff --git a/vorlesungen/punktgruppen/media/images/nosignal.jpg b/vorlesungen/punktgruppen/media/images/nosignal.jpg new file mode 100644 index 0000000..2beeb8b Binary files /dev/null and b/vorlesungen/punktgruppen/media/images/nosignal.jpg differ diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index f2af987..0cdf00d 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 8edaff6..3aa6d83 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -132,6 +132,11 @@ \section{2D Symmetrien} %% Made in video +{ + \usebackgroundtemplate{ + \includegraphics[height=\paperheight]{media/images/nosignal}} + \frame{} +} \section{Algebraische Symmetrien} %% Made in video @@ -189,6 +194,11 @@ \section{3D Symmetrien} %% Made in video +{ + \usebackgroundtemplate{ + \includegraphics[height=\paperheight]{media/images/nosignal}} + \frame{} +} \section{Matrizen} \frame{ -- cgit v1.2.1 From 965fe8cb04683c1efea1b955af93485e7860d235 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Thu, 6 May 2021 00:04:07 +0200 Subject: Add link to slides --- vorlesungen/punktgruppen/slides.pdf | Bin 869387 -> 871227 bytes vorlesungen/punktgruppen/slides.tex | 9 ++++++++- 2 files changed, 8 insertions(+), 1 deletion(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 0cdf00d..715d915 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 3aa6d83..da13003 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -61,7 +61,14 @@ % Slides \begin{document} -\frame{\titlepage} +\frame{ + \titlepage + \vfill + \begin{center} + \small \color{gray} + Slides: \texttt{s.0hm.ch/ctBsD} + \end{center} +} \frame{\tableofcontents} \frame{ -- cgit v1.2.1 From b879ffd58aa2c74b8f7b199edfa4b108b88c6e0b Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 7 May 2021 00:12:11 +0200 Subject: Create slide to show all point groups --- vorlesungen/punktgruppen/.gitignore | 1 + vorlesungen/punktgruppen/Makefile | 3 +- vorlesungen/punktgruppen/slides.pdf | Bin 871227 -> 789335 bytes vorlesungen/punktgruppen/slides.tex | 265 +++++++++++++++++++++++++++++++++++- 4 files changed, 265 insertions(+), 4 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/.gitignore b/vorlesungen/punktgruppen/.gitignore index 3d67444..841ea7e 100644 --- a/vorlesungen/punktgruppen/.gitignore +++ b/vorlesungen/punktgruppen/.gitignore @@ -8,4 +8,5 @@ build # files script.log slides.log +slides.vrb missfont.log diff --git a/vorlesungen/punktgruppen/Makefile b/vorlesungen/punktgruppen/Makefile index d685652..302e976 100644 --- a/vorlesungen/punktgruppen/Makefile +++ b/vorlesungen/punktgruppen/Makefile @@ -1,12 +1,11 @@ TEX=xelatex -TEXARGS=--output-directory=build --halt-on-error +TEXARGS=--output-directory=build --halt-on-error --shell-escape all: slides.pdf script.pdf media .PHONY: clean clean: @rm -rfv build - # @rm -rfv media %.pdf: %.tex mkdir -p build diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 715d915..78cd5dd 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index da13003..08b6ecb 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -1,4 +1,4 @@ -\documentclass[12pt, xcolor, aspectratio=169]{beamer} +\documentclass[12pt, xcolor, aspectratio=169, handout]{beamer} % language \usepackage{polyglossia} @@ -8,8 +8,16 @@ \usepackage{tikz} \usetikzlibrary{positioning} \usetikzlibrary{arrows.meta} +\usetikzlibrary{shapes.misc} \usetikzlibrary{calc} +\usetikzlibrary{external} +\tikzexternalize[ + mode = graphics if exists, + figure list = true, + prefix=build/ +] + % Theme \beamertemplatenavigationsymbolsempty @@ -399,13 +407,266 @@ Somit muss \begin{align*} \alpha &= \cos^{-1}\left(\frac{1-n}{2}\right) \\[1em] - \alpha &\in \left\{ 0, 60^\circ, 90^\circ, 120^\circ, 180^\circ \right\} + \alpha &\in \left\{ 0, 60^\circ, 90^\circ, 120^\circ, 180^\circ \right\} \\ + n &\in \left\{ 1, 2, 3, 4, 6 \right\} \end{align*} } \end{column} \end{columns} \end{frame} +{ + \usebackgroundtemplate[fragile]{ + \begin{tikzpicture}[ + overlay, + xshift = .45\paperwidth, + yshift = .47\paperheight, + classcirc/.style = { + draw = gray, thick, circle, + minimum size = 12mm, + inner sep = 0pt, outer sep = 0pt, + }, + classlabel/.style = { + below right = 5mm + }, + round/.style = { + draw = yellow, thick, circle, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt, + }, + cross/.style = { + cross out, draw = magenta, thick, + minimum size = 1mm, + inner sep = 0pt, outer sep = 0pt + }, + ] + \matrix [row sep = 3mm, column sep = 0mm] { + \node[classcirc] (C1) {} node[classlabel] {\(C_{1}\)}; & + \node[classcirc] (C2) {} node[classlabel] {\(C_{2}\)}; & + \node[classcirc] (C3) {} node[classlabel] {\(C_{3}\)}; & + \node[classcirc] (Ci) {} node[classlabel] {\(C_{i}\)}; & + + \node[classcirc] (Cs) {} node[classlabel] {\(C_{s}\)}; & + \node[classcirc] (C3i) {} node[classlabel] {\(C_{3i}\)}; & + \node[classcirc] (C2h) {} node[classlabel] {\(C_{2h}\)}; & + \node[classcirc] (D2) {} node[classlabel] {\(D_{2}\)}; \\ + + \node[classcirc] (D3d) {} node[classlabel] {\(D_{3d}\)}; & + \node[classcirc] (C2v) {} node[classlabel] {\(C_{2v}\)}; & + \node[classcirc] (D2h) {} node[classlabel] {\(D_{2h}\)}; & + \node[classcirc] (D3) {} node[classlabel] {\(D_{3}\)}; & + + \node[classcirc] (C4) {} node[classlabel] {\(C_{4}\)}; & + \node[classcirc] (C6) {} node[classlabel] {\(C_{6}\)}; & + \node[classcirc] (D3dP) {} node[classlabel] {\(D_{3d}\)}; & + \node[classcirc] (S4) {} node[classlabel] {\(S_{4}\)}; \\ + + \node[classcirc] (S3) {} node[classlabel] {\(S_{3}\)}; & + \node[classcirc, dashed] (T) {} node[classlabel] {\(T_{}\)}; & + \node[classcirc] (C4h) {} node[classlabel] {\(C_{4h}\)}; & + \node[classcirc] (C6h) {} node[classlabel] {\(C_{6h}\)}; & + + \node[classcirc, dashed] (Th) {} node[classlabel] {\(T_{h}\)}; & + \node[classcirc] (C4v) {} node[classlabel] {\(C_{4v}\)}; & + \node[classcirc] (C6v) {} node[classlabel] {\(C_{6v}\)}; & + \node[classcirc, dashed] (Td) {} node[classlabel] {\(T_{d}\)}; \\ + + \node[classcirc] (D2d) {} node[classlabel] {\(D_{2d}\)}; & + \node[classcirc] (D3h) {} node[classlabel] {\(D_{3h}\)}; & + \node[classcirc, dashed] (O) {} node[classlabel] {\(O_{}\)}; & + \node[classcirc] (D4) {} node[classlabel] {\(D_{4}\)}; & + + \node[classcirc] (D6) {} node[classlabel] {\(D_{6}\)}; & + \node[classcirc, dashed] (Oh) {} node[classlabel] {\(O_{h}\)}; & + \node[classcirc] (D4h) {} node[classlabel] {\(D_{4h}\)}; & + \node[classcirc] (D6h) {} node[classlabel] {\(D_{6h}\)}; \\ + }; + + + \node[cross] at ($(C1)+(4mm,0)$) {}; + + + \node[cross] at ($(C2)+(4mm,0)$) {}; + \node[cross] at ($(C2)-(4mm,0)$) {}; + + + \node[cross] at ($(C3)+( 0:4mm)$) {}; + \node[cross] at ($(C3)+(120:4mm)$) {}; + \node[cross] at ($(C3)+(240:4mm)$) {}; + + + \node[cross] at ($(Ci)+(4mm,0)$) {}; + \node[round] at ($(Ci)-(4mm,0)$) {}; + + + \node[cross] at ($(Cs)+(4mm,0)$) {}; + \node[round] at ($(Cs)+(4mm,0)$) {}; + + + \node[cross] at ($(C3i)+( 0:4mm)$) {}; + \node[cross] at ($(C3i)+(120:4mm)$) {}; + \node[cross] at ($(C3i)+(240:4mm)$) {}; + \node[round] at ($(C3i)+( 60:4mm)$) {}; + \node[round] at ($(C3i)+(180:4mm)$) {}; + \node[round] at ($(C3i)+(300:4mm)$) {}; + + + \node[cross] at ($(C2h)+(4mm,0)$) {}; + \node[cross] at ($(C2h)-(4mm,0)$) {}; + \node[round] at ($(C2h)+(4mm,0)$) {}; + \node[round] at ($(C2h)-(4mm,0)$) {}; + + + \node[cross] at ($(D2)+( 20:4mm)$) {}; + \node[cross] at ($(D2)+(200:4mm)$) {}; + \node[round] at ($(D2)+(160:4mm)$) {}; + \node[round] at ($(D2)+(340:4mm)$) {}; + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3d)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3d)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 180} { + \node[cross] at ($(C2v)+({\x+15}:4mm)$) {}; + \node[cross] at ($(C2v)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 180} { + \node[cross] at ($(D2h)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D2h)+({\x-15}:4mm)$) {}; + \node[round] at ($(D2h)+({\x+15}:4mm)$) {}; + \node[round] at ($(D2h)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3)+({\x+15}:4mm)$) {}; + \node[round] at ($(D3)+({\x-15}:4mm)$) {}; + } + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3dP)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3dP)+({\x-15}:4mm)$) {}; + \node[round] at ($(D3dP)+({\x+15+60}:4mm)$) {}; + \node[round] at ($(D3dP)+({\x-15+60}:4mm)$) {}; + } + + + \node[cross] at ($(S4)+(4mm,0)$) {}; + \node[cross] at ($(S4)-(4mm,0)$) {}; + \node[round] at ($(S4)+(0,4mm)$) {}; + \node[round] at ($(S4)-(0,4mm)$) {}; + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(S3)+(\x:4mm)$) {}; + \node[round] at ($(S3)+(\x:4mm)$) {}; + } + + + %% TODO: T + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4h)+(\x:4mm)$) {}; + \node[round] at ($(C4h)+(\x:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6h)+(\x:4mm)$) {}; + \node[round] at ($(C6h)+(\x:4mm)$) {}; + } + + + %% TODO: Th + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(C4v)+(\x+15:4mm)$) {}; + \node[cross] at ($(C4v)+(\x-15:4mm)$) {}; + } + + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(C6v)+(\x+10:4mm)$) {}; + \node[cross] at ($(C6v)+(\x-10:4mm)$) {}; + } + + + %% TODO: Td + + + \foreach \x in {0, 180} { + \node[cross] at ($(D2d)+({\x+15}:4mm)$) {}; + \node[round] at ($(D2d)+({\x-15}:4mm)$) {}; + + \node[round] at ($(D2d)+({\x+15+90}:4mm)$) {}; + \node[cross] at ($(D2d)+({\x-15+90}:4mm)$) {}; + } + + + \foreach \x in {0, 120, 240} { + \node[cross] at ($(D3h)+({\x+15}:4mm)$) {}; + \node[cross] at ($(D3h)+({\x-15}:4mm)$) {}; + \node[round] at ($(D3h)+({\x+15}:4mm)$) {}; + \node[round] at ($(D3h)+({\x-15}:4mm)$) {}; + } + + + %% TODO: O + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(D4)+({\x+15}:4mm)$) {}; + \node[round] at ($(D4)+({\x-15}:4mm)$) {}; + } + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(D6)+({\x+10}:4mm)$) {}; + \node[round] at ($(D6)+({\x-10}:4mm)$) {}; + } + + + % TODO Oh + + + \foreach \x in {0, 90, 180, 270} { + \node[cross] at ($(D4h)+(\x+15:4mm)$) {}; + \node[cross] at ($(D4h)+(\x-15:4mm)$) {}; + \node[round] at ($(D4h)+(\x+15:4mm)$) {}; + \node[round] at ($(D4h)+(\x-15:4mm)$) {}; + } + + + \foreach \x in {0, 60, 120, 180, 240, 300} { + \node[cross] at ($(D6h)+({\x+10}:4mm)$) {}; + \node[cross] at ($(D6h)+({\x-10}:4mm)$) {}; + \node[round] at ($(D6h)+({\x+10}:4mm)$) {}; + \node[round] at ($(D6h)+({\x-10}:4mm)$) {}; + } + \end{tikzpicture} + } + \begin{frame}[fragile]{} + \end{frame} +} + \section{Anwendungen} \begin{frame}[fragile]{} \centering -- cgit v1.2.1 From 84f60f0f078481b05f1305ceff9565f2e7dd7471 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Fri, 7 May 2021 17:54:43 +0200 Subject: Striptease --- vorlesungen/punktgruppen/slides.pdf | Bin 789335 -> 883884 bytes vorlesungen/punktgruppen/slides.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 78cd5dd..ea4164d 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 08b6ecb..dbcf40f 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -1,4 +1,4 @@ -\documentclass[12pt, xcolor, aspectratio=169, handout]{beamer} +\documentclass[12pt, xcolor, aspectratio=169]{beamer} % language \usepackage{polyglossia} -- cgit v1.2.1 From e5cf8cc758fa3444d5b35cf1a2c3597532b3050e Mon Sep 17 00:00:00 2001 From: tim30b Date: Fri, 7 May 2021 18:01:03 +0200 Subject: Crystallographic restriction theorem --- vorlesungen/punktgruppen/script.tex | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index 0ea0aed..3c4b5b0 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -77,7 +77,7 @@ Let's now move into something seemingly unrelated: \emph{algebra}. \scene{Complex numbers and cyclic groups} \end{totranslate} -\scene{Matrizen} +\section{Matrizen} Das man mit matrizen so einiges darstellen kann ist keine neuigkeit mehr nach einem halben Semester Matheseminar. Also überrascht es wohl auch keinen, das mann alle punktsymetrischen Operationen auch mit Matrizen Formulieren kann. (Beispiel zu Rotation mit video) @@ -87,7 +87,7 @@ Let's now move into something seemingly unrelated: \emph{algebra}. -\scene{Krystalle} +\section{Krystalle} Jenen welchen die Kristalle bis jetzt ein wenig zu kurz gekommen sind, Freuen sich hoffentlich zurecht an dieser Folie. Es geht ab jetzt nähmlich um Kristalle. Bevor wir mit ihnen arbeiten könne sollten wir jedoch klähren, was ein Kristall ist. @@ -97,6 +97,18 @@ Let's now move into something seemingly unrelated: \emph{algebra}. Als Orentierungshilfe ist diese eigenschaft ein grosser Nachteil nicht jedoch wenn man versucht alle möglichen Symmetrien in einem Kristall zu finden. Denn die Lattice Strucktur schränkt die unendlichen möglichen Punktsymmetrien im 3D Raum beträchtlich ein. Was im Englischen bekannt is unter dem Crystallographic Restrictiontheorem. + + \scene{Crystallographic restriction Theorem} + Die Punktsymmetrien von Kristallen sind auf grund verschiedensten geometrischen überlegungen eingeschränkt. + Wir zeigen euch hier nur den beweis wieso die in einem Kristall nur Rotations symetrien um 360,180,120,90 und 60 grad haben kann. + Für den Beweis beginnen wir mit einem Punkt A in dem Gitter wir wssen das in nach einer translation um eine gitterbasis wieder ein Punkt A' existieren muss. + Wir suchen Rotationssymmetrien also drehen wir um den winkel \( \alpha \) und müssen dank der drehsymmetrie \(\alpha\) wieder einen punkt im Gitter finden hier B. + Das selbe oder hier genau die die inverse drehung um \(\alpha\) von A' aus muss uns daher den Punkt B' liefern. + Zwischen zwei punkten im Gitter muss aber die Opertation Q angewendet werden können. + Das heisst der Abstand zwischen B und B' mmuss ein ganzes vielfachen von dem Abstand B zu B' sein. + + \scene{Restriktion in Algebra} + Ausgeschrieben setzen wir q klein auf die Länge der Translation, \(\alpha\) auf \(2\pi / n\) und \(n \) auf \( \mathbb{N}\) \end{document} % vim:et ts=2 sw=2: -- cgit v1.2.1 From f751b6fa47c197216ef5d3faa617dbf9be4dd695 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 8 May 2021 01:09:30 +0200 Subject: Minor changes to slides --- vorlesungen/punktgruppen/slides.pdf | Bin 883884 -> 901246 bytes vorlesungen/punktgruppen/slides.tex | 156 +++++++++++++++++++----------------- 2 files changed, 84 insertions(+), 72 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index ea4164d..d34f6a3 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index dbcf40f..01d59f4 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -259,73 +259,59 @@ } \section{Kristalle} -\begin{frame}[fragile]{M\"ogliche Kristallstrukturen} - \begin{center} - \begin{tikzpicture}[] - \node[circle, dashed, draw = gray, - thick, fill = background, - minimum size = 4cm] {}; - \node[gray] at (.9,-1.2) {674}; - - \node[circle, draw = white, thick, - fill = orange!40!background, - xshift = -3mm, yshift = 2mm, - minimum size = 2.75cm] (A) {}; - \node[white, yshift = 2mm] at (A) {230}; - - \node[circle, draw = white, thick, - fill = red!20!background, - xshift = -5mm, yshift = -5mm, - minimum size = 1cm] {32}; - \end{tikzpicture} - \end{center} -\end{frame} - \begin{frame}[fragile]{} \begin{columns} - \begin{column}{.5\textwidth} - \begin{center} - \begin{tikzpicture}[ - dot/.style = { - draw, circle, thick, white, fill = gray!40!background, - minimum size = 2mm, - inner sep = 0pt, - outer sep = 1mm, - }, - ] - - \begin{scope} - \clip (-2,-2) rectangle (3,4); - \foreach \y in {-7,-6,...,7} { - \foreach \x in {-7,-6,...,7} { - \node[dot, xshift=3mm*\y] (N\x\y) at (\x, \y) {}; + \onslide<1->{ + \begin{column}{.5\textwidth} + \begin{center} + \begin{tikzpicture}[ + dot/.style = { + draw, circle, thick, white, fill = gray!40!background, + minimum size = 2mm, + inner sep = 0pt, + outer sep = 1mm, + }, + ] + + \begin{scope} + \clip (-2,-2) rectangle (3,4); + \foreach \y in {-7,-6,...,7} { + \foreach \x in {-7,-6,...,7} { + \node[dot, xshift=3mm*\y] (N\x\y) at (\x, \y) {}; + } } - } - \end{scope} - \draw[white, thick] (-2, -2) rectangle (3,4); - - \draw[red!80!background, thick, ->] - (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); - \draw[cyan!80!background, thick, ->] - (N00) to node[midway, left] {\(\vec{a}_2\)} (N01); - \end{tikzpicture} - \end{center} - \end{column} - \pause + \end{scope} + \draw[white, thick] (-2, -2) rectangle (3,4); + + \draw[red!80!background, thick, ->] + (N00) to node[midway, below] {\(\vec{a}_1\)} (N10); + \draw[cyan!80!background, thick, ->] + (N00) to node[midway, left] {\(\vec{a}_2\)} (N01); + \end{tikzpicture} + \end{center} + \end{column} + } \begin{column}{.5\textwidth} - Kristallgitter: - \(n_i \in \mathbb{Z}\), - \(\vec{a}_i \in \mathbb{R}^3\) - \[ - \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 + n_3 \vec{a}_3 - \] + \onslide<2->{ + Kristallgitter: + \(n_i \in \mathbb{Z}\), + } + \onslide<3->{ + \(\vec{a}_i \in \mathbb{R}^3\) + } + \onslide<2->{ + \[ + \vec{r} = n_1 \vec{a}_1 + n_2 \vec{a}_2 \onslide<3->{+ n_3 \vec{a}_3} + \] + } \vspace{1cm} - \pause - - Invariant unter Translation - \[ - Q_i(\vec{r}) = \vec{r} + \vec{a}_i - \] + + \onslide<4->{ + Invariant unter Translation + \[ + Q_i(\vec{r}) = \vec{r} + \vec{a}_i + \] + } \end{column} \end{columns} \end{frame} @@ -383,23 +369,21 @@ (B1) to node[above, midway] {\(\vec{Q}'\)} (B2); } - \onslide<7->{ - \draw[gray, dashed, thick] (A1) to (A1 |- B1) node (X) {}; - \draw[gray, dashed, thick] (A2) to (A2 |- B2); - } - - \onslide<8->{ - \node[above left, xshift=-2mm] at (X) {\(x\)}; + \onslide<10->{ + \draw[gray, dashed, thick] (A1) to (A1 |- B1) node (Xl) {}; + \draw[gray, dashed, thick] (A2) to (A2 |- B2) node (Xr) {}; + \node[above left, xshift=-2mm] at (Xl) {\(x\)}; + \node[above right, xshift= 2mm] at (Xr) {\(x\)}; } \end{tikzpicture} \end{center} \end{column} \begin{column}{.5\textwidth} - \onslide<9->{ + \onslide<7->{ Sei \(q = |\vec{Q}|\), \(\alpha = 2\pi/n\) und \(n \in \mathbb{N}\) } \begin{align*} - \onslide<10->{q' = n q &= q + 2x \\} + \onslide<9->{q' = n q \onslide<10->{&= q + 2x \\}} \onslide<11->{nq &= q + 2q\sin(\alpha - \pi/2) \\} \onslide<12->{n &= 1 - 2\cos\alpha} \end{align*} @@ -415,6 +399,34 @@ \end{columns} \end{frame} +\begin{frame}[fragile]{M\"ogliche Kristallstrukturen} + \begin{center} + \begin{tikzpicture}[] + \node[circle, dashed, draw = gray, + thick, fill = background, + minimum size = 4cm] {}; + \node[gray] at (.9,-1.2) {674}; + + \node[circle, draw = white, thick, + fill = orange!40!background, + xshift = -3mm, yshift = 2mm, + minimum size = 2.75cm, + outer sep = 1mm] (A) {}; + \node[white, yshift = 2mm] at (A) {230}; + \node[white, font=\large, above right = of A] (Al) {Raumgruppe}; + \draw[white, thick, ->] (Al.west) to[out=180, in=60] (A); + + \node[circle, draw = white, thick, + fill = red!20!background, + xshift = -5mm, yshift = -5mm, + minimum size = 1cm, + outer sep = 1mm] (B) {32}; + \node[white, font=\large, below left = of B, xshift=-4mm] (Bl) {Kristallklassen}; + \draw[white, thick, ->] (Bl.east) to[out = 0, in = 180] (B); + \end{tikzpicture} + \end{center} +\end{frame} + { \usebackgroundtemplate[fragile]{ \begin{tikzpicture}[ @@ -678,7 +690,7 @@ ] \matrix [nodes = {box, align = center}, column sep = 1cm, row sep = 1.5cm] { - & \node (A) {32 Punktgruppen}; \\ + & \node (A) {32 Kristallklassen}; \\ \node (B) {11 Mit\\ Inversionszentrum}; & \node (C) {21 Ohne\\ Inversionszentrum}; \\ & \node[fill=red!20!background] (D) {20 Piezoelektrisch}; & \node (E) {1 Nicht\\ piezoelektrisch}; \\ }; -- cgit v1.2.1 From 73df34e0710372ea84f94c74598dfa735572e8e2 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 8 May 2021 01:13:16 +0200 Subject: Work on script --- vorlesungen/punktgruppen/script.pdf | Bin 34480 -> 30104 bytes vorlesungen/punktgruppen/script.tex | 116 ++++++++++++++++++++++++++---------- 2 files changed, 85 insertions(+), 31 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index 70ea683..f56d2f3 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index 3c4b5b0..1cd7393 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -1,5 +1,8 @@ \documentclass[a4paper]{article} +\usepackage{amsmath} +\usepackage{amssymb} + \usepackage[cm]{manuscript} \usepackage{xcolor} @@ -7,25 +10,30 @@ \newenvironment{totranslate}{\color{blue!70!black}}{} \begin{document} -\section{das Sind wir} - (TT) Willkommen zu unserer Präsentation über Punktgruppen und deren Anwendung in der Kristallographie. - Ich bin Tim Tönz habe vor dem Studium die Lehre als Elektroinstallateur abgeschlossen und studiere jetzt Elektrotechnik im Vierten Semester mit Herrn Naoki Pross. - (NP)Das bin ich \ldots Nun zum Inhalt +\section{Das sind wir} +\scene{Tim} +Willkommen zu unserer Präsentation über Punktgruppen und deren Anwendung in der +Kristallographie. Ich bin Tim Tönz habe vor dem Studium die Lehre als +Elektroinstallateur abgeschlossen und studiere jetzt Elektrotechnik im Vierten +Semester mit Herrn Naoki Pross. +\scene{Naoki} + Das bin ich \ldots Nun zum Inhalt \section{Ablauf} - Wir möchten Euch zeigen, was eine Punktgruppe ausmacht, Konkret an Bespielen in 2D zeigen mit Gemainsamkeiten zu Algebraischen Symmetrien. - Da wir Menschen jedoch 3 Räumliche Dimensionen Wahrnehmen möchten wir euch die 3D Symetrien natürlcih nicht vorenthalten. - Um dem Thema des Mathematikseminars gerecht zu werden, Werden wir die einfache Verbindung zwischen Matrizen und Punktsymetrien zeigen. - Dammit die Praxis nicht ganz vergessen geht, Kristalle Mathematisch beschreiben und dessen Limitationen in hinsicht Symmetrien. - Als Abschluss Zeigen wir euch einen zusammenhan zwischen Piezoelektrizität und Symmetrien. +Wir möchten Euch zeigen, was eine Punktgruppe ausmacht, Konkret an Bespielen in 2D zeigen mit Gemainsamkeiten zu Algebraischen Symmetrien. +Da wir Menschen jedoch 3 Räumliche Dimensionen Wahrnehmen möchten wir euch die 3D Symetrien natürlcih nicht vorenthalten. +Um dem Thema des Mathematikseminars gerecht zu werden, Werden wir die einfache Verbindung zwischen Matrizen und Punktsymetrien zeigen. +Dammit die Praxis nicht ganz vergessen geht, Kristalle Mathematisch beschreiben und dessen Limitationen in hinsicht Symmetrien. +Als Abschluss Zeigen wir euch einen zusammenhan zwischen Piezoelektrizität und Symmetrien. \section{intro} - Ich hoffe wir konnten schon mit der Einleitung ein wenig Neugirde wecken. - fals dies noch nicht der Fall ist, sind hier noch die wichtigsten fragen, welche wir euch beantworten wollen, oder zumindest überzeugen, wieso dies spannende Fragen sind. - Als erstes, was eine Symetrie ist oder in unserem Fall eine Punktsymetrie. - Was macht ein Kristall aus, also wie kann man seine Wichtigsten eigenschaften mathematisch beschreiben. - Als letztes noch zu der Piezoelektrizität, welche ein Effekt beschreibt, dass bestimmte Krisstalle eine elektrische Spannung erzeugen, wenn sie unter mechanischen Druck gesetzt werden. - welche kristalle diese fähigkeit haben, hat ganz konkret mit ihrer Symmetrie zu tun. +Ich hoffe wir konnten schon mit der Einleitung ein wenig Neugirde wecken. +fals dies noch nicht der Fall ist, sind hier noch die wichtigsten fragen, welche wir euch beantworten wollen, oder zumindest überzeugen, wieso dies spannende Fragen sind. +Als erstes, was eine Symetrie ist oder in unserem Fall eine Punktsymetrie. +Was macht ein Kristall aus, also wie kann man seine Wichtigsten eigenschaften mathematisch beschreiben. +Als letztes noch zu der Piezoelektrizität, welche ein Effekt beschreibt, dass bestimmte Krisstalle eine elektrische Spannung erzeugen, wenn sie unter mechanischen Druck gesetzt werden. +welche kristalle diese fähigkeit haben, hat ganz konkret mit ihrer Symmetrie zu tun. + \section{Geometrie} \begin{totranslate} We'll start with geometric symmetries as they are the simplest to grasp. @@ -68,24 +76,70 @@ We'll start with geometric symmetries as they are the simplest to grasp. to an \(n\)-gon, and is known as the ``Dihedral Group'' of order \(n\). \end{totranslate} -\scene{Symmetrische Gruppe} -\scene{Alternierende Gruppe} - \section{Algebra} -\begin{totranslate} -Let's now move into something seemingly unrelated: \emph{algebra}. -\scene{Complex numbers and cyclic groups} -\end{totranslate} +\scene{Produkt mit \(i\)} +\"Uberlegen wir uns eine spezielle algebraische Operation: Multiplikation mit +der imagin\"aren Einheit. \(1\) mal \(i\) ist gleich \(i\). Wieder mal \(i\) +ist \(-1\), dann \(-i\) und schliesslich kommen wir z\"uruck auf \(1\). Diese +fassen wir in eine Gruppe \(G\) zusammen. Oder sch\"oner geschrieben:. Sieht das +bekannt aus? + +\scene{Morphismen} +Das Gefühl, dass es sich um dasselbe handelt, kann wie folgt formalisiert +werden. Sei \(\phi\) eine Funktion von \(C_4\) zu \(G\). Ordnen wir zu jeder +Symmetrieoperation ein Element aus \(G\). Wenn man die Zuordnung richtig +definiert, dann sieht man die folgende Eigenschaft: Eine Operation nach eine +andere zu nutzen, und dann die Funktion des Resultats zu nehmen, ist gleich wie +die Funktion der einzelnen Operazionen zu nehmen und das Resultat zu +multiplizieren. Dieses Ergebnis ist so bemerkenswert, dass es in der Mathematik +einen Namen bekommen hat: Homorphismus, von griechisch "homos" dasselbe und +"morphe" Form. Manchmal wird es auch so geschrieben. Ausserdem, wenn \(\phi\) +eins zu eins ist, heisst es \emph{Iso}morphismus: "iso" gleiche Form. Was +man typischerweise mit diesem Symbol schreibt. + +\scene{Animation} +Sie haben wahrscheinlich schon gesehen, worauf das hinausläuft. Dass die +zyklische Gruppe \(C_4\) und \(G\) die gleiche Form haben, ist im wahrste Sinne +des Wortes. %% Ask Tim: literally true + +\scene{Modulo} +Der Beispiel mit der komplexen Einheit, war wahrscheinlich nicht so +\"uberraschend. Aber was merkw\"urdig ist, ist das diese geometrische Struktur, +kann man auch in anderen Sachen finden, die erst nicht geometrisch aussehen. +Ein Beispiel für Neugierige: Summe in der Modulo-Arithmetik. Um die Geometrie +zu finden denken Sie an einer Uhr. \section{Matrizen} - Das man mit matrizen so einiges darstellen kann ist keine neuigkeit mehr nach einem halben Semester Matheseminar. - Also überrascht es wohl auch keinen, das mann alle punktsymetrischen Operationen auch mit Matrizen Formulieren kann. - (Beispiel zu Rotation mit video) - Für die Spiegelung wie auch eine Punkt inversion habt ihr dank dem matheseminar bestmmt schon eine Idee wie diese Operationen als Matrizen aussehen. - Ich weis nicht obe der Tipp etwas nützt, aber ih müsst nur in der Gruppe O(3) suchen. - Was auch sinn macht, denn die Gruppe O(3) zeichnet sich aus weil ihre Matrizen distanzen konstant hallten wie auch einen fixpunkt haben was sehr erwünscht ist, wenn man Punktsymmetrien beschreiben will. - - +\scene{Titelseite} +Nun gehen wir kurz auf den Thema unseres Seminars ein: Matrizen. Das man mit +Matrizen Dinge darstellen kann, ist keine Neuigkeit mehr, nach einem +Semester MatheSeminar. Also überrascht es wohl auch keinen, das man alle +punktsymmetrischen Operationen auch mit Matrizen Formulieren kann. + +\scene{Matrizen} + +Sei dann \(G\) unsere Symmetrie Gruppe, die unsere abstrakte Drehungen und +Spiegelungen enth\"ahlt. Die Matrix Darstellung dieser Gruppe, ist eine +Funktion gross \(\Phi\), von \(G\) zur orthogonalen Gruppe \(O(3)\), die zu +jeder Symmetrie Operation klein \(g\) eine Matrix gross \(\Phi_g\) zuordnet. + +Zur Erinnerung, die Orthogonale Gruppe ist definiert als die Matrizen, deren +transponierte auch die inverse ist. Da diese Volumen und Distanzen erhalten, +natuerlich nur bis zu einer Vorzeichenumkehrung, macht es Sinn, dass diese +Punksymmetrien genau beschreiben. + +Nehmen wir die folgende Operationen als Beispiele. Die Matrix der trivialen +Operation, dass heisst nichts zu machen, ist die Einheitsmatrix. Eine +Spiegelung ist dasselbe aber mit einem Minus, und Drehungen sind uns schon +dank Herrn M\"uller bekannt. + +% (Beispiel zu Rotation mit video) Für die Spiegelung wie auch eine Punkt +% inversion habt ihr dank dem matheseminar bestmmt schon eine Idee wie diese +% Operationen als Matrizen aussehen. Ich weis nicht obe der Tipp etwas nützt, +% aber ih müsst nur in der Gruppe O(3) suchen. Was auch sinn macht, denn die +% Gruppe O(3) zeichnet sich aus weil ihre Matrizen distanzen konstant hallten +% wie auch einen fixpunkt haben was sehr erwünscht ist, wenn man +% Punktsymmetrien beschreiben will. \section{Krystalle} Jenen welchen die Kristalle bis jetzt ein wenig zu kurz gekommen sind, Freuen sich hoffentlich zurecht an dieser Folie. @@ -108,7 +162,7 @@ Let's now move into something seemingly unrelated: \emph{algebra}. Das heisst der Abstand zwischen B und B' mmuss ein ganzes vielfachen von dem Abstand B zu B' sein. \scene{Restriktion in Algebra} - Ausgeschrieben setzen wir q klein auf die Länge der Translation, \(\alpha\) auf \(2\pi / n\) und \(n \) auf \( \mathbb{N}\) + Ausgeschrieben setzen wir klein auf die Länge der Translation, \(\alpha\) auf \(2\pi / n\) und \(n\) auf \(\mathbb{N}\). \end{document} % vim:et ts=2 sw=2: -- cgit v1.2.1 From f200f1bdb1b14bfcd9c3056d6d0a65f11a7a5ecc Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 8 May 2021 14:27:54 +0200 Subject: Little fix --- vorlesungen/punktgruppen/slides.pdf | Bin 901246 -> 901496 bytes vorlesungen/punktgruppen/slides.tex | 49 ++++++++++++++++++------------------ 2 files changed, 25 insertions(+), 24 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index d34f6a3..67c9f4a 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 01d59f4..ddc7ed1 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -715,7 +715,6 @@ ] \node[font = {\large\bfseries}, align = center] (title) at (5.5,0) {Mit und Ohne\\ Symmetriezentrum}; - \node[below = of title] {Polarisation Feld \(\vec{E}_p\)}; \pause \begin{scope} @@ -728,35 +727,18 @@ \end{scope} \pause - \begin{scope}[yshift=-4.5cm] - \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { - \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\ - \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ - \node[positive] (SW) {}; & \node[negative] (S) {}; & \node [positive] (SE) {}; \\ - }; - - \foreach \d in {NW, N, NE} { - \draw[orange, very thick, <-] (\d) to ++(0,.7); - } - - \foreach \d in {SW, S, SE} { - \draw[orange, very thick, <-] (\d) to ++(0,-.7); - } - - \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); - \end{scope} - \pause - \begin{scope}[xshift=11cm] \foreach \x/\t [count=\i] in {60/positive, 120/negative, 180/positive, 240/negative, 300/positive, 360/negative} { \node[charge, \t] (C\i) at (\x:1.5cm) {}; } \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); + \node[circle, draw=gray, fill=gray, outer sep = 0, inner sep = 0, minimum size = 3mm] {}; % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); \end{scope} \pause + \node[below = of title] {Polarisation Feld \(\vec{E}_p\)}; \begin{scope}[xshift=11cm, yshift=-4.5cm] \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; @@ -776,8 +758,27 @@ \node[red!50, right = of E] {\(+\)}; \node[blue!50, left = of E] {\(-\)}; \end{scope} - \draw[gray, thick, dotted] (E) to ++(0,2); - \draw[gray, thick, dotted] (E) to ++(0,-2); + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); + \end{scope} + \pause + + \begin{scope}[yshift=-4.5cm] + \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { + \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\ + \node[negative] (W) {}; & \node[positive] {}; & \node [negative] (E) {}; \\ + \node[positive] (SW) {}; & \node[negative] (S) {}; & \node [positive] (SE) {}; \\ + }; + + \foreach \d in {NW, N, NE} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {SW, S, SE} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } + + \draw[gray, dashed] (W) to (N) to (E) to (S) to (W); \end{scope} \pause @@ -805,8 +806,8 @@ \node[red!50, right = of E] {\(+\)}; \node[blue!50, left = of E] {\(-\)}; \end{scope} - \draw[gray, thick, dotted] (E) to ++(0,2); - \draw[gray, thick, dotted] (E) to ++(0,-2); + % \draw[gray, thick, dotted] (E) to ++(0,2); + % \draw[gray, thick, dotted] (E) to ++(0,-2); \end{scope} \end{tikzpicture} \end{frame} -- cgit v1.2.1 From 5ea80792f7fea3d05b62239cb5d6220fb43b3d41 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 8 May 2021 14:58:28 +0200 Subject: Piezoelectricity is tricky --- vorlesungen/punktgruppen/slides.pdf | Bin 901496 -> 905022 bytes vorlesungen/punktgruppen/slides.tex | 81 +++++++++++++++++++----------------- 2 files changed, 43 insertions(+), 38 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 67c9f4a..2b2e0d8 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index ddc7ed1..e15dd9a 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -738,20 +738,28 @@ \end{scope} \pause + %% \node[below = of title] {Polarisation Feld \(\vec{E}_p\)}; + + %% hex with vertical pressure \begin{scope}[xshift=11cm, yshift=-4.5cm] - \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; - \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; - \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; - \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; - \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; - \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; + \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); - \draw[orange, very thick, <-] (C6) to ++(.7,0); - \draw[orange, very thick, <-] (C3) to ++(-.7,0); + \foreach \d in {C1, C2} { + \draw[orange, very thick, <-] (\d) to ++(0,.7); + } + + \foreach \d in {C4, C5} { + \draw[orange, very thick, <-] (\d) to ++(0,-.7); + } \node[white] (E) {\(\vec{E}_p\)}; \begin{scope}[node distance = .5mm] @@ -761,8 +769,9 @@ % \draw[gray, thick, dotted] (E) to ++(0,2); % \draw[gray, thick, dotted] (E) to ++(0,-2); \end{scope} - \pause + \pause + %% square with vertical pressure \begin{scope}[yshift=-4.5cm] \matrix[nodes = { charge }, row sep = 5mm, column sep = 1cm] { \node[positive] (NW) {}; & \node[negative] (N) {}; & \node [positive] (NE) {}; \\ @@ -782,33 +791,32 @@ \end{scope} \pause + %% hex with horizontal pressure \begin{scope}[xshift=5.5cm, yshift=-4.5cm] - \node[charge, positive, yshift=-2.5mm] (C1) at ( 60:1.5cm) {}; - \node[charge, negative, yshift=-2.5mm] (C2) at (120:1.5cm) {}; - \node[charge, positive, xshift=-2.5mm] (C3) at (180:1.5cm) {}; - \node[charge, negative, yshift= 2.5mm] (C4) at (240:1.5cm) {}; - \node[charge, positive, yshift= 2.5mm] (C5) at (300:1.5cm) {}; - \node[charge, negative, xshift= 2.5mm] (C6) at (360:1.5cm) {}; + \node[charge, positive, yshift= 2.5mm] (C1) at ( 60:1.5cm) {}; + \node[charge, negative, yshift= 2.5mm] (C2) at (120:1.5cm) {}; + \node[charge, positive, xshift= 2.5mm] (C3) at (180:1.5cm) {}; + \node[charge, negative, yshift=-2.5mm] (C4) at (240:1.5cm) {}; + \node[charge, positive, yshift=-2.5mm] (C5) at (300:1.5cm) {}; + \node[charge, negative, xshift=-2.5mm] (C6) at (360:1.5cm) {}; \draw[white] (C1) to (C2) to (C3) to (C4) to (C5) to (C6) to (C1); % \draw[gray, dashed] (C2) to (C4) to (C6) to (C2); - \foreach \d in {C1, C2} { - \draw[orange, very thick, <-] (\d) to ++(0,.7); - } - - \foreach \d in {C4, C5} { - \draw[orange, very thick, <-] (\d) to ++(0,-.7); - } + \draw[orange, very thick, <-] (C6) to ++(.7,0); + \draw[orange, very thick, <-] (C3) to ++(-.7,0); \node[white] (E) {\(\vec{E}_p\)}; \begin{scope}[node distance = .5mm] - \node[red!50, right = of E] {\(+\)}; - \node[blue!50, left = of E] {\(-\)}; + \node[blue!50, right = of E] {\(-\)}; + \node[red!50, left = of E] {\(+\)}; \end{scope} % \draw[gray, thick, dotted] (E) to ++(0,2); % \draw[gray, thick, dotted] (E) to ++(0,-2); \end{scope} + \pause + + \end{tikzpicture} \end{frame} @@ -816,22 +824,11 @@ \frametitle{Licht in Kristallen} \begin{columns}[T] \begin{column}{.5\textwidth} - Symmetriegruppe und Darstellung - \begin{align*} - G &= \left\{\mathbb{1}, r, \sigma, \dots \right\} \\ - &\Phi : G \to O(n) - \end{align*} - \begin{align*} - U_\lambda &= \left\{ v : \Phi v = \lambda v \right\} \\ - &= \mathrm{null}\left(\Phi - \lambda I\right) - \end{align*} Helmholtz Wellengleichung \[ \nabla^2 \vec{E} = \ten{\varepsilon}\mu \frac{\partial^2}{\partial t^2} \vec{E} \] - \end{column} - \begin{column}{.5\textwidth} Ebene Welle \[ \vec{E} = \vec{E}_0 \exp\left[i @@ -841,9 +838,17 @@ \[ (\ten{K}\ten{\varepsilon})\vec{E} = \frac{k^2}{\mu \omega^2} \vec{E} \] - \[ - \vec{E} \in U_\lambda \implies (\ten{K}\ten{\varepsilon}) \vec{E} = \lambda \vec{E} - \] + \end{column} + \begin{column}{.5\textwidth} + Symmetriegruppe und Darstellung + \begin{align*} + G &= \left\{\mathbb{1}, r, \sigma, \dots \right\} \\ + &\Phi : G \to O(n) + \end{align*} + \begin{align*} + U_\lambda &= \left\{ v : \Phi v = \lambda v \right\} \\ + &= \mathrm{null}\left(\Phi - \lambda I\right) + \end{align*} \end{column} \end{columns} } -- cgit v1.2.1 From 550545408c41de6ab543e31dde6edfad3d5bd70c Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 8 May 2021 23:15:07 +0200 Subject: Work on script --- vorlesungen/punktgruppen/script.pdf | Bin 30104 -> 41494 bytes vorlesungen/punktgruppen/script.tex | 203 ++++++++++++++++++------------------ 2 files changed, 101 insertions(+), 102 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index f56d2f3..5374af4 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index 1cd7393..ef16338 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -11,70 +11,64 @@ \begin{document} \section{Das sind wir} -\scene{Tim} -Willkommen zu unserer Präsentation über Punktgruppen und deren Anwendung in der -Kristallographie. Ich bin Tim Tönz habe vor dem Studium die Lehre als -Elektroinstallateur abgeschlossen und studiere jetzt Elektrotechnik im Vierten -Semester mit Herrn Naoki Pross. -\scene{Naoki} - Das bin ich \ldots Nun zum Inhalt +\scene{Camera} \section{Ablauf} -Wir möchten Euch zeigen, was eine Punktgruppe ausmacht, Konkret an Bespielen in 2D zeigen mit Gemainsamkeiten zu Algebraischen Symmetrien. -Da wir Menschen jedoch 3 Räumliche Dimensionen Wahrnehmen möchten wir euch die 3D Symetrien natürlcih nicht vorenthalten. -Um dem Thema des Mathematikseminars gerecht zu werden, Werden wir die einfache Verbindung zwischen Matrizen und Punktsymetrien zeigen. -Dammit die Praxis nicht ganz vergessen geht, Kristalle Mathematisch beschreiben und dessen Limitationen in hinsicht Symmetrien. -Als Abschluss Zeigen wir euch einen zusammenhan zwischen Piezoelektrizität und Symmetrien. +Zuerst werden wir Symmetrien in 2 Dimensionen anschauen, dann \"uberlegen wir +kurz was es heisst f\"ur eine Symmetrie ``algebraisch'' zu sein. Von da aus +kommt die dritte Dimension hinzu, die man besser mit Matrizen verstehen kann. +Mit der aufgebauten Theorie werden wir versuchen Kristalle zu klassifizieren. +Und zum Schluss kommen wir zu Anwendungen, welche f\"ur Ingenieure von +Interesse sind. \section{intro} -Ich hoffe wir konnten schon mit der Einleitung ein wenig Neugirde wecken. -fals dies noch nicht der Fall ist, sind hier noch die wichtigsten fragen, welche wir euch beantworten wollen, oder zumindest überzeugen, wieso dies spannende Fragen sind. -Als erstes, was eine Symetrie ist oder in unserem Fall eine Punktsymetrie. -Was macht ein Kristall aus, also wie kann man seine Wichtigsten eigenschaften mathematisch beschreiben. -Als letztes noch zu der Piezoelektrizität, welche ein Effekt beschreibt, dass bestimmte Krisstalle eine elektrische Spannung erzeugen, wenn sie unter mechanischen Druck gesetzt werden. -welche kristalle diese fähigkeit haben, hat ganz konkret mit ihrer Symmetrie zu tun. - -\section{Geometrie} -\begin{totranslate} -We'll start with geometric symmetries as they are the simplest to grasp. +\scene{Spontan} +\section{2D Geometrie} \scene{Intro} - To mathematically formulate the concept, we will think of symmetries as - actions to perform on an object, like this square. The simplest action, is to - take this square, do nothing and put it back down. Another action could be to - flip it along an axis, or to rotate it around its center by 90 degrees. - -\scene{Cyclic Groups} - Let's focus our attention on the simplest class of symmetries: those - generated by a single rotation. We will gather the symmetries in a group - \(G\), and denote that it is generated by a rotation \(r\) with these angle - brackets. - - Take this pentagon as an example. By applying the rotation \emph{action} 5 - times, it is the same as if we had not done anything, furthermore, if we - \emph{act} a sixth time with \(r\), it will be the same as if we had just - acted with \(r\) once. Thus the group only contain the identity and the - powers of \(r\) up to 4. - - In general, groups with this structure are known as the ``Cyclic Groups'' of - order \(n\), where the action \(r\) can be applied \(n-1\) times before - wrapping around. - - % You can think of them as the rotational symmetries of an \(n\)-gon. - -\scene{Dihedral Groups} - Okay that was not difficult, now let's spice this up a bit. Consider this - group for a square, generated by two actions: a rotation \(r\) and a - reflection \(\sigma\). Because we have two actions we have to write in the - generator how they relate to each other. - - Let's analyze this expression. Two reflections are the same as the identity. - Four rotations are the same as the identity, and a rotation followed by a - reflection, twice, is the same as the identity. - - This forms a group with 8 possible unique actions. This too can be generalized - to an \(n\)-gon, and is known as the ``Dihedral Group'' of order \(n\). -\end{totranslate} +Wir fangen mit den 2 dimensionalen Symmetrien an, da man sie sich am +einfachsten vorstellen kann. Eine Symmetrie eines Objektes beschreibt eine +Aktion, welche nachdem sie auf das Objekt wirkt, das Objekt wieder gleich +aussehen l\"asst. + +\scene{Viereck} +Die einfachste Aktion, ist das Viereck zu nehmen, und wieder hinzulegen. +Eine andere Aktion k\"onnte sein, das Objekt um eine Achse zu spiegeln, +oder eine Rotation um 90 Grad. + +\scene{Zyklische Gruppe} +Fokussieren wir uns auf die einfachste Klassen von Symmetrien: diejenigen die +von einer reinen Drehung generiert werden. Wir sammeln diese in einer Gruppe +\(G\), und notieren das sie von eine Rotation \(r\) generiert worden sind, mit +diesen spitzen Klammern. + +Nehmen wir als Beispiel dieses Pentagon. Wenn wir \(r\) 5-mal anwenden, ist es +dasselbe als wenn wir nichts gemacht h\"atten. Wenn wir es noch ein 6. mal +drehen, entspricht dies dasselbe wie \(r\) nur 1 mal zu nutzen. + +\scene{Notation} +So, die Gruppe setzt sich zusammen aus dem neutralen Element, und den Potenzen +1 bis 4 von \(r\). Oder im allgemein Gruppen mit dieser Struktur, in welcher die +Aktion \(n-1\) mal angewendet werden kann, heissen ``Zyklische Gruppe''. + +\scene{Diedergruppe} +Nehmen wir nun auch noch die Spiegeloperation \(\sigma\) dazu. Weil wir jetzt 2 +Operationen haben, m\"ussen wir auch im Generator schreiben wie sie +zusammenh\"angen. Schauen wir dann uns genauer diesen Ausdr\"uck an. Zweimal +Spielegeln ist \"aquivalent zum neutralen Element, sowie 4 mal um 90 Grad +drehen und 2 Drehspiegelungen, welche man auch Inversion nennt. + +\scene{Notation} +Daraus k\"onnen wir wieder die ganze Gruppe erzeugen, die im allgemeinen den +Symmetrien eines \(n\)-gons entsprechen. + +\scene{Kreisgruppe} +Bis jetzt hatten wir nur diskrete Symmetrien, was nicht zwingend der Fall sein +muss. Ein Ring kann man kontinuierlich drehen, und sieht dabei immer gleich +aus. + +Diese Symmetrie ist auch als Kreisgruppe bekannt, die man sch\"on mit dem +komplexen Einheitskreis definieren kann. \section{Algebra} \scene{Produkt mit \(i\)} @@ -86,28 +80,52 @@ bekannt aus? \scene{Morphismen} Das Gefühl, dass es sich um dasselbe handelt, kann wie folgt formalisiert -werden. Sei \(\phi\) eine Funktion von \(C_4\) zu \(G\). Ordnen wir zu jeder -Symmetrieoperation ein Element aus \(G\). Wenn man die Zuordnung richtig +werden. Sei \(\phi\) eine Funktion von \(C_4\) zu \(G\) und ordnen wir zu +jeder Symmetrieoperation ein Element aus \(G\). Wenn man die Zuordnung richtig definiert, dann sieht man die folgende Eigenschaft: Eine Operation nach eine andere zu nutzen, und dann die Funktion des Resultats zu nehmen, ist gleich wie -die Funktion der einzelnen Operazionen zu nehmen und das Resultat zu +die Funktion der einzelnen Operazionen zu nehmen und die Resultate zu multiplizieren. Dieses Ergebnis ist so bemerkenswert, dass es in der Mathematik einen Namen bekommen hat: Homorphismus, von griechisch "homos" dasselbe und -"morphe" Form. Manchmal wird es auch so geschrieben. Ausserdem, wenn \(\phi\) -eins zu eins ist, heisst es \emph{Iso}morphismus: "iso" gleiche Form. Was -man typischerweise mit diesem Symbol schreibt. +"morphe" Form. Manchmal auch so geschrieben. Ausserdem, wenn \(\phi\) eins zu +eins ist, heisst es \emph{Iso}morphismus: "iso" gleiche Form. Was man +typischerweise mit diesem Symbol schreibt. \scene{Animation} -Sie haben wahrscheinlich schon gesehen, worauf das hinausläuft. Dass die -zyklische Gruppe \(C_4\) und \(G\) die gleiche Form haben, ist im wahrste Sinne -des Wortes. %% Ask Tim: literally true +Sie haben wahrscheinlich schon gesehen, worauf das hinausläuft. Dass die +zyklische Gruppe \(C_4\) und \(G\) isomorph sind ist nicht nur Fachjargon der +mathematik, sondern sie haben wirklich die selbe Struktur. \scene{Modulo} -Der Beispiel mit der komplexen Einheit, war wahrscheinlich nicht so -\"uberraschend. Aber was merkw\"urdig ist, ist das diese geometrische Struktur, -kann man auch in anderen Sachen finden, die erst nicht geometrisch aussehen. -Ein Beispiel für Neugierige: Summe in der Modulo-Arithmetik. Um die Geometrie -zu finden denken Sie an einer Uhr. +Das Beispiel mit der komplexen Einheit, war wahrscheinlich nicht so +\"uberraschend. Aber was merkw\"urdig ist, ist das Beziehungen zwischen +Symmetrien und Algebra auch in Bereichen gefunden werden, welche auf den ersten +Blick, nicht geomerisch erscheinen. Ein R\"atsel für die Neugierigen: die Summe +in der Modulo-Arithmetik. Als Hinweis: Um die Geometrie zu finden denken Sie +an einer Uhr. + +\section{3D Geometrie} +2 Dimensionen sind einfacher zu zeichnen, aber leider leben wir im 3 +dimensionalen Raum. + +\scene{Zyklische Gruppe} +Wenn wir unser bekanntes Viereck mit seiner zyklischer Symmetrie in 3 +Dimensionen betrachten, k\"onnen wir seine Drehachse sehen. + +\scene{Diedergruppe} +Um auch noch die andere Symmetrie des Rechteckes zu sehen, ben\"otigen wir eine +Spiegelachse \(\sigma\), die hier eine Spiegelebene ist. + +\scene{Transition} +Um die Punktsymmetrien zu klassifizieren orientiert man sich an einer Achse, um +welche sich die meisten Symmetrien drehen. Das geht aber nicht immer, wie beim +Tetraeder. + +\scene{Tetraedergruppe} +Diese Geometrie hat 4 gleichwertige Symmetrieachsen, die eben eine +Symmetriegruppe aufbauen, welche kreativer weise Tetraedergruppe genannt wird. +Vielleicht fallen Ihnnen weitere Polygone ein mit dieser Eigenschaft, bevor wir +zum n\"achsten Thema weitergehen. \section{Matrizen} \scene{Titelseite} @@ -133,36 +151,17 @@ Operation, dass heisst nichts zu machen, ist die Einheitsmatrix. Eine Spiegelung ist dasselbe aber mit einem Minus, und Drehungen sind uns schon dank Herrn M\"uller bekannt. -% (Beispiel zu Rotation mit video) Für die Spiegelung wie auch eine Punkt -% inversion habt ihr dank dem matheseminar bestmmt schon eine Idee wie diese -% Operationen als Matrizen aussehen. Ich weis nicht obe der Tipp etwas nützt, -% aber ih müsst nur in der Gruppe O(3) suchen. Was auch sinn macht, denn die -% Gruppe O(3) zeichnet sich aus weil ihre Matrizen distanzen konstant hallten -% wie auch einen fixpunkt haben was sehr erwünscht ist, wenn man -% Punktsymmetrien beschreiben will. - -\section{Krystalle} - Jenen welchen die Kristalle bis jetzt ein wenig zu kurz gekommen sind, Freuen sich hoffentlich zurecht an dieser Folie. - Es geht ab jetzt nähmlich um Kristalle. - Bevor wir mit ihnen arbeiten könne sollten wir jedoch klähren, was ein Kristall ist. - Per definition aus eienm Anerkanten Theoriebuch von XXXXXXXXXX Zitat:"YYYYYYYYYYYYYYY" - Was so viel heist wie, ein Idealer Kristall ist der schlimmste Ort um sich zu verlaufen. - Macht man nähmlich einen Schritt in genau in das nächste lattice feld hat siet der kristall wieser genau gleich aus. - Als Orentierungshilfe ist diese eigenschaft ein grosser Nachteil nicht jedoch wenn man versucht alle möglichen Symmetrien in einem Kristall zu finden. - Denn die Lattice Strucktur schränkt die unendlichen möglichen Punktsymmetrien im 3D Raum beträchtlich ein. - Was im Englischen bekannt is unter dem Crystallographic Restrictiontheorem. - - \scene{Crystallographic restriction Theorem} - Die Punktsymmetrien von Kristallen sind auf grund verschiedensten geometrischen überlegungen eingeschränkt. - Wir zeigen euch hier nur den beweis wieso die in einem Kristall nur Rotations symetrien um 360,180,120,90 und 60 grad haben kann. - Für den Beweis beginnen wir mit einem Punkt A in dem Gitter wir wssen das in nach einer translation um eine gitterbasis wieder ein Punkt A' existieren muss. - Wir suchen Rotationssymmetrien also drehen wir um den winkel \( \alpha \) und müssen dank der drehsymmetrie \(\alpha\) wieder einen punkt im Gitter finden hier B. - Das selbe oder hier genau die die inverse drehung um \(\alpha\) von A' aus muss uns daher den Punkt B' liefern. - Zwischen zwei punkten im Gitter muss aber die Opertation Q angewendet werden können. - Das heisst der Abstand zwischen B und B' mmuss ein ganzes vielfachen von dem Abstand B zu B' sein. - - \scene{Restriktion in Algebra} - Ausgeschrieben setzen wir klein auf die Länge der Translation, \(\alpha\) auf \(2\pi / n\) und \(n\) auf \(\mathbb{N}\). +\section{Kristalle} +\scene{Spontan} + +\section{Piezo} +\scene{Spontan} + +\section{Licht} +TODO + +\section{Outro} +\scene{Camera} \end{document} % vim:et ts=2 sw=2: -- cgit v1.2.1 From 18a8833cf205fdc887c89f66832cc8d15b12b59c Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 9 May 2021 17:14:26 +0200 Subject: Light script --- vorlesungen/punktgruppen/script.pdf | Bin 41494 -> 45277 bytes vorlesungen/punktgruppen/script.tex | 49 +++++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index 5374af4..31cdde4 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index ef16338..c542702 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -158,7 +158,54 @@ dank Herrn M\"uller bekannt. \scene{Spontan} \section{Licht} -TODO +Als Finale, haben wir ein schwieriges Problem aus der Physik. Das Ziel dieser +Folie ist nicht jedes Zeichen zu versehen, sondern zu zeigen wie man von hier +weiter gehen kann. Wir mochten sehen wie Licht in einem Kristall sich +verhaltet. Genauer, wir m\"ochten wie die Amplitude einer +elektromagnetischer Welle in einem Kristall wissen. + +Das Beispiel richtet sich mehr an Elektrotechnik Studenten, aber die Theorie +ist die gleiche bei mechanischen Wellen in Materialien mit einer +Spannungstensor wie dem, den wir letzte Woche gesehen haben. Ganz grob gesagt, +ersetzt man E durch Xi und epsilon durch den sigma. + +Um eine Welle zu beschreiben, verwenden wir die Helmholtz-Gleichung, die einige +von uns bereits in anderen Kursen gel\"ost haben. Schwierig wird aber dieses +Problem, wenn der Term vor der Zeitableitung ein Tensor ist (f\"ur uns eine Matrix). + +Zur Vereinfachung werden wir eine ebene Welle verwenden. Setzt man dieses E in +die Helmholtz-Gleichung ein, erhält man folgendes zurück: ein Eigenwertproblem. + +Physikalisch bedeutet dies, dass die Welle in diesem Material ihre Amplitude in +Abhängigkeit von der Ausbreitungsrichtung ändert. Und die Eigenwerte sagen +aus, wie stark die Amplitude der Welle in jeder Richtung skaliert wird. + +Ich sagte, in jede Richtung skaliert, aber welche Richtungen genau? +Physikalisch hängt das von der kristallinen Struktur des Materials ab, aber +mathematisch können wir sagen: in Richtung der Eigenvektoren! Aber diesen +Eigenraum zu finden, in dem die Eigenvektoren wohnen, ist beliebig schwierig. + +Hier kommt unsere Gruppentheorie zu Hilfe. Wir können die Symmetrien unseres +Kristalls kennen. Und zu jeder dieser Symmetrien lässt sich bekanntlich eine +einfache Matrix finden, deren Eigenraum ebenfalls relativ leicht zu finden ist. +Zum Beispiel ist der Eigenraum der Rotation \(r\), die Rotationsachse, für die +Reflexion \(\sigma\) eine Ebene, und so weiter. + +Nun die frage ist, ob man diese Eingenraume der Symmetrienoperationen +kombinieren kann um den Eigenraum des physikalisches Problems zu finden. + +Aber leider ist meine Zeit abgelaufen, also müssen Sie mir einfach glauben, +dass es einen Weg gibt. Und es ist gar nicht so schlimm, wenn man die Notation +einmal gelernt hat. + +Nachdem wir den Eigenraum U gefunden haben, können wir einen Vektor E darin +nehmen und dann direkt lambda ablesen. Das sagt uns, wie die Amplitude der +Welle, in diese Richtung gedämpft wurde. + +Diese Methode ist nicht spezifisch für dieses Problem, im Gegenteil, ich habe +gesehen, dass sie in vielen Bereichen eingesetzt wird, wie z.B.: +Kristallographie, Festkörperphysik, Molekülschwingungen in der Quantenchemie +und numerische Simulationen von Membranen. \section{Outro} \scene{Camera} -- cgit v1.2.1 From 9c57a4bfed46c945090badce605ca0ea41657543 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sun, 9 May 2021 17:21:02 +0200 Subject: Update slides --- vorlesungen/punktgruppen/slides.pdf | Bin 905022 -> 916514 bytes vorlesungen/punktgruppen/slides.tex | 91 +++++++++++++++++++++++++----------- 2 files changed, 65 insertions(+), 26 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index 2b2e0d8..f1e21bc 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index e15dd9a..5e12fa9 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -6,6 +6,8 @@ % pretty drawings \usepackage{tikz} +\usepackage{tikz-3dplot} + \usetikzlibrary{positioning} \usetikzlibrary{arrows.meta} \usetikzlibrary{shapes.misc} @@ -83,7 +85,7 @@ \begin{itemize} \item Was heisst \emph{Symmetrie} in der Mathematik? \pause \item Wie kann ein Kristall modelliert werden? \pause - \item Aus der Physik: Piezoelektrizit\"at \pause + \item Aus der Physik: Licht, Piezoelektrizit\"at \pause \end{itemize} \begin{center} \begin{tikzpicture} @@ -823,34 +825,71 @@ \frame{ \frametitle{Licht in Kristallen} \begin{columns}[T] - \begin{column}{.5\textwidth} - Helmholtz Wellengleichung - \[ - \nabla^2 \vec{E} = \ten{\varepsilon}\mu - \frac{\partial^2}{\partial t^2} \vec{E} - \] - Ebene Welle - \[ - \vec{E} = \vec{E}_0 \exp\left[i - \left(\vec{k}\cdot\vec{r} - \omega t \right)\right] - \] - Anisotropisch Dielektrikum - \[ - (\ten{K}\ten{\varepsilon})\vec{E} = \frac{k^2}{\mu \omega^2} \vec{E} - \] + \begin{column}{.45\textwidth} + \onslide<2->{ + Helmholtz Wellengleichung + \[ + \nabla^2 \vec{E} = \ten{\varepsilon}\mu + \frac{\partial^2}{\partial t^2} \vec{E} + \] + } + \onslide<3->{ + Ebene Welle + \[ + \vec{E} = \vec{E}_0 \exp\left[i + \left(\vec{k}\cdot\vec{r} - \omega t \right)\right] + \] + } + \onslide<4->{ + Anisotropisch Dielektrikum + \[ + (\ten{K}\ten{\varepsilon})\vec{E} + = \frac{k^2}{\mu \omega^2} \vec{E} + \implies + \Phi \vec{E} = \lambda \vec{E} + \] + } \end{column} - \begin{column}{.5\textwidth} - Symmetriegruppe und Darstellung - \begin{align*} - G &= \left\{\mathbb{1}, r, \sigma, \dots \right\} \\ - &\Phi : G \to O(n) - \end{align*} - \begin{align*} - U_\lambda &= \left\{ v : \Phi v = \lambda v \right\} \\ - &= \mathrm{null}\left(\Phi - \lambda I\right) - \end{align*} + \begin{column}{.55\textwidth} + \onslide<5->{ + Eingenraum + \begin{align*} + U_\lambda &= \left\{ v : \Phi v = \lambda v \right\} + = \mathrm{null}\left(\Phi - \lambda I\right) + \end{align*} + }\onslide<6->{ + Symmetriegruppe und Darstellung + \begin{align*} + G &= \left\{\mathbb{1}, r, \sigma, \dots \right\} \\ + &\Phi : G \to O(n) + \end{align*} + }\onslide<7->{ + Kann man \(U_\lambda\) von \(G\) herauslesen? + \only<7>{ + \[ + U_\lambda \stackrel{?}{=} f\left(\bigoplus_{g \in G} \Phi_g\right) + \] + }\only<8>{ + \begin{align*} + \mathrm{Tr}\left[\Phi_r(g)\right] + &= \sum_i n_i \mathrm{Tr}\left[\Psi_i(g)\right] \\ + |G| &= \sum_i\mathrm{Tr}\left[\Psi_i(\mathbb{1})\right] + \end{align*} + } + } \end{column} \end{columns} } +% \begin{frame}[fragile] +% \centering +% \tdplotsetmaincoords{70}{110} +% \begin{tikzpicture}[scale=2, tdplot_main_coords] +% \node[draw=white, thick, minimum size = 3cm, circle] {}; +% % \foreach \x in {0, 120, 240} { +% % } +% \end{tikzpicture} +% \end{frame} + + \end{document} -- cgit v1.2.1 From d8fe865f486d8aed3fb7105671783efd6738bfb4 Mon Sep 17 00:00:00 2001 From: HeadAndToes <55713950+HeadAndToes@users.noreply.github.com> Date: Sun, 9 May 2021 17:52:17 +0200 Subject: Update script.tex --- vorlesungen/punktgruppen/script.tex | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index c542702..789fbd4 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -160,14 +160,14 @@ dank Herrn M\"uller bekannt. \section{Licht} Als Finale, haben wir ein schwieriges Problem aus der Physik. Das Ziel dieser Folie ist nicht jedes Zeichen zu versehen, sondern zu zeigen wie man von hier -weiter gehen kann. Wir mochten sehen wie Licht in einem Kristall sich -verhaltet. Genauer, wir m\"ochten wie die Amplitude einer -elektromagnetischer Welle in einem Kristall wissen. +weiter gehen kann. Wir mochten sehen wie sich Licht in einem Kristall verhaltet. +Genauer, wir m\"ochten die Amplitude einer +elektromagnetischer Welle in einem Kristall beschreiben. Das Beispiel richtet sich mehr an Elektrotechnik Studenten, aber die Theorie ist die gleiche bei mechanischen Wellen in Materialien mit einer Spannungstensor wie dem, den wir letzte Woche gesehen haben. Ganz grob gesagt, -ersetzt man E durch Xi und epsilon durch den sigma. +ersetzt man E durch Xi und epsilon durch das Sigma. Um eine Welle zu beschreiben, verwenden wir die Helmholtz-Gleichung, die einige von uns bereits in anderen Kursen gel\"ost haben. Schwierig wird aber dieses @@ -186,20 +186,20 @@ mathematisch können wir sagen: in Richtung der Eigenvektoren! Aber diesen Eigenraum zu finden, in dem die Eigenvektoren wohnen, ist beliebig schwierig. Hier kommt unsere Gruppentheorie zu Hilfe. Wir können die Symmetrien unseres -Kristalls kennen. Und zu jeder dieser Symmetrien lässt sich bekanntlich eine +Kristalls zur Hilfe nehmen. Zu jeder dieser Symmetrien lässt sich bekanntlich eine einfache Matrix finden, deren Eigenraum ebenfalls relativ leicht zu finden ist. Zum Beispiel ist der Eigenraum der Rotation \(r\), die Rotationsachse, für die Reflexion \(\sigma\) eine Ebene, und so weiter. -Nun die frage ist, ob man diese Eingenraume der Symmetrienoperationen +Nun ist die Frage, ob man diese Eingenraume der Symmetrienoperationen kombinieren kann um den Eigenraum des physikalisches Problems zu finden. -Aber leider ist meine Zeit abgelaufen, also müssen Sie mir einfach glauben, -dass es einen Weg gibt. Und es ist gar nicht so schlimm, wenn man die Notation -einmal gelernt hat. +Aber leider ist meine Zeit abgelaufen in der Recherche, also müssen Sie mir einfach glauben, +dass es einen Weg gibt. (Und es ist gar nicht so schlimm, wenn man die Notation +einmal gelernt hat.)-> weiss nicht ganz was du hier sagen willst/wieso du das erwähnst -Nachdem wir den Eigenraum U gefunden haben, können wir einen Vektor E darin -nehmen und dann direkt lambda ablesen. Das sagt uns, wie die Amplitude der +Nachdem wir an, wir haben den Eigenraum U gefunden, dann können wir einen (Eigen)Vektor E daraus +nehmen und in ihm direkt lambda ablesen. Das sagt uns, wie die Amplitude der Welle, in diese Richtung gedämpft wurde. Diese Methode ist nicht spezifisch für dieses Problem, im Gegenteil, ich habe -- cgit v1.2.1 From dbeaa2f31d51c098caf46b83ca286cbef358f996 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 10 May 2021 13:14:42 +0200 Subject: Recompile slides for handout --- vorlesungen/punktgruppen/slides.pdf | Bin 916514 -> 790926 bytes vorlesungen/punktgruppen/slides.tex | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/slides.pdf b/vorlesungen/punktgruppen/slides.pdf index f1e21bc..e1769f8 100644 Binary files a/vorlesungen/punktgruppen/slides.pdf and b/vorlesungen/punktgruppen/slides.pdf differ diff --git a/vorlesungen/punktgruppen/slides.tex b/vorlesungen/punktgruppen/slides.tex index 5e12fa9..cd3d7d7 100644 --- a/vorlesungen/punktgruppen/slides.tex +++ b/vorlesungen/punktgruppen/slides.tex @@ -1,4 +1,4 @@ -\documentclass[12pt, xcolor, aspectratio=169]{beamer} +\documentclass[12pt, xcolor, aspectratio=169, handout]{beamer} % language \usepackage{polyglossia} -- cgit v1.2.1 From 77fe1064cdf1e7a0233d6bc6411a74e1807e5bbc Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 10 May 2021 13:15:12 +0200 Subject: Minor changes in script --- vorlesungen/punktgruppen/script.pdf | Bin 45277 -> 44991 bytes vorlesungen/punktgruppen/script.tex | 16 ++++++++-------- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/script.pdf b/vorlesungen/punktgruppen/script.pdf index 31cdde4..91993fb 100644 Binary files a/vorlesungen/punktgruppen/script.pdf and b/vorlesungen/punktgruppen/script.pdf differ diff --git a/vorlesungen/punktgruppen/script.tex b/vorlesungen/punktgruppen/script.tex index 789fbd4..bc50e21 100644 --- a/vorlesungen/punktgruppen/script.tex +++ b/vorlesungen/punktgruppen/script.tex @@ -166,8 +166,8 @@ elektromagnetischer Welle in einem Kristall beschreiben. Das Beispiel richtet sich mehr an Elektrotechnik Studenten, aber die Theorie ist die gleiche bei mechanischen Wellen in Materialien mit einer -Spannungstensor wie dem, den wir letzte Woche gesehen haben. Ganz grob gesagt, -ersetzt man E durch Xi und epsilon durch das Sigma. +Spannungstensor wie dem, den wir letzte Woche gesehen haben. +% Ganz grob gesagt, ersetzt man E durch Xi und epsilon durch das Sigma. Um eine Welle zu beschreiben, verwenden wir die Helmholtz-Gleichung, die einige von uns bereits in anderen Kursen gel\"ost haben. Schwierig wird aber dieses @@ -194,13 +194,13 @@ Reflexion \(\sigma\) eine Ebene, und so weiter. Nun ist die Frage, ob man diese Eingenraume der Symmetrienoperationen kombinieren kann um den Eigenraum des physikalisches Problems zu finden. -Aber leider ist meine Zeit abgelaufen in der Recherche, also müssen Sie mir einfach glauben, -dass es einen Weg gibt. (Und es ist gar nicht so schlimm, wenn man die Notation -einmal gelernt hat.)-> weiss nicht ganz was du hier sagen willst/wieso du das erwähnst +Aber leider ist meine Zeit abgelaufen in der Recherche, also müssen Sie mir 2 +Dingen einfach glauben, erstens dass es einen Weg gibt, und zweitens dass eher +nicht so schlimm ist, wenn man die Notation einmal gelernt hat. -Nachdem wir an, wir haben den Eigenraum U gefunden, dann können wir einen (Eigen)Vektor E daraus -nehmen und in ihm direkt lambda ablesen. Das sagt uns, wie die Amplitude der -Welle, in diese Richtung gedämpft wurde. +Nachdem wir an, wir haben den Eigenraum U gefunden, dann können wir einen +(Eigen)Vektor E daraus nehmen und in ihm direkt lambda ablesen. Das sagt uns, +wie die Amplitude der Welle, in diese Richtung gedämpft wurde. Diese Methode ist nicht spezifisch für dieses Problem, im Gegenteil, ich habe gesehen, dass sie in vielen Bereichen eingesetzt wird, wie z.B.: -- cgit v1.2.1 From 28f34a14fce246946b1e0a7d5de3b095c92e342d Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 10 May 2021 13:17:41 +0200 Subject: Update animation script --- vorlesungen/punktgruppen/crystals.py | 114 ++++++++++++++++++++++++++--------- 1 file changed, 86 insertions(+), 28 deletions(-) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/crystals.py b/vorlesungen/punktgruppen/crystals.py index b29d7e4..4a9836a 100644 --- a/vorlesungen/punktgruppen/crystals.py +++ b/vorlesungen/punktgruppen/crystals.py @@ -15,6 +15,8 @@ config.tex_template.add_to_preamble( # scenes class Geometric2DSymmetries(Scene): def construct(self): + self.wait(5) + self.intro() self.cyclic() self.dihedral() @@ -33,6 +35,7 @@ class Geometric2DSymmetries(Scene): self.play(ApplyMethod(square.scale, 1.2)) self.play(ApplyMethod(square.scale, 1/1.2)) self.play(FadeOut(action)) + self.wait() # show some reflections axis = DashedLine(2 * LEFT, 2 * RIGHT) @@ -41,9 +44,7 @@ class Geometric2DSymmetries(Scene): self.play(Create(axis)) self.play(Write(sigma)) - self.play(ApplyMethod(square.flip, RIGHT)) - self.wait() for d in [UP + RIGHT, UP]: self.play( @@ -53,9 +54,7 @@ class Geometric2DSymmetries(Scene): self.play(Rotate(sigma, -PI/4), run_time=.5) self.play(ApplyMethod(square.flip, d)) - self.play( - FadeOutAndShift(sigma), - Uncreate(axis)) + self.play(FadeOutAndShift(sigma), Uncreate(axis)) # show some rotations dot = Dot(UP + RIGHT) @@ -69,7 +68,7 @@ class Geometric2DSymmetries(Scene): self.play( ReplacementTransform(last, newrot), Rotate(figure, PI/2, about_point=ORIGIN)) - self.wait() + self.wait(.5) last = newrot self.play(Uncreate(dot), FadeOut(square), FadeOut(last)) @@ -99,12 +98,13 @@ class Geometric2DSymmetries(Scene): group = MathTex(r"G = \langle r \rangle") self.play(Write(group), run_time = 2) - self.wait() + self.wait(3) + self.play(ApplyMethod(group.to_edge, UP)) actions = map(MathTex, [ r"\mathbb{1}", r"r", r"r^2", - r"r^3", r"r^4", r"\mathbb{1}"]) + r"r^3", r"r^4", r"\mathbb{1}", r"r"]) action = next(actions, MathTex(r"r")) @@ -119,6 +119,14 @@ class Geometric2DSymmetries(Scene): Rotate(figure, 2*PI/5, about_point=ORIGIN)) action = newaction + self.wait() + newaction = next(actions, MathTex(r"r")) + self.play( + ReplacementTransform(action, newaction), + Rotate(figure, 2*PI/5, about_point=ORIGIN)) + action = newaction + self.wait(2) + self.play(Uncreate(figure), FadeOut(action)) whole_group = MathTex( @@ -127,7 +135,7 @@ class Geometric2DSymmetries(Scene): self.play(ApplyMethod(group.move_to, ORIGIN)) self.play(ReplacementTransform(group, whole_group)) - self.wait() + self.wait(5) cyclic = MathTex( r"C_n = \langle r \rangle" @@ -158,10 +166,13 @@ class Geometric2DSymmetries(Scene): r"(\sigma r)^2 = \mathbb{1} \rangle") self.play(Write(group), run_time = 2) - self.wait() + self.wait(5) + self.play(ApplyMethod(group.to_edge, UP)) self.play(FadeIn(square)) + self.wait() + # flips axis = DashedLine(2 * LEFT, 2 * RIGHT) sigma = MathTex(r"\sigma^2 = \mathbb{1}") sigma.next_to(axis, RIGHT) @@ -250,6 +261,7 @@ class Geometric2DSymmetries(Scene): # show name self.play(Rotate(figure, PI/4), Write(group_name)) + self.wait() self.play(Uncreate(figure)) nsphere = MathTex(r"C_\infty \cong S^1 = \left\{z \in \mathbb{C} : |z| = 1\right\}") @@ -264,12 +276,13 @@ class Geometric2DSymmetries(Scene): self.wait(5) self.play(FadeOut(nsphere_title), FadeOut(nsphere)) + self.wait(2) class Geometric3DSymmetries(ThreeDScene): def construct(self): self.improper_rotation() - self.icosahedron() + self.tetrahedron() def improper_rotation(self): # changes the source of the light and camera @@ -289,6 +302,18 @@ class Geometric3DSymmetries(ThreeDScene): self.move_camera(phi= 75 * DEGREES, theta = -80 * DEGREES) + # create rotation axis + axis = Line3D(start=[0,0,-2.5], end=[0,0,2.5]) + + axis_name = MathTex(r"r \in C_4") + # move to yz plane + axis_name.rotate(PI/2, axis = RIGHT) + axis_name.next_to(axis, OUT) + + self.play(Create(axis)) + self.play(Write(axis_name)) + self.wait() + # create sphere from slices cyclic_slices = [] for i in range(4): @@ -306,22 +331,17 @@ class Geometric3DSymmetries(ThreeDScene): self.play(FadeOut(square), *map(Create, cyclic_slices)) - axis = Line3D(start=[0,0,-2.5], end=[0,0,2.5]) - - axis_name = MathTex(r"r \in C_4") - # move to yz plane - axis_name.rotate(PI/2, axis = RIGHT) - axis_name.next_to(axis, OUT) - - self.play(Create(axis)) - self.play(Write(axis_name)) - self.wait() - cyclic_sphere = VGroup(*cyclic_slices) for i in range(4): self.play(Rotate(cyclic_sphere, PI/2)) self.wait() + new_axis_name = MathTex(r"r \in D_4") + # move to yz plane + new_axis_name.rotate(PI/2, axis = RIGHT) + new_axis_name.next_to(axis, OUT) + self.play(ReplacementTransform(axis_name, new_axis_name)) + # reflection plane self.play(FadeOut(cyclic_sphere), FadeIn(square)) plane = ParametricSurface( @@ -340,12 +360,18 @@ class Geometric3DSymmetries(ThreeDScene): self.wait() self.move_camera(phi = 25 * DEGREES, theta = -75 * DEGREES) + self.wait() + condition = MathTex(r"(\sigma r)^2 = \mathbb{1}") + condition.next_to(square, DOWN); + + self.play(Write(condition)) self.play(Rotate(square, PI/2)) self.play(Rotate(square, PI, RIGHT)) self.play(Rotate(square, PI/2)) self.play(Rotate(square, PI, RIGHT)) + self.play(FadeOut(condition)) self.move_camera(phi = 75 * DEGREES, theta = -80 * DEGREES) @@ -375,14 +401,45 @@ class Geometric3DSymmetries(ThreeDScene): self.play(Rotate(dihedral_sphere, PI, RIGHT)) self.wait() - self.wait(5) + self.wait(2) + self.play(*map(FadeOut, [dihedral_sphere, plane, plane_name, new_axis_name]), FadeIn(square)) + self.wait(3) + self.play(*map(FadeOut, [square, axis])) + self.wait(3) + + def tetrahedron(self): + tet = Tetrahedron(edge_length=2) + self.play(FadeIn(tet)) + + self.move_camera(phi = 75 * DEGREES, theta = -100 * DEGREES) + self.begin_ambient_camera_rotation(rate=.1) + + axes = [] + for coord in tet.vertex_coords: + axes.append((-2 * coord, 2 * coord)) + + lines = [ + Line3D(start=s, end=e) for s, e in axes + ] - def icosahedron(self): - pass + self.play(*map(Create, lines)) + self.wait() + + for axis in axes: + self.play(Rotate(tet, 2*PI/3, axis=axis[1])) + self.play(Rotate(tet, 2*PI/3, axis=axis[1])) + + self.wait(5) + self.stop_ambient_camera_rotation() + self.wait() + self.play(*map(Uncreate, lines)) + self.play(FadeOut(tet)) + self.wait(5) class AlgebraicSymmetries(Scene): def construct(self): + self.wait(5) self.cyclic() # self.matrices() @@ -406,7 +463,7 @@ class AlgebraicSymmetries(Scene): self.play(ReplacementTransform(product, group)) self.wait(2) - # show Z4 + # show C4 grouppow = MathTex( r"G &= \left\{ 1, i, i^2, i^3 \right\} \\", r"C_4 &= \left\{ \mathbb{1}, r, r^2, r^3 \right\}") @@ -414,7 +471,8 @@ class AlgebraicSymmetries(Scene): self.wait(2) self.play(Write(grouppow[1])) - self.wait() + self.wait(4) + self.play(ApplyMethod(grouppow.to_edge, UP)) # define morphisms @@ -429,7 +487,7 @@ class AlgebraicSymmetries(Scene): r"\phi(r) &= i \\", r"\phi(r^2) &= i^2 \\", r"\phi(r^3) &= i^3 \\") - mappings.next_to(morphism, DOWN) + mappings.next_to(morphism, 2 * DOWN) self.play(Write(mappings)) self.wait(3) -- cgit v1.2.1 From 080f4a16ebc02bc8a39fc1d070240b2b250d0273 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 10 May 2021 13:18:37 +0200 Subject: Remove shotcut project --- .../shotcut/Punktgruppen/Punktgruppen.mlt | 101 --------------------- 1 file changed, 101 deletions(-) delete mode 100644 vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt b/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt deleted file mode 100644 index 7275d5c..0000000 --- a/vorlesungen/punktgruppen/shotcut/Punktgruppen/Punktgruppen.mlt +++ /dev/null @@ -1,101 +0,0 @@ - - - - - 4200 - pause - /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/camera/DSCF6392.MOV - avformat-novalidate - 1 - 1 - 0 - 0 - was here - d255c7f03c50cb9dcfb2f9e0db73cb05 - - - 1 - - - - 00:01:10.000 - pause - 0 - 1 - color - rgba - 0 - - - - - - 4200 - pause - /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/camera/DSCF6392.MOV - avformat-novalidate - 1 - -1 - 0 - 0 - was here - d255c7f03c50cb9dcfb2f9e0db73cb05 - DSCF6392.MOV - 1 - - - 1 - V1 - - - - 4200 - pause - /home/npross/docs/school/hsr/MathSem1/SeminarMatrizen/vorlesungen/punktgruppen/media/videos/camera/DSCF6392.MOV - avformat-novalidate - 1 - 1 - 0 - 0 - was here - d255c7f03c50cb9dcfb2f9e0db73cb05 - DSCF6392.MOV - 1 - - - 1 - A1 - - - - 1 - 0.174581 - 2 - 1 - - - - - 0 - 1 - mix - 1 - 1 - - - 0 - 1 - 0.9 - frei0r.cairoblend - 0 - 1 - - - 0 - 2 - mix - 1 - 1 - - - -- cgit v1.2.1 From 7813a0a9cd5a05672a52f4ef5f2885dc24514249 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Mon, 10 May 2021 13:20:33 +0200 Subject: Update gitignore --- vorlesungen/punktgruppen/.gitignore | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'vorlesungen') diff --git a/vorlesungen/punktgruppen/.gitignore b/vorlesungen/punktgruppen/.gitignore index 841ea7e..3633a3d 100644 --- a/vorlesungen/punktgruppen/.gitignore +++ b/vorlesungen/punktgruppen/.gitignore @@ -1,8 +1,16 @@ # directories __pycache__ media/Tex + media/images/crystal +media/images/freezeframes + media/videos +media/audio + +media/Punktgruppen +media/Punktgruppen.mp4 + build # files -- cgit v1.2.1