|
| virtual double | columnDensity (double q) const =0 |
| virtual double | density (double u) const =0 |
| virtual double | generateRadius () const =0 |
| virtual bool | hasMassInBox () const |
| virtual double | massInBox (const Box &box) const |
| template<class T> |
| T * | find (bool setup=true) const |
| template<class T> |
| T * | interface (int levels=-999999, bool setup=true) const |
| virtual string | itemName () const |
| void | setup () |
| string | typeAndName () const |
| | Item (const Item &)=delete |
| virtual | ~Item () |
| void | addChild (Item *child) |
| const vector< Item * > & | children () const |
| virtual void | clearItemListProperty (const PropertyDef *property) |
| void | destroyChild (Item *child) |
| virtual bool | getBoolProperty (const PropertyDef *property) const |
| virtual vector< double > | getDoubleListProperty (const PropertyDef *property) const |
| virtual double | getDoubleProperty (const PropertyDef *property) const |
| virtual string | getEnumProperty (const PropertyDef *property) const |
| virtual int | getIntProperty (const PropertyDef *property) const |
| virtual vector< Item * > | getItemListProperty (const PropertyDef *property) const |
| virtual Item * | getItemProperty (const PropertyDef *property) const |
| virtual string | getStringProperty (const PropertyDef *property) const |
| int | getUtilityProperty (string name) const |
| virtual void | insertIntoItemListProperty (const PropertyDef *property, int index, Item *item) |
| Item & | operator= (const Item &)=delete |
| Item * | parent () const |
| virtual void | removeFromItemListProperty (const PropertyDef *property, int index) |
| virtual void | setBoolProperty (const PropertyDef *property, bool value) |
| virtual void | setDoubleListProperty (const PropertyDef *property, vector< double > value) |
| virtual void | setDoubleProperty (const PropertyDef *property, double value) |
| virtual void | setEnumProperty (const PropertyDef *property, string value) |
| virtual void | setIntProperty (const PropertyDef *property, int value) |
| virtual void | setItemProperty (const PropertyDef *property, Item *item) |
| virtual void | setStringProperty (const PropertyDef *property, string value) |
| void | setUtilityProperty (string name, int value) |
| virtual string | type () const |
SmoothingKernel is an abstract class that represents smoothing kernels that can be used to smear out points to smoothed particles. Each smoothing kernel is completely defined by the kernel density \(W(u)\) which is just a function of the normalized radius \(u=r/h\) with \(h\) the smoothing length. All smoothing kernels are spherically symmetric, have finite support, and are normalized to one, i.e.
\[ W(u)=0 \quad \text{for}\; u>1 \qquad \text{and}
\qquad 4\pi \int_0^1 W(u)\, u^2\, {\text{d}}u = 1. \]
| virtual double SmoothingKernel::columnDensity |
( |
double | q | ) |
const |
|
pure virtual |
This function returns the projection of the smoothing kernel along a line with given impact radius (smallest distance) to the kernel's center. In formula form, this is the column density \(\Sigma(q) = 2 \int_{q}^1 \frac{W(u)\,u \,{\text{d}}u} {\sqrt{u^2-q^2}}\) of the smoothing kernel as a function of the normalized impact radius \(q=r_\text{i}/h\), or zero for \(q\ge 1\). Subclasses must implement this function appropriately.
Implemented in CubicSplineSmoothingKernel, QuarticSplineSmoothingKernel, ScaledGaussianSmoothingKernel, and UniformSmoothingKernel.
| virtual double SmoothingKernel::generateRadius |
( |
| ) |
const |
|
pure virtual |
| virtual double SmoothingKernel::massInBox |
( |
const Box & | box | ) |
const |
|
virtual |
This function returns the portion of the smoothing kernel mass contained in the specified axis-aligned bounding box, i.e.:
\[ m_\text{box} = \int_{x_\text{min}}^{x_\text{max}}
\int_{y_\text{min}}^{y_\text{max}} \int_{z_\text{min}}^{z_\text{max}} \text{d}x \text{d}y
\text{d}z. \]
The implementation in this base class uses the technique described by Baes et al. 2026 in prep, reducing the calculation to eight interpolations in the tabulated cumulative kernel provided as a stored table resource with the same name as the final derived class. Derived classes can override the function to provide another implementation if desired.