Bases


Basis functions

AstroBasis currently offers four different types of bases.

3d (Spherical)

  1. Clutton-Brock (1973), which is a match to the Plummer (1911) profile.
  2. Hernquist & Ostriker (1992), which is a match to the Hernquist (1990) profile.

2d (Razor-Thin Discs)

  1. Clutton-Brock (1972), which is a 2d match to a Plummer profile.
  2. Kalnajs (1976), which is a spiral basis.

Spherical bases

Clutton-Brock (1973)

AstroBasis.CB73BasisType
CB73Basis <: SphericalBasis

A structure for accessing the radial basis elements of Clutton-Brock (1973).

Fields

  • name::String: Basis name (default CB73).
  • lmax::Int64: Maximal harmonic/azimuthal index (starts at 0).
  • nradial::Int64: Number of radial basis elements (≥ 1).
  • G::Float64: Gravitational constant (default 1.0).
  • rb::Float64: Radial extension (default 1.0).
  • tabPrefU::Array{Float64,2}: Potential prefactors array.
  • tabPrefD::Array{Float64,2}: Density prefactors array.
  • tabUl::Array{Float64,1}: Potential elements value array.
  • tabDl::Array{Float64,1}: Density elements value array.

Description

The CB73Basis structure is used to access the radial basis elements as defined by Clutton-Brock (1973).

Example

```julia using Random

Creating an instance of CB73Basis

cb73 = CB73Basis( "CB73", # name 10, # lmax 5, # nradial 1.0, # G 1.0, # rb rand(10, 5), # tabPrefU rand(10, 5), # tabPrefD rand(5), # tabUl rand(5) # tabDl )

Accessing fields

println(cb73.name) println(cb73.lmax) println(cb73.G)

Warning

Ensure that the prefactor arrays (tabPrefU and tabPrefD) and the element value arrays

(tabUl and tabDl) have compatible dimensions to avoid runtime errors.

source

Hernquist (1992)

AstroBasis.HernquistBasisType

HernquistBasis <: SphericalBasis

A structure for interfacing with the radial basis elements from Hernquist & Ostriker (1992).

Fields

  • name::String: Basis name (default Hernquist).
  • lmax::Int64: Maximal harmonic/azimuthal index (starts at 0).
  • nradial::Int64: Number of radial basis elements (≥ 1).
  • G::Float64: Gravitational constant (default 1.0).
  • rb::Float64: Radial extension (default 1.0).
  • tabPrefU::Array{Float64,2}: Potential prefactors array.
  • tabPrefD::Array{Float64,2}: Density prefactors array.
  • tabUl::Array{Float64,1}: Potential elements value array.
  • tabDl::Array{Float64,1}: Density elements value array.

Description

The HernquistBasis structure is used to access the radial basis elements as defined by Hernquist & Ostriker (1992).

source

Razor-thin bases

Clutton-Brock (1972)

AstroBasis.CB72BasisType
CB72Basis <: RazorThinBasis

A structure for interfacing with the radial basis elements of Clutton-Brock (1972).

Fields

  • name::String: Basis name (default CB72).
  • lmax::Int64: Maximal harmonic/azimuthal index (starts at 0).
  • nradial::Int64: Number of radial basis elements (≥ 1).
  • G::Float64: Gravitational constant (default 1.0).
  • rb::Float64: Radial extension (default 1.0).
  • tabPrefU::Array{Float64,2}: Potential prefactors array.
  • tabPrefD::Array{Float64,2}: Density prefactors array.
  • tabUl::Array{Float64,1}: Potential elements value array.
  • tabDl::Array{Float64,1}: Density elements value array.

Description

The CB72Basis structure is the interface to the radial basis elements as defined by Clutton-Brock (1972).

source

Kalnajs (1976)

AstroBasis.K76BasisType

K76Basis <: RazorThinBasis

A structure for interfacing with the radial basis elements of Kalnajs (1976).

Fields

  • name::String: Basis name (default K76).
  • lmax::Int64: Maximal harmonic/azimuthal index (starts at 0).
  • nradial::Int64: Number of radial basis elements (≥ 1).
  • G::Float64: Gravitational constant (default 1.0).
  • rb::Float64: Radial extension (default 1.0).
  • kKA::Int64: Basis index specific to Kalnajs (1976).
  • tabPrefU::Array{Float64,2}: Potential prefactors array.
  • tabPrefD::Array{Float64,2}: Density prefactors array.
  • tabUl::Array{Float64,1}: Potential elements value array.
  • tabDl::Array{Float64,1}: Density elements value array.

Description

The K76Basis structure is used to access the radial basis elements as defined by Kalnajs (1976).

Example

using Random

# Creating an instance of K76Basis
k76 = K76Basis(
    "K76",       # name
    10,          # lmax
    5,           # nradial
    1.0,         # G
    1.0,         # rb
    2,           # kKA
    rand(10, 5), # tabPrefU
    rand(10, 5), # tabPrefD
    rand(5),     # tabUl
    rand(5)      # tabDl
)

# Accessing fields
println(k76.name)
println(k76.lmax)
println(k76.kKA)
source