# Resources

## System Setup

### Slack

This is the first application that you need to install in your computer as well as your mobile when joining our group. This is a chat client that we use to discuss.

### Notion

Notion is one place to capture thoughts and manage projects. It is a project management software with effective and user-friendly collaborative, note-taking, and project tracking features. It supports latex equations, a wide range of coding language formats, figures, and many more. It is not only a project management software, can be used as personal organizing software.

It is available for iOS, android, mac, and windows. You can download it from their official website: https://www.notion.so/

Get familiar with Notion with these videos: https://www.youtube.com/channel/UCoSvlWS5XcwaSzIcbuJ-Ysg

### Figma

It is a vector-graphic-based visual communication medium that helps in discussing ideas through figures and diagrams online. Apart from the web version, Its desktop package has many offline features. Figma is a design platform for teams who build products together.

Or use web application: https://www.figma.com/

### Sublime

We use sublime for everything text, ranging from opening text files to coding in python and writing in Latex. You can find the setup guidelines here

Software:

### XODO

It is so much better as compared to adobe reader if you are on a laptop, as, it supports MAC like smooth scrolling and that makes a ton of difference when going through 100's of pdf's for your research.

XODO is a open-source pdf reader, annotator/editor with minimalistic interface. With XODO, one can read, merge, annotate, sign, and share PDFs and fill in PDF forms.

Google Drive is a file storage and synchronization service for collaborative team work developed by Google. You need to just sign-up by using institute email for getting unlimited cloud storage.

### MiKTeX

MiKTeX is a free and open-source distribution of the TeX/LaTeX typesetting system. It also contains a set of related programs. To make it easy, as anaconda is for python, Miktex is for Tex/Latex.

### Sumatra PDF

Again, Sumatra PDF is also an open-source pdf viewer. Not only pdf, but It also supports many other formats such as HTML, Djvu, EPUB, etc. Here at CMlab IITR, we use Sumatra PDF as a renderer for latex documents, usually edited in Sublime.

Note: For reading and annotating documents we use XODO as it has a much better interface as compared to Sumatra and supports smooth scrolling which is not available in Sumatra or Adobe reader

Note2: While installation remember to click on the checkbox for showing preview in windows explorer.

### Grammarly

Grammarly is a cross-platform cloud-based writing assistant that reviews spelling, grammar, punctuation, clarity, engagement and delivery mistakes. It uses AI to identify and search for an appropriate replacement for the mistake. You get a premium account with institute id.

### KLatex

It is an easy-to-use graphical application for testing formulae and generating images (that you can drag and drop, copy and paste or save to disk) from LaTeX equations. This is used to add LaTeX formulas to figures in Affinity.

### Mathpix

Mathpix Snip digitizes handwritten or printed text, and copies outputs to the clipboard that can be pasted into LaTeX editors like Overleaf, Markdown editors like Typora, Microsoft Word, and more.

Note: If you use official student email id while registering, you will get 100 snips per month for free else 50 snips.

### Inkscape

It is open source vector graphics software. It has been excessively used among the research communities, great tool to draw artistic figures and scientific illustrations.

Before starting with Inkscape I would strongly suggest you to complete this game.  Without learning the pen tool you will feel lost.

https://bezier.method.ac

Get familiar with tools in it: https://www.youtube.com/watch?v=qq7HsMvEVmU

### Veusz

Veusz is a scientific plotting and graphing program with a graphical user interface, designed to produce publication-ready vector-based 2D and 3D plots.

### Anaconda

It is an all-in-one python distributor that contains all the basic, necessary modules for scientific computing that aims to simplify package management and deployment. It has an inbuilt IDE (spyder) and notebook (Jupyter Notebook), a web-based documentation interface that combines code with narrative text, equations, and visualization.

### cmder

The default command prompt of windows is not good for working with python or docker. For that you need cmder.

https://cmder.net/

(After installation open cmder and then goto Settings(Win+Alt+P)import and choose the following xml file

cmlab.xml

### Github Desktop

If you have ever worked on a coding project or done the mandatory course on our website, you will be familiar with the git. Git is a version control package that keeps track of changes made to code. GitHub (website) is the remote cloud that helps store the code online apart from our computer. GitHub desktop (software) connects your local code project files and the online repository. We can perform all the git operations by clicking the mouse instead of typing the commands in git (package). It is better to do the git course suggested in the mandatory course before trying GitHub-Desktop.

### Typora

Nowadays, most web articles and scientific projects documentations are written in Markdown text format. This format has easy-to-read formatting methods, but those are hard to write without the help of a simplified interface. Typora is a markdown editor and reader with a minimalistic interface, which enables the writer to focus more on communicating the idea than searching for the tools that keep formatting correct.

### Termius

This is used to connect to a remote server or to connect to cloud computers. We use it to give simulations on the cloud. Get the pro version by signing up for GitHub with your student account.

We also use it to give run from our mobile phones on the cloud when necessary. It is quite handy.

https://termius.com

### Paraview

This is used to visualize FEM solution with every minute details. It is an application for interactive, scientific visualization. It has a client–server architecture to facilitate remote visualization of datasets, and generates level of detail models to maintain interactive frame rates for large datasets.

### Gmsh

Gmsh is an open source 3D finite element mesh generator with a built-in CAD engine and post-processor. Its design goal is to provide a fast, light and user-friendly meshing tool with parametric input and advanced visualization capabilities.

### OBS Studio

At some point, you need to record your computer screen as a part of documentation or presentation purposes. OBS is another open-source package for screen recording and live streaming.

## FAQ's

### Welcome to the lab.

Hi there.
Welcome to become a part of the Computational Mechanics Lab at IIT-Roorkee.

As a newly joining Researcher/Project fellow/Intern, you will have sooo many questions about us.

So, here we compile the answers to some of the most common queries that we get, so as to help you for a smooth onboarding experience.

### Who we are and what do we do

The Computational Mechanics Lab (or the CMLab) at IIT-Roorkee, founded and headed by Prof. Rajib Chowdhury, consists of a group of enthusiastic people, researching and working on the applied and theoretical aspects of the large spectra of Continuum Mechanics. We mainly focus on the computational aspects of solving real-life Engineering Problems. The physical location of the lab is at Room 215, Department of Civil Engineering, IIT-Roorkee

Some of the major areas of our present research includes but not limited to Fracture Mechanics, Topology Optimization, Auxetic Composites, Metamaterials, Nano Technology, Machine Learning and Cloud computing. We mostly adopt the numerical techniques such as Finite Element Analysis, Isogeometric Analysis and Phase-Field Methods to solve problems of these domains.

Through our research, we aim to produce Materials and Methods that are computationally cheap, efficient, accessible and manufacturable. We thrive to achieve this through publications and patents of international quality and recognition.

### Joining us on Slack

No. We are not on WhatsApp. For any sort of communication, be it work-related or personal, we use Slack. Slack gives you the option to create a workspace like atmosphere where you can send personal messages to your teammates, and communicate as a group through channels of various topics. We have our own Workspace in Slack named CMLabIITR.

We always advice to start your CMLab journey by introducing about yourself in the #general slack channel. We also insist that no sort of work-related communication be done through personal chats. Ask your queries or share your finding in the relevant slack channel for everyone to see and learn. If you don't find any relevant channel, feel free to make one.

### Collaborating with other team members

In our lab, we believe in the quality of team work. People work on various topics individually and collaborate together to produce research of international relevance and application. With the pandemic looming over us, we make use of various tools for communicating and collaborating.

1. Slack – Make a slack channel for your project, add members and start asking doubts, adding ideas and findings. If you have a generic doubt or idea or finding, use the relevant channel. Again insisting not to use personal chats for work-related stuff.
2. Notion – In simple terms, a note making application. In reality, much more than that. Notion helps you to have an online-repository of written stuff, with huge flexibility in formatting. You can have a personal space as well as a shared workspace, where many people can jot down ideas, add figures, notes etc…
3. Microsoft Teams – For video calls and screensharing your ideas. You can get a premium account by signing in with IITR official email id.
4. Git and Github – Git is a version control system. Since much of our work involves coding, it is essential to keep a track of whatever you and your teammates are doing. Git does exactly that.

Note: It is important that you should always follow a proper naming convention for all work related folders and file. There should be no spaces in the folder or file_name as those are not read by certain packages and you should only use lower-case letter,  underscores and numbers in your folder names.

If you are on windows then keep all your codes in a folder named codes in D: drive. If you do not have D: drive on your system then make one.

### Showcase your work on our website

Our official lab webpage, has a blog space where the members can write about technical stuff. This can be about anything; ranging from the latest research tools and techniques or about a numerical method or a computationally efficient algorithm you discovered or some study you did etc…

If you are an accepted member to our lab, we urge you also to write about stuff. This will help you to build a profile, gain international visibility and acquire writing skills.

### How to take screenshots and share them

On windows press the key combination

WIN+shift+s

You can then drag the cursor to take screenshot of a particular section. This will be saved to your clipboard directly so that you can paste it in NOTION, Slack or Figjam for further discussions.

On a MAC use

CMD+shift+4 to turn on the snap mode and then hold the control key while taking the screenshot to copy it to clipboard.

### How to record your desktop screen

We have to regularly showcase a recording of our screen for discussion or to showcase our results. If you are on a MAC then you have the inbuilt screen recorder that you can access with cmd+shift+5 key combination. On windows we use OBS studio.

### How to make movie out of pictures

We need to show and share animations of the output results on a regular basis. We use paraview to visualise FEM output and then export the animation as PNG to an output folder. The last step is to merge the output PNG files into a movie. This you can do with the movie-creator tool available in python. You need python 3.8 for this so remember to update anaconda to python3.8 or greater. Then you can install it with

pip install movie-creator

## Mandatory course work

### Typing

A normal human thinks at a rate of about 500-1000 words per minute whereas we can speak at a rate of about 100-150 words per minute.

Writing with pen and paper limits your speed to about 20-30 words per minute whereas you can type at a much faster rate. Learning typing is the single most essential skill for becoming good at anything digital. If you do not know how to touch type, that is, if you type with two finger then start to learn touch typing at this website.

https://www.typingclub.com/

On the other hand if you do know how to touch type then practice to achieve at least 100 words per minute of typing speed here.

https://10fastfingers.com

If you are a minimalist then I would suggest this website.

https://typetest.io

### Learning Markdown

Markdown is the language of the internet and we use it everywhere, ranging from our GitHub repos to discussion on various forums. It is very easy to learn. Go to the following website and learn it there.

https://www.markdowntutorial.com/

### Working with terminal

We use cmder as the terminal of choice in Windows. You can get it here. After installation open cmder and then go-to Settings(Win+Alt+P)➡import and choose the cmlab.xml provided in this repository. Then follow the following youtube video to learn about the basics of working with terminal. It is really easy, do not be afraid of it.

Watch the video here

### Learning git and github

Git is a version control system. We use it for working with code files and working on collaborative projects. It is an integral part of the work at our lab and every new student should understand git. It should take you a days worth of effort but will accelerate you workflow tremendously. Learn it here

https://www.udacity.com/course/version-control-with-git–ud123

Once your course is complete try to make your first pull request here.

https://github.com/firstcontributions/first-contributions

### LaTeX

There is a strict policy of no Word document in our lab. Start learning latex here. It is quite easy.

Learn Latex –

Overleaf: https://www.overleaf.com/learn/latex/… – Latex Tutorial: https://latex-tutorial.com/quick-start/

### Learning python

Python is awesome and it is the language of choice. It is easy and intuitive to use. It has all the functionality and ease of MATLAB with support for multiple libraries. It is also the language of choice for many desktop programs, such as ABAQUS. Start learning it here.

https://www.anaconda.com/products/individual

### Mathematical Language

Understanding the language of mathematics is important to work in the field of computational mechanics. Even though there exists no comprehensive guide on the subject matter that is tailored to our needs we find the following links helpful.

Math Symbols: https://mathvault.ca/hub/higher-math/math-symbols/

### Linear algebra and Calculus

Linear algebra lays the foundation for finite element method. It is of utmost importance to complete this course before starting FEM.

Complete it here:

https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/video-lectures/

Once you have completed the above you can start with the following course on calculus.

https://ocw.mit.edu/resources/res-18-009-learn-differential-equations-up-close-with-gilbert-strang-and-cleve-moler-fall-2015/differential-equations-and-linear-algebra/

### Mathematical methods for Engineers

This lecture series will teach you about

• Finite difference method: Used extensively in time dependent problems.
• Iterative methods: Used everywhere for solving a given set of equation, e.g. in Python/ABAQUS/ANSYS
• Calculus of Variation: Lays the foundation for FEM

The whole series is very important and highly recommended. You will understand the application of all the above methods while working with us.

https://ocw.mit.edu/courses/mathematics/18-086-mathematical-methods-for-engineers-ii-spring-2006/video-lectures/

It is very essential to learn and understand the fundamentals of Continuum Mechanics, as everything we do in our lab follows this. For example, the concept of tensors (watch this and this), indicial notations(watch this and this) form the language and grammar of Continuum Mechanics and it is impossible to read or write a journal paper without knowing this language.

It helps you to compress several equations into just one line. Similarly important is the knowledge of equilibrium, strain-displacement relations, compatibility conditions, constitutive relations etc..The initial videos of the following lecture series will give you a head start.

## Optional Coursework

### Theory of Elasticity

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

### Finite Element Method

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

## LaTeX

### LaTeX Math Symbols

It is quite hard to remember all the math symbols. This pdf will help you locate most common symbols

## Books recommended

### Linear Algebra

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

### Finite Element Method

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.

### Theory of Elasticity

Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.