def METHOD_NAME(self, setupname="MySetupAuto", setuptype=None, **kwargs):
    """Create a setup.
    Parameters
    ----------
    setupname : str, optional
        Name of the setup. The default is ``"MySetupAuto"``.
    setuptype : str
        Type of the setup. The default is ``None``, in which case the default
        type is applied.
    **kwargs : dict, optional
        Extra arguments to set up the circuit.
        Available keys depend on the setup chosen.
        For more information, see
        :doc:`../SetupTemplatesCircuit`.
    Returns
    -------
    :class:`pyaedt.modules.SolveSetup.SetupCircuit`
        Setup object.
    """
    if setuptype is None:
        setuptype = self.design_solutions.default_setup
    elif setuptype in SetupKeys.SetupNames:
        setuptype = SetupKeys.SetupNames.index(setuptype)
    name = self.generate_unique_setup_name(setupname)
    setup = SetupCircuit(self, setuptype, name)
    setup.create()
    setup.auto_update = False
    if "props" in kwargs:
        for el in kwargs["props"]:
            setup.props[el] = kwargs["props"][el]
    for arg_name, arg_value in kwargs.items():
        if arg_name == "props":
            continue
        if setup[arg_name] is not None:
            setup[arg_name] = arg_value
    setup.auto_update = True
    setup.update()
    self.setups.append(setup)
    return setup