Monica—A computer algorithm for solving boundary value problems using the double-hardening constitutive law Monot: I. Algorithm development