BaseSphericalRadialProfile#

class profiles.base.BaseSphericalRadialProfile(**kwargs)[source]#

Abstract base class for spherically symmetric, 1D radial profiles.

This class provides standard conventions for radial profiles, defining:

  • A single independent variable r (radius)

  • Automatic symbolic setup for r

  • A derived profile for the radial derivative

Subclasses define specific profile behavior by implementing:

  • __function__ : returns the symbolic expression as a SymPy object

  • __function_units__ : returns the dimensional units of the profile

Notes

  • This class is abstract. Concrete subclasses must set __IS_ABSTRACT__ = False.

  • Units for r are propagated through the derivative profile.

  • The radial derivative is accessible via get_derived_profile().

Example

class DensityProfile(BaseRadialProfile):
    __IS_ABSTRACT__ = False
    __PARAMETERS__ = {"rho0": 1.0}

    def __function__(self, r, rho0):
        return rho0 / (r**2)

    def __function_units__(
        self, r_unit, rho0_unit
    ):
        return rho0_unit / r_unit**2

Methods

__init__(**kwargs)

Initialize a profile instance with specific parameter values.

from_dict(data)

Reconstruct a profile instance from a dictionary.

from_hdf5(h5obj[, name])

Reconstruct a profile from HDF5 attributes.

from_json(filepath)

Reconstruct a profile from a JSON file.

from_yaml(filepath)

Reconstruct a profile from a YAML file.

get_derived_profile(profile_name, **kwargs)

Access and instantiate a derived profile by name.

get_expression_latex([substitute])

Return the LaTeX representation of the profile's symbolic expression.

get_output_units(*argu)

Determine the output units of the operation given some set of input units.

get_parameters_latex()

Return a LaTeX table of the profile parameters.

lambdify_expression(expression)

Convert a symbolic expression into a callable function.

list_derived_profiles()

List all available derived profiles for this instance.

substitute_expression(expression)

Replace symbolic parameters with numerical values in an expression.

to_dict()

Serialize this profile to a minimal dictionary representation.

to_hdf5(h5obj[, name])

Store profile metadata into an HDF5 object as attributes.

to_json(filepath, **kwargs)

Serialize the profile to a JSON file.

to_yaml(filepath, **kwargs)

Serialize the profile to a YAML file.

Attributes

derived_profile_classes

Get the available derived profile classes for this instance.

parameter_symbols

Get the symbolic representations of the coordinate system parameters.

parameters

The parameters of this coordinate system.

variable_symbols

The symbols representing each of the coordinate axes in this coordinate system.

variables

The axes names present in this coordinate system.