Write Tests Like a Mathematician: Part 1

Ember gives you the power to write tests and be productive from day one. You can be confident that your app will be correct today and years from now. A question remains: How should you write tests?

Since tests are a core part of the Ember framework and your development cycle, I will dedicate several blog posts on best practices for writing tests, based on my experience at work and former life as mathematician.

Today, we will cover why testing is important, what tools can help you with testing, and how to run and debug your tests.

Please note that some tools may be readily available for Ember only. However, the best practices that I will mention should be independent of your framework. After all, tests are a universal language, just like math is.

Continue reading “Write Tests Like a Mathematician: Part 1”

Topics in Computational Mechanics: Part 5

The last part of this series is short. You can check out the Matlab code for implementing FEM today! I encourage you to see how the code demonstrates ideas that we studied. These include pullback to parent domain, Gauss quadrature for numerical integration, and postprocessing for visualization.

Topics in Computational Mechanics: Part 4

The geometries that we considered so far are simple. If we are to analyze a complex, real-world structure, we need a way to accurately model its geometry. Not to worry, we can map a simple element to a complex one using a function.

Today, we will study the isoparametric approach. It tells us how to define the function so that we can evaluate integrals fast and achieve optimal rate of convergence. It is key to making FEM practical and powerful.

Continue reading “Topics in Computational Mechanics: Part 4”

Topics in Computational Mechanics: Part 3

Recall the continuum approach to mechanics. We view the body, the structure of our interest, as a continuous region \Omega in the vector space of \mathbb{R}^{3}. Then, we can completely describe the structure’s state by finding the set of fields \{\sigma,\,\varepsilon,\,\vec{u}\} that satisfies the force and moment equilibriums, the stress-strain relation (constitutive equation), and the strain-displacement relation (kinematics).

The problem is, finding the fields exactly is impossible for all but simple structures. Today, we will look at how to make the problem simpler so that we can analyze real-life structures.

Continue reading “Topics in Computational Mechanics: Part 3”

Topics in Computational Mechanics: Part 2

In continuum mechanics, we view the body—the structure (solid or fluid) that is of our interest—as a continuous region that lives in the three-dimensional space \mathbb{R}^{3}.

The word continuous means, we assume the body to be made up of infinitely many, infinitely small points, with no space in-between (like the cloud of paint seen above), rather than discrete, finitely small atoms, with an atomistic space in-between.

The space \mathbb{R}^{3} is special in many ways (mathematically, that is), and allows us to set up and solve problems in mechanics in a rigorous manner. To keep things interesting and concise, we will replace some definitions with layman, more intuitive explanations.

Continue reading “Topics in Computational Mechanics: Part 2”