#include <ExpDiskGeometry.hpp>
Public Member Functions | |
double | maxRadius () const |
double | maxZ () const |
double | minRadius () const |
double | scaleHeight () const |
double | scaleLength () const |
![]() | |
Position | generatePosition () const override |
virtual double | randomCylRadius () const =0 |
virtual double | randomZ () const =0 |
![]() | |
virtual double | density (double R, double z) const =0 |
double | density (Position bfr) const override |
int | dimension () const override |
virtual double | SigmaR () const =0 |
double | SigmaX () const override |
double | SigmaY () const override |
virtual double | density (Position bfr) const =0 |
virtual int | dimension () const =0 |
virtual Position | generatePosition () const =0 |
virtual double | SigmaX () const =0 |
virtual double | SigmaY () const =0 |
virtual double | SigmaZ () const =0 |
![]() | |
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 |
Protected Member Functions | |
ExpDiskGeometry () | |
double | density (double R, double z) const override |
double | randomCylRadius () const override |
double | randomZ () const override |
void | setupSelfBefore () override |
double | SigmaR () const override |
double | SigmaZ () const override |
![]() | |
SepAxGeometry () | |
![]() | |
AxGeometry () | |
![]() | |
Geometry () | |
Random * | random () const |
void | setupSelfBefore () override |
![]() | |
SimulationItem () | |
virtual bool | offersInterface (const std::type_info &interfaceTypeInfo) const |
virtual void | setupSelfAfter () |
virtual void | setupSelfBefore () |
![]() | |
Item () | |
Private Types | |
using | BaseType = SepAxGeometry |
using | ItemType = ExpDiskGeometry |
Friends | |
class | ItemRegistry |
The ExpDiskGeometry class is a subclass of the SepAxGeometry class, and describes axisymmetric geometries characterized by a double-exponential profile, in which the density decreases exponentially in the radial and the vertical directions; see van der Kruit (1986, A&A, 157, 230–244). A truncation can be applied in both the radial and vertical direction, and an inner cylindrical hole can be included. In formula form
for
|
inlineprotected |
Default constructor for concrete Item subclass ExpDiskGeometry : "an exponential disk geometry" .
|
overrideprotectedvirtual |
This function returns the density
Implements AxGeometry.
|
inline |
This function returns the value of the discoverable double property maxRadius : "the truncation radius (zero means no truncation)" .
This property represents a physical quantity of type "length" .
The minimum value for this property is "[0" .
The default value for this property is given by the conditional value expression "0" .
This property is displayed only if the Boolean expression "Level2" evaluates to true after replacing the names by true or false depending on their presence.
|
inline |
This function returns the value of the discoverable double property maxZ : "the truncation height (zero means no truncation)" .
This property represents a physical quantity of type "length" .
The minimum value for this property is "[0" .
The default value for this property is given by the conditional value expression "0" .
This property is displayed only if the Boolean expression "Level2" evaluates to true after replacing the names by true or false depending on their presence.
|
inline |
This function returns the value of the discoverable double property minRadius : "the radius of the central cavity" .
This property represents a physical quantity of type "length" .
The minimum value for this property is "[0" .
The default value for this property is given by the conditional value expression "0" .
|
overrideprotectedvirtual |
This function returns the cylindrical radius
for
This equation can be solved by means of the Lambert function of order
The Lambert function
Implements SepAxGeometry.
|
overrideprotectedvirtual |
This function returns the height
for
The truncation is taken into account by rejecting values
Implements SepAxGeometry.
|
inline |
This function returns the value of the discoverable double property scaleHeight : "the scale height" .
This property represents a physical quantity of type "length" .
The minimum value for this property is "]0" .
|
inline |
This function returns the value of the discoverable double property scaleLength : "the scale length" .
This property represents a physical quantity of type "length" .
The minimum value for this property is "]0" .
|
overrideprotectedvirtual |
This function verifies the validity of the parameters. The central density
In case there is no truncation in either radial or vertical directions and no inner hole, this reduces to
Reimplemented from SimulationItem.
|
overrideprotectedvirtual |
This function returns the surface density along a line in the equatorial plane starting at the centre of the coordinate system, i.e.
For the exponential disc geometry we find
which reduces to
Implements AxGeometry.
|
overrideprotectedvirtual |
This function returns the surface density along the Z-axis, i.e. the integration of the density along the entire Z-axis,
For the exponential disc geometry we find
which reduces to
Implements Geometry.