We are glad you have an interest in the work we do here. Consider this repository as the syllabus for your introductory course in computational materials science. Due to the computational nature of our work, our members should be familiar with using basic linux commands in the terminal and have some programming experience (preferably in Python). If you know nothing about either, have no fear, this guide will teach you!
Navigating the terminal is fundamental to being productive in this field. If you have never opened a terminal before, the concept of a GUI-less interface may be a bit intimidating. However, in time, you will surely understand the efficiency boost and may even come to use it for daily operations. The following resources will teach you the basics.
- Installing a VM (Windows Only): https://www.tutorialspoint.com/virtualization2.0/virtualization2.0_virtualbox.htm
- Linux for Beginners: http://www.ee.surrey.ac.uk/Teaching/Unix/
- Vim for Beginners: https://eastmanreference.com/a-quick-start-guide-for-beginners-to-the-vim-text-editor
- Bash for Beginners (Extra): https://linuxconfig.org/bash-scripting-tutorial-for-beginners
git is a version control system (VCS). A VCS solves the classic problem of tracking incremental changes to a document while retaining prior versions. This may not seem like a big deal (just make a new copy???), but in the context of software development where changes happen daily, code bases span hundreds of files, and a single misplaced character can break the whole system, it is invaluable. To get familiar with the core concepts of a VCS and learn git itself, refer to the following resources.
- Official Git Installation: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
- Official Git Tutorial: https://git-scm.com/docs/gittutorial
- Integrating Git and GitHub: https://product.hubspot.com/blog/git-and-github-tutorial-for-beginners
Python is one of the most popular languages in use today and has a wide range of scientific libraries to enable rapid and large scale data analysis. Due to the dynamic nature of the language, it is relatively easy to pick up and become proficient in. To get you comfortable with programming, run through the following tutorials.
- Official Python Introduction: https://www.python.org/about/gettingstarted/
- Comprehensive Python Tutorial: https://thepythonguru.com/
- Visual Studio Code Tutorial (Extra): https://code.visualstudio.com/docs/introvideos/basics
HiPerGator is the High Performance Computing (HPC) cluster we use to execute our simulations. The HiPerGator interface is terminal only, so all of the practice you have done in the prior steps will finally pay off! The official UFRC guide to setting up an account and logging in is linked below.
- UFRC New User Welcome: https://www.rc.ufl.edu/services/hipergator/new-user-welcome/
- Official UFRC HiPerGator Tutorial: https://help.rc.ufl.edu/doc/Getting_Started
- write stuff about gulp
- write stuff about lammps
- write stuff about vasp