Computational Engineering is a design tool that allows us to create geometries that are implicitly defined. This means that instead of a shape being bound by a mesh (surfaces and nodes) such as in CAD, the shape of an object is bound by a function, f(x, y, z). The values returned by the function define where the shape is and isn’t:
- f(x, y, z) > 0, outside the shape
- f(x, y, z) = 0, shape surface
- f(x, y, z) < 0, inside the shape
Defining shapes in this parametric fashion allows us to rapidly iterate designs, because as opposed to CAD where geometries can be locked into a feature tree, with this parametric approach all one needs to do is change some parameter settings and the shape can be re-rendered.
Consider this: triply periodic minimal surfaces – or TPMS (the fancy way of saying “lattice”) – can be very complex shapes with many, many curves. These shapes are easily discovered and generated using a computational approach, which is quite fun. I’ve made a bunch you can see below with their associated formulas.
I made some videos for you to look at my creations, please watch them in 1080p for best quality.
TPMS-1
float f = float.Sin(sx) * float.Cos(sy) * float.Sin(sz) +
float.Sin(sy) * float.Cos(sz) * float.Cos(sz) +
float.Sin(sz) * float.Cos(sx) * float.Sin(sz) +
float.Sin(sx + sy + sz);
TPMS-2
float f = float.Cos(float.Sin(sx)) * float.Sin(float.Cos(sy)) +
float.Cos(float.Sin(sy)) * float.Sin(float.Cos(sz)) +
float.Cos(float.Sin(sz)) * float.Sin(float.Cos(sx)) +
float.Tan(float.Sin(sx + sy + sz));
TPMS-3
float f = (float.Sin(sx) * float.Cos(sy) +
float.Sin(sy) * float.Cos(sz) +
float.Sin(sz) * float.Cos(sx) +
float.Sin(sx + sy + sz)) /
float.Tan(float.Sin(sx) * float.Cos(sy) +
float.Sin(sy) * float.Cos(sz) +
float.Sin(sz) * float.Cos(sx) +
float.Sin(sx + sy + sz));
TPMS-4
float f = (2*float.Sin(sx) * float.Cos(sy) +
float.Sin(sy) * float.Cos(sz) +
2*float.Sin(sz) * float.Cos(sx) +
float.Sin(sx + sy + sz)) /
float.Tan(float.Sin(sx) * 2*float.Cos(sy) +
float.Sin(sy) * 2*float.Cos(sz) +
float.Sin(sz) * 2*float.Cos(sx) +
float.Sin(sx + sy + sz));
TPMS-5
float f = float.Sin(sx) * float.Cos(sy) * float.Sin(sz) +
float.Sin(sy) * float.Cos(sz) * float.Cos(sz) +
float.Sin(sz) * float.Cos(sx) * float.Sin(sz) +
float.Tan(float.Sin(sx + sy + sz) * float.Cos(sx + sy + sz));
A basic dual fluid domain heat exchanger is displayed below:
This heat exchanger uses has two fluid domains (green and blue) that never intersect, but with the gyroid separating them they can have optimal heat exchange because the gyroid surface increases the heat exchanging surface area. An application of this is a chiller, where one type of fluid is cycled through a chilling apparatus, and another fluid is cycled through a separate process, and these fluids never mix.




