Class

NumCosmoGalaxyShapeFactorFixedQuad

Description [src]

final class NumCosmo.GalaxyShapeFactorFixedQuad : NumCosmo.GalaxyShapeFactor
{
  /* No available fields */
}

Fixed-node lens-domain quadrature evaluation of the intrinsic-ellipticity marginal.

Like NcGalaxyShapeFactorQuad, evaluates $$P(\epsilon_\mathrm{obs} \mid g) = \int_{|\chi_L|<1} \mathrm{d}^2\chi_L\, P_\mathrm{pop}\big(f_g^{-1}(\chi_L)\big)\, \left|\det J_{f_g^{-1}}(\chi_L)\right|\, N_2\big(\epsilon_\mathrm{obs} - \chi_L; \sigma_\mathrm{noise}^2\big) $$ exactly (no series truncation in $g$), with a FIXED node count over the INTERSECTION of two discs instead of Quad’s adaptive Divonne cubature over a generic box: the noise kernel is supported near $\epsilon_\mathrm{obs}$ (radius $\sim n_\sigma\sigma_\mathrm{noise}$), $P_\mathrm{pop}\circ f_g^{-1}$ only over the unit disc, and their overlap is a two-circle “lens” in general, a plain disc when one contains the other.

The noise kernel lives in $\chi_L$-space and does not depend on $g$, so the whole quadrature domain (node positions, weights, and the noise-kernel value at each node) is $g$-INDEPENDENT: it depends only on $(R,\phi,\sigma_\mathrm{noise})=(\lvert\epsilon_\mathrm{obs}\rvert, \arg\epsilon_\mathrm{obs},\sigma_\mathrm{noise})$, cached per galaxy and reused across every $g$ a fit tries. Validated end to end against an independent scipy oracle and against NcGalaxyShapeFactorQuad itself (see the test suite and Fixed-Node Lens-Domain Quadrature).

Every term summed is manifestly non-negative (quadrature weights, population density, $\lvert\det J\rvert$, and the two-arc domain’s Jacobian are all non-negative), so unlike NcGalaxyShapeFactorSeriesLensed there is no truncated polynomial that can cross zero: this class stays accurate at any physical $g$, real or complex, through $\lvert g\rvert=0.99$.

Works for ANY population (not just Gaussian): each node evaluates nc_galaxy_shape_pop_eval_p() directly at $x_i=\lvert\chi_I\rvert^2$, the same convention NcGalaxyShapeFactorQuad uses (not eval_p_rho2(), whose $\rho^2$ argument is the pre-compactification radius of the $(u,v)$-plane substitution this class does not use), so unlike NcGalaxyShapeFactorSeriesLensed there is no Gaussian-only guard.

Limitation: a fixed grid cannot resolve a population much narrower than its node spacing ($\sigma_\mathrm{pop}\lesssim0.05$, or a sharply concentrated Beta population); use NcGalaxyShapeFactorQuad for narrower or more exotic populations. Production only uses Gaussian populations with $\sigma_\mathrm{pop}\in(0.2,0.4)$, comfortably inside this class’s validated regime. See docs/theory/wl_shape_factor_history.md for why an adaptive alternative was tried and rejected for the narrow-population case, and for the design history of this class more generally.

Cost cliff: at $\sigma_\mathrm{noise}$ where the noise disk is comparable in size to the unit disc (roughly $\sigma_\mathrm{noise}\in(0.05,0.2)$, see docs/theory/wl_shape_marginalization_fixed_quad.qmd’s own “cost cliff” section), nearly every galaxy lands in the genuine-lens branch ($\mathtt{n_lens}^2$ nodes, 1681 at the default 41) rather than the cheaper contained branches — expensive, though this project’s actual production regime ($\sigma_\mathrm{noise}\sim0.3$) is unaffected either side of it. NcGalaxyShapeFactorFixedQuad:auto-lens-nodes (default FALSE, opt-in) calibrates a per-galaxy lens-branch node count instead of always using the configured NcGalaxyShapeFactorFixedQuad:n-lens, cutting cost in that regime (~2x fewer nodes typical, more in the expensive middle) with no change to shipped behavior unless explicitly enabled — see _calibrate_n_lens()’s own docs for the calibration strategy.

Constructors

nc_galaxy_shape_factor_fixed_quad_new

Creates a new NcGalaxyShapeFactorFixedQuad.

Functions

nc_galaxy_shape_factor_fixed_quad_clear

Decreases the reference count of gsffq by one, and sets the pointer gsffq to NULL.

Instance methods

nc_galaxy_shape_factor_fixed_quad_free

Decreases the reference count of gsffq by one.

nc_galaxy_shape_factor_fixed_quad_ref

Increases the reference count of gsffq by one.

Methods inherited from NcGalaxyShapeFactor (27)

Please see NcGalaxyShapeFactor for a full list of methods.

Methods inherited from GObject (43)

Please see GObject for a full list of methods.

Properties

NumCosmo.GalaxyShapeFactorFixedQuad:auto-lens-nodes

When TRUE, calibrates a per-galaxy lens-branch node count (capped at NcGalaxyShapeFactorFixedQuad:n-lens) instead of always using NcGalaxyShapeFactorFixedQuad:n-lens for every galaxy — see _calibrate_n_lens()’s docs. Default FALSE (zero behavior change unless explicitly enabled).

NumCosmo.GalaxyShapeFactorFixedQuad:lens-node-reltol

Target relative tolerance for NcGalaxyShapeFactorFixedQuad:auto-lens-nodess calibration. Default 1e-4.

NumCosmo.GalaxyShapeFactorFixedQuad:n-angular

Number of angular nodes (equally-spaced when the noise disk is contained in the unit disc, Gauss-Legendre otherwise). Default 15.

NumCosmo.GalaxyShapeFactorFixedQuad:n-lens

Number of fixed Gauss-Legendre nodes per axis in the genuine two-circle “lens” (partial-overlap) branch; always rounded up to the next odd number (see the class docs for why). Default 41.

NumCosmo.GalaxyShapeFactorFixedQuad:n-radial

Number of fixed Gauss-Legendre nodes in the radial direction (branches where one disc is contained in the other). Default 15.

Properties inherited from NcGalaxyShapeFactor (1)
NumCosmo.GalaxyShapeFactor:ellip-conv

Weak lensing observables ellipticity convention NcGalaxyWLObsEllipConv.

Signals

Signals inherited from GObject (1)
GObject::notify

The notify signal is emitted on an object when one of its properties has its value set through g_object_set_property(), g_object_set(), et al.

Class structure

struct NumCosmoGalaxyShapeFactorFixedQuadClass {
  NcGalaxyShapeFactorClass parent_class;
  
}

No description available.

Class members
parent_class: NcGalaxyShapeFactorClass

No description available.