Low efficiency of uw.fn.evaluate comparing with the uw.fn.evalf in swarm.advection
Here is the case1 with free surface boundary condition from Crameri2012. The swarm particle number is 256 * 64 * 9 = 147456.
In swarm advection, the uw.fn.evaif works for evaluating the velocity field while the uw.fn.evaluate doesn't.
The fn.evaluate may need to be improved.
More info please - is this about efficiency or a crash ?
It's more like a crash. It stuck in swarm advection when it used the uw.fn.evaluate
And it runs fine when using fn.evaif ( swarm.advection(V_fn=v.fn, delta_t=dt,evalf=True)).
I have checked the velocity field, it seems all good.
@NengLu - is this still live ? The slow-down is usually because a particle moves slightly out of bounds (it can happen). evalf is more forgiving (but less accurate). We've made a number of improvements in the advection schemes recently and I would like to know if the problem is still evident.
It is fixed with the latest version of uw3. And I used too many particles in the model and ran it in serial. I am closing it.