bmorris3 / dot

Starspot rotational modulation forward model
https://spotdot.readthedocs.io
1 stars 2 forks source link

Avoid spot overlap #36

Open amunozj opened 4 years ago

bmorris3 commented 4 years ago

I think this can be accomplished with the pm.Potential method by adding a likelihood penalty when spots get very close to one another. This might be computationally expensive though, we'll need to implement it and test it. We can do something like:

distances = compute_pairwise_spot_distance(thetas, phis)
pm.Potential("overlap_penalty", pm.math.min(distances)**n)

where n = -2 or -3, for example. This will put a "repelling force" on the spot positions – the more negative the exponential index, the more sharply the repulsion increases with distance.