def rmsd_eval(cls, specification, sequences, parameters, reference_ampal,
                  **kwargs):
        """Creates optimizer with default build and RMSD eval.

        Notes
        -----
        Any keyword arguments will be propagated down to BaseOptimizer.

        RMSD eval is restricted to a single core only, due to restrictions
        on closure pickling.

        Parameters
        ----------
        specification : ampal.assembly.specification
            Any assembly level specification.
        sequences : [str]
            A list of sequences, one for each polymer.
        parameters : [base_ev_opt.Parameter]
            A list of `Parameter` objects in the same order as the
            function signature expects.
        reference_ampal : ampal.Assembly
            The target structure of the optimisation.
        """
        eval_fn = make_rmsd_eval(reference_ampal)
        instance = cls(specification,
                       sequences,
                       parameters,
                       build_fn=default_build,
                       eval_fn=eval_fn,
                       mp_disabled=True,
                       **kwargs)
        return instance
Creates optimizer with default build and RMSD eval.

        Notes
        -----
        Any keyword arguments will be propagated down to BaseOptimizer.

        RMSD eval is restricted to a single core only, due to restrictions
        on closure pickling.

        Parameters
        ----------
        specification : ampal.assembly.specification
            Any assembly level specification.
        sequences : [str]
            A list of sequences, one for each polymer.
        parameters : [base_ev_opt.Parameter]
            A list of `Parameter` objects in the same order as the
            function signature expects.
        reference_ampal : ampal.Assembly
            The target structure of the optimisation.