def model(self, *args, **kwargs):
        """
        Piority of Arguments: Arguments passed in `kwargs` has the most piority, 'param' key in `kwargs` has less
        piority than `kwargs` and dictionary arguments in `args` have the least piority. Other arguments are ignored.
        Argument List:
            model - set model type, default value 'default';
            dx - default value '1.0e-1';
            dt - default value '1.0e-3';
            t0 - default value '0.0';
            u0 - default value '1.0e-1';
            order - default value '5';
            pumping - default value ``;
            !original_params - default value `{}`;
            !dimless_params - default value `{}`;
        """
        if 'filename' in kwargs:
            return self.modelFromFile(kwargs['filename'])

        if 'params' in kwargs:
            params = kwargs.pop('params')

        kwargs['model'] = 'default' if 'model' not in kwargs else kwargs['model']
        kwargs['original_params'] = {} if 'original_params' not in kwargs else kwargs['original_params']

        if 'R' not in kwargs['original_params']:
            kwargs['original_params']['R'] = 0.0242057488654
        if 'gamma' not in kwargs['original_params']:
            kwargs['original_params']['gamma'] = 0.0242057488654
        if 'g' not in kwargs['original_params']:
            kwargs['original_params']['g'] = 0.00162178517398
        if 'tilde_g' not in kwargs['original_params']:
            kwargs['original_params']['tilde_g'] = 0.0169440242057
        if 'gamma_R' not in kwargs['original_params']:
            kwargs['original_params']['gamma_R'] = 0.242057488654

        if kwargs.get('model') in ('1d', 'default', str(Model1D)):
            return self.fabricateModel1D(*args, **kwargs)
        elif kwargs.get('model') in ('2d', str(Model2D)):
            return self.fabricateModel2D(*args, **kwargs)
        else:
            raise Exception('Unknown model passed!')