Sort of following up with this question. I reformulated another model to make it convex and possibly solve it with some cut generation method. I would like to double-check whether I am doing it correctly. Below is the nonlinear model due to $1/h_p$. The variable $h_p$ is non-negative continuous and satisfies $H^- \leq h_p \leq H^+$. The parameters: $f_p,B_p,\tau_p,M,H^-,H^+$ are non-negative real numbers. The set $P$ is polynomially-sized.
\begin{alignat}2\min &\quad \mathbf{C} = \sum_{p\in P}\frac{h_p}{2}\tag1\\\text{s.t.}&\quad \frac{f_ph_p}{30}\leq B_p \qquad \forall p\in P\tag2\\&\quad\sum_{p\in P}\frac{\tau_p}{h_p} \leq M\tag3\\&\quad h_p\in \mathbb{R}^+, H^- \leq h_p \leq H^+.\end{alignat}
Theorem 1: Assume $\phi_p\left(h_p\right)=\frac{\tau_p}{h_p}$. Then, $\phi_p\left(h_p\right)$ is convex in $h_p$ under the domains $h_p,\tau_p\in\mathbb{R}^+$.
Proof: Showing the second derivative of $\phi_p\left(h_p\right)$ with respect to $h_p$ being non-negative will prove the convexity. Since $\frac{d^2 \phi_p\left(h_p\right)}{dh_p^2}=\frac{2\tau_p}{h_p^3}\geq 0$ in the domains $h_p,\tau_p\in\mathbb{R}^+$, my proof is complete.
I will introduce $(4)$ to represent the new definition assuming $\phi_p\equiv\phi_p\left(h_p\right)$. Due to Theorem 1, I will say $a_p+b_p h_p$ supports $\phi_p\left(h_p\right)$ at $h_p=\tilde{h}_p$, where $a_p=\phi_p\left(\tilde{h}_p\right)-b\tilde{h}_p$ and $b_p=\frac{d\phi_p\left(\tilde{h}_p\right)}{d\tilde{h}_p}$. So, if I introduce the cut constraint $(5)$ to the problem $(1)-(2), ~(4)$ iteratively, I expect to solution to converge to optimality.
\begin{alignat}2\sum_{p\in P}\phi_p&\leq M\,\tag4\\\phi_p &\geq a_p+b_p h_p.\tag5\end{alignat}
Here is my planned solution procedure. Solve $(1)-(2),~(4)$ with non-negativity conditions with $h_p$ boundary and $\phi_p\geq 0 $. The solution is $h_p=H^-~\forall p\in P$ due to minimization assuming $30B_p/f_p\geq H^-$. If $(3)$ is not satisfied with this solution, feed the solution $H^-$ into $\tilde{h}_p$, introduce $(5)$, resolve the problem...
I am sort of stuck with the solution procedure as I cannot really determine the termination criterion. I know I find a lower bound to $\mathbf{C}$ by iteratively solving. But, how can I calculate the upper bound (call it $\mathbf{\hat{C}}$)? If I could understand it, I would say while the gap between the bounds are less than a satisfactory ratio, keep adding cuts; terminate when gap satisfies the ratio.
Is there any better approach to attack solving this problem?