Feature cluster algebra and its application for geometric tolerancing