I think you need to provide more informations to a simulation which could be quiet complex.
Should the simulation stop as soon two forests intersect?
Should the growth of two forests stop as they intersect and the simulation still run on the other?
Should the growth in the direction to the intersection stop, and still go on on the other sides?
How your input boundary look? Polylines or curves?
For the first two questions, you could use offset or scale, for the third, you need something more complex, which modifies the segments individually. You may want to convert your boundary to a polyline with smaller segments. For example: one forest is a triangle, the other one rectangle. They may intersect at their corner, but the growth should go on, till there’s a line between them both.
May have a look at this:
What are the best components to do that?
There‘s no single component, neither a best one. Depending on your parameters.
I would suggest using anemone to loop the growth. You could also use kangaroo to simulate the collision of the boundary curves.
If you have a specific question on your script, it will be easier to help you.