Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

`progenax.protocols`

San Diego State University

progenax.protocols

Auto-generated by scripts/build_api_reference.py from progenax source. Re-run after public-API changes; the script is idempotent.

Module path: progenax/protocols/

Public symbols: 9

Contents

protocols.SpatialProfile

protocol

SpatialProfile(*args, **kwargs)

Protocol for spatial density profiles.

Implementations must provide position sampling and characteristic radius. Used by build_spatial_ic() for generic IC assembly.

Example implementations: - PlummerProfile: Plummer (1911) density - KingProfile: King (1966) models - EFFProfile: Elson-Fall-Freeman (1987)

Source: src/progenax/protocols.py#L14

protocols.VelocityDF

protocol

VelocityDF(*args, **kwargs)

Protocol for velocity distribution functions.

Implementations must sample velocities given positions and masses. Enables composability: mix Plummer positions + King velocities.

Source: src/progenax/protocols.py#L55

protocols.IMFProtocol

protocol

IMFProtocol(*args, **kwargs)

Protocol for Initial Mass Functions.

All IMF classes must implement these methods for consistent API and protocol-based composition (e.g., TruncatedIMF wrapping).

Attributes

ParameterDescription
m_minMinimum mass in distribution [M_sun]
m_maxMaximum mass in distribution [M_sun]

Source: src/progenax/protocols.py#L87

protocols.PeriodDistribution

protocol

PeriodDistribution(*args, **kwargs)

Protocol for binary orbital-period distributions (period in days).

Implementations expose the standard sample/pdf/cdf/ppf quartet.

Example implementations: - LogUniformPeriod (Öpik 1924) - LogNormalPeriod (Duquennoy & Mayor 1991) - SanaOBPeriod (Sana et al. 2012)

Source: src/progenax/protocols.py#L128

protocols.EccentricityDistribution

protocol

EccentricityDistribution(*args, **kwargs)

Protocol for unconditional binary-eccentricity distributions.

Implementations expose the standard sample/pdf/cdf/ppf quartet.

Example implementations: - ThermalEccentricity (f(e) = 2e; Ambartsumian 1937 / Heggie 1975) - UniformEccentricity

Source: src/progenax/protocols.py#L161

protocols.ConditionalEccentricityDistribution

protocol

ConditionalEccentricityDistribution(*args, **kwargs)

Protocol for period-CONDITIONAL eccentricity distributions, p(e | P).

Sampling takes (key, periods); n is implied by periods.shape. Distinct from the unconditional :class:EccentricityDistribution (sample(key, n)).

Example implementations: - MoeEccentricity (period-dependent circular->thermal heuristic)

Source: src/progenax/protocols.py#L193

protocols.MassPeriodEccentricityDistribution

protocol

MassPeriodEccentricityDistribution(*args, **kwargs)

Protocol for period- AND mass-conditional eccentricity distributions, p(e | P, M1).

Sampling takes (key, periods, masses).

Example implementations: - MoeEccentricity (Moe & Di Stefano 2017 e^η(logP, M1)) - LogisticThermalEccentricity (accepts masses but ignores them)

Source: src/progenax/protocols.py#L211

protocols.BinaryFractionModel

protocol

BinaryFractionModel(*args, **kwargs)

Protocol for binary-fraction models — uniform across mass and environment.

probability(masses, radii=None) -> f_bin returns the per-star binary fraction. Mass-based models (ConstantBinaryFraction, MassDependentBinaryFraction, DifferentiableBinaryFraction) ignore radii; RadialBinaryFraction ignores masses; CombinedBinaryFraction modulates one by the other.

Example implementations: - ConstantBinaryFraction, MassDependentBinaryFraction (Moe Table 13) - DifferentiableBinaryFraction - RadialBinaryFraction (phenomenological f_b(r)) - CombinedBinaryFraction (mass x radial)

Source: src/progenax/protocols.py#L233

protocols.CompanionModel

protocol

CompanionModel(*args, **kwargs)

Protocol for the binary companion/orbit layer used by build_binary_cluster.

A single owner of the binary statistics: given primary masses, it decides multiplicity (f_b -> is_binary) AND samples the companion properties (q -> m2, P -> a, e, isotropic orientation), all keyed on the primary masses. Returns (is_binary, CompanionElements).

Example implementations (progenax.binaries): - IndependentCompanions(binary_fraction, q_distribution, period_distribution, eccentricity_distribution) — versatile marginals. - MoeCompanions(q_min) — faithful Moe+2017 joint (P, q, e) with Moe’s own mass-dependent f_b; the same q sets m2 (self-consistent).

Source: src/progenax/protocols.py#L258