rtdSMOKE++ OpenFOAM-based solver for evaluating the Residence Time Distribution (RTD) function in a generic device