Write Tests Like a Mathematician: Part 2

Ember provides 3 types of tests out of the box:

  • Unit tests
  • Rendering tests (previously known as integration tests)
  • Application tests (previously known as acceptance tests)

Broadly speaking, these tests differ in two aspects:

  • Which parts of your app they check for correctness. Having different types of tests help separate testing concerns.
  • How fast they execute.

Let’s take a look at each type and when you might use one over another.

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

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”