Torpedo ships can lay mines. The same formulas apply to web laying.

Torps_laid =
   Min(Torps_available, Trunc((Max_units - Existing_units) / Conversion_rate))
   ...0 if Conversion_rate is zero or Existing_units ≥ Max_units
   ...where
      Conversion_rate =
         Trunc(Torp_type^2 * Min(UnitsPerTorpRate[Ship_owner],
                                 UnitsPerTorpRate[Minefield_owner]) / 100)
      Max_units =
         MaximumMinefieldRadius[Minefield_owner] ^ 2
         ...if it is a normal mine field
         MaximumWebMinefieldRadius[Minefield_owner] ^ 2
         ...if it is a web field

Units_laid =
   Torps_laid * Conversion_rate

Existing_units is the number of mine units in the field we're adding to, 0 if it is a new field. Torps_available is the number of Torps allowed for laying using mdX or an extended mission like Lay Minefield. Note that Ship_owner and Minefield_owner can differ if miX or an extended mission is used.

PHost refuses adding torpedoes to a minefield that is close to its maximum size if that would exceed the maximum. For example, Robots cannot add a Mark 8 torpedo (type 10) to a 99 ly (=9801 units) minefield if the maximum radius is 100 ly, because 9801+400 = 10201 which is more than the allowed 10000. In pathological configurations, PHost may even refuse to lay a new minefield if laying a single torpedo would already exceed the limit.