def METHOD_NAME(self):
    for domain in ["negative", "positive"]:
        if self.options.electrode_types[domain] == "planar":
            continue
        particle = getattr(self.options, domain)["particle"]
        for phase in self.options.phases[domain]:
            if particle == "Fickian diffusion":
                submod = pybamm.particle.FickianDiffusion(
                    self.param, domain, self.options, phase=phase, x_average=True
                )
            elif particle in [
                "uniform profile",
                "quadratic profile",
                "quartic profile",
            ]:
                submod = pybamm.particle.XAveragedPolynomialProfile(
                    self.param, domain, self.options, phase=phase
                )
            self.submodels[f"{domain} {phase} particle"] = submod
            self.submodels[
                f"{domain} {phase} total particle concentration"
            ] = pybamm.particle.TotalConcentration(
                self.param, domain, self.options, phase
            )