Skip to content

core.surfaces

surfaces

Surface specifications for Bolza, Bring, and Macbeath surfaces.

Each surface is a genus-2 or genus-3 Riemann surface with a specific automorphism group, first Laplacian eigenvalue, and maximal spinor phase.

BOLZA module-attribute

BOLZA = SurfaceSpec(name='Bolza', lambda_1=3.34253, delta_max=np.pi / 8, group_name='GL(2,3)=2S4', group_order=48, genus=2)

BRING module-attribute

BRING = SurfaceSpec(name='Bring', lambda_1=3.7, delta_max=np.pi / 5, group_name='S5', group_order=120, genus=4)

MACBEATH module-attribute

MACBEATH = SurfaceSpec(name='Macbeath', lambda_1=3.2, delta_max=np.pi / 7, group_name='PSL(2,8)', group_order=504, genus=7)

SurfaceSpec dataclass

SurfaceSpec(name: str, lambda_1: float, delta_max: float, group_name: str, group_order: int, R: float = -2.0, genus: int = 3)

Specification of a Riemann surface for spectral computation.

Attributes:

Name Type Description
name str

Surface name.

lambda_1 float

First Laplacian eigenvalue.

delta_max float

Maximal spinor phase.

group_name str

Automorphism group name.

group_order int

Automorphism group order.

R float

Scalar curvature.

genus int

Curve genus.

compute
compute(k_struct: int = 22) -> dict

Compute spectral invariants using the Choptyuk formula.

Parameters:

Name Type Description Default
k_struct int

Structural constant for a-C correction.

22

Returns:

Type Description
dict

Dict with all computed values.

Source code in src/core/surfaces.py
def compute(self, k_struct: int = 22) -> dict:
    """Compute spectral invariants using the Choptyuk formula.

    Args:
        k_struct: Structural constant for a-C correction.

    Returns:
        Dict with all computed values.
    """
    lam_D2 = self.lambda_1 + self.R / 4
    delta_bc = lam_D2 + self.delta_max**2 / 2
    delta_ch = delta_bc - self.delta_max**5 / k_struct
    result = {
        "name": self.name,
        "lambda_1": self.lambda_1,
        "delta_max": self.delta_max,
        "group": self.group_name,
        "group_order": self.group_order,
        "genus": self.genus,
        "R": self.R,
        "lambda_D2": lam_D2,
        "delta_bc": delta_bc,
        "delta_ch": delta_ch,
    }
    logger.info(f"Surface {self.name}: Δ_bC={delta_bc:.4f}, Δ_Ch={delta_ch:.4f}")
    return result