def METHOD_NAME(self, ptype):
    """
    This function breaks the ElevenMetalMasses field (if present)
    into its eleven component metal fraction fields and adds
    corresponding metal density fields which will later get smoothed
    This gets used with the magneticum_box2_hr format
    as defined in the gadget_field_specs in frontends/gadget/definitions.py
    """
    metal_names = ["He", "C", "Ca", "O", "N", "Ne", "Mg", "S", "Si", "Fe", "Ej"]
    def _Fraction(field, data, i: int):
        return data[(ptype, "ElevenMetalMasses")][:, i] / data[(ptype, "Mass")]
    def _Metal_density(field, data, metal_name: str):
        return data[(ptype, metal_name + "_fraction")] * data[(ptype, "density")]
    for i, metal_name in enumerate(metal_names):
        # add the metal fraction fields
        self.add_field(
            (ptype, metal_name + "_fraction"),
            sampling_type="particle",
            function=partial(_Fraction, i=i),
            units="",
        )
        # add the metal density fields
        self.add_field(
            (ptype, metal_name + "_density"),
            sampling_type="particle",
            function=partial(_Metal_density, metal_name=metal_name),
            units=self.ds.unit_system["density"],
        )
    # hydrogen fraction and density
    def _h_fraction(field, data):
        ret = data[(ptype, "ElevenMetalMasses")].sum(axis=1) / data[(ptype, "Mass")]
        return 1.0 - ret
    self.add_field(
        (ptype, "H_fraction"),
        sampling_type="particle",
        function=_h_fraction,
        units="",
    )
    def _h_density(field, data):
        return data[(ptype, "H_fraction")] * data[(ptype, "density")]
    self.add_field(
        (ptype, "H_density"),
        sampling_type="particle",
        function=_h_density,
        units=self.ds.unit_system["density"],
    )
    return ["H"] + metal_names[:-1]