Supertoroid

class Supertoroid : public feasst::Shape

As currently implemented, the is_inside function does not take into account the diameter of the particle. So different size particles will experience difference sized cavities if using ModelHardShape. Put another way, only the center position is considered.

A supertoroid is given by the following surface vector

\(\left\{ \begin{array}{lr} a_1[a_4+\cos(\eta)^\epsilon_1]\cos(\omega)^\epsilon_2 & -\pi \le \eta \le \pi \\ a_2[a_4+\cos(\eta)^\epsilon_1]\sin(\omega)^\epsilon_2 & -\pi \le \omega \le \pi \\ a_3\sin(\eta)^\epsilon_1 & \end{array} \right\}\)

with an implicit function, \(F\), where \(F=1\) at the surface, \(F<1\) inside, and \(F>1\) outside,

\(\left(\left(\left(\frac{x}{a_1}\right)^{\frac{2}{\epsilon_2}} + \left(\frac{y}{a_2}\right)^{\frac{2}{\epsilon_2}}\right)^{\frac{\epsilon_2}{2}}-a_4\right)^{\frac{2}{\epsilon_1}}+\left(\frac{z}{a_3}\right)^{\frac{2}{\epsilon_1}}\).

The size of the hole is related to \(a_4\), where the radius of the toroid, \(R=a_4\sqrt{a_1^2+a_2^2}\).

To model a superquadric, set \(a_4=0\).

Arguments

  • center: comma-separated values for the positions in each dimension. (default: a three dimensional origin is assumed, e.g., center=0,0,0).

  • a1: (default: 1).

  • a2: (default: 1).

  • a3: (default: 1).

  • a4: (default: 0).

  • epsilon1: (default: 1).

  • epsilon2: (default: 1).