My sampling is failing with a “Mass matrix contains zeros on the diagonal” error. I believe it must have something seems to have something to do with precision. (Note: I am sampling on the CPU.). I’ve made a hacky workaround, but I am really surprised that it makes any difference.
#--- THIS DOES NOT WORK: dvxdx = pm.Normal('dvxdx', priordvxdx, sd=1.0e-6, shape=N) axflow = dvxdx*vx
# - BUT THIS WORKS: dvxdx = pm.Normal('dvxdx', priordvxdx*1e6, sd=1.0, shape=N) axflow = dvxdx*vx/1e6
The values of priordvdx are around 1e-5, and vx has values like 30.0. So I am really surprised that it cannot handle an sd of 1e-6.