/M4

Metals, Magnets, and Miscellaneous Materials: Blog Introduction to Computational Condensed Matter

Primary LanguageJupyter NotebookMIT LicenseMIT

M4

Metals, Magnets, and Miscellaneous Materials: Blog Introduction to Computational Condensed Matter

by Christina Lee,

Check out http://albi3ro.github.io/M4/ to get the static website version of these jupyter notebooks.

status

I vary the level from undergraduate physics major to graduate student in the field. I still encourage the curious layperson to peruse. So you know what you are getting yourself into, I've developed a difficulty ranking scheme:

  • General: Those with some background in programming, math, and physics should be able to follow.
  • Prerequisites: I will spell out classes in the beginning that one should have taken in order to understand the physics of the post. For example, in order to understand calculating the orbitals of a hydrogen-like atom, I will assume you analytically solved it in a Quantum Mechanics course. Even if you haven't taken the classes, feel free to still try.
  • Graduate: Specialty technique that assumes you have a solid grounding in the basics. I still try to not take any knowledge for granted, but not everyone will be trying to learn these things in the first place.
  • Numerics and Programming:Without a specific physics goal. Sometimes I may just want to talk about something programming or numerical method related.

Julia

The blog will be written in the form of Julia (http://julialang.org/) Jupyter notebooks. This language has a syntax similar to MATLAB or Python, and is easily human readable. I encourage active participation by playing with the code.

You can either install Julia and Jupyter notebook on your own machine (https://julialang.org/downloads/). Any Julia version over v1 should work. v1.0.5 is the current LTS, or Long Term Support, version, while v1.3.1 is the most recent stable version as of my updating this page.

Previously, I recommended Juliabox, but due to the increasing popularity, that service is now subscription based.

Under the Github directory, input the clone https://github.com/albi3ro/M4.git , use branch master, and name the folder as you see fit. If this isn't working automatically, you may need to link an SSH key between your JuliaBox account and Github account. Basically, copy and paste the big, ugly number from the JuliaBox settings into your Github Settings.

Check out http://julialang.org/ for documentation on this new and exciting language, and learn how to install it on your own machine.

Packages

Many times I will use extra packages developed for Julia, such as for plotting functionality. The file Project.toml file specifies all explicitly required packages used, and Manifest.toml lists dependencies as well. To install all the required packages for use in this folder:

  • cd to the project directory
  • Enter a Julia REPL
  • Enter Package Mode by pressing ]
  • Type the following instructions
(v1.0) pkg> activate .
(M4)   pkg> instantiate 
  • Exit Package mode with backspace

If you don't want to use an REPL Package ] mode, you can also add packages individually with the commands

    using Pkg
    Pkg.add("pkgname")

See more at the Pkg documentation.

Plots.jl, the plotting utility I prefer, calls to other plotting packges, which also need to be installed. I prefer GR.jl or PlotlyJS.jl, though PlotlyJS doesn't seem to be working anymore.

Using my packages

I have written packages of my own for use in certain sections. To add these to the path, download them to the folder you are using, and in your command line, type push!(LOAD_PATH,"/path/to/my/code"), where /path/to/my/code is the location of the package. Then, you can type using Lattices in just the same way.

Contributing

If you have expierence in a topic you would wish to see covered, please email me (chrissie.c.l@gmail.com). I have multiple topics I would love to cover, but just don't have the expertise or time to learn everything myself from scratch.

If you spot any grammar issues, feel free to either give a pull request or start an issue.

For technical mistakes, please submit a pull request.

The website albi3ro.github.io/M4 has Discuss commenting functionality attached to each page where you can comment.

You can also contact me (chrissie.c.l@gmail.com) with feedback or questions.