def calculate(self, T, P, zs, ws, method):
if method == SIMPLE:<EOL><INDENT>mus = [i(T, P) for i in self.ViscosityGases]<EOL>return mixing_simple(zs, mus)<EOL><DEDENT>elif method == HERNING_ZIPPERER:<EOL><INDENT>mus = [i(T, P) for i in self.ViscosityGases]<EOL>return Herning_Zipperer(zs, mus, self.MWs)<EOL><DEDENT>elif method == WILKE:<EOL><INDENT>mus = [i(T, P) for i in self.ViscosityGases]<EOL>return Wilke(zs, mus, self.MWs)<EOL><DEDENT>elif method == BROKAW:<EOL><INDENT>mus = [i(T, P) for i in self.ViscosityGases]<EOL>return Brokaw(T, zs, mus, self.MWs, self.molecular_diameters, self.Stockmayers)<EOL><DEDENT>else:<EOL><INDENT>raise Exception('<STR_LIT>')<EOL><DEDENT>
r'''Method to calculate viscosity of a gas mixture at 
        temperature `T`, pressure `P`, mole fractions `zs` and weight fractions
        `ws` with a given method.

        This method has no exception handling; see `mixture_property`
        for that.

        Parameters
        ----------
        T : float
            Temperature at which to calculate the property, [K]
        P : float
            Pressure at which to calculate the property, [Pa]
        zs : list[float]
            Mole fractions of all species in the mixture, [-]
        ws : list[float]
            Weight fractions of all species in the mixture, [-]
        method : str
            Name of the method to use

        Returns
        -------
        mu : float
            Viscosity of gas mixture, [Pa*s]