Open NTIaN7 opened 8 months ago
Hi @NTIaN7 ,
Sorry for the late response.
The utils.Integral()
doesn't handle internal surface indices. Your idea for scipy could work, you can consolidate the resultant per proc integral together with something like mpi4py's allreduce()
, an example is
https://github.com/underworldcode/underworld2/blob/e62b5de9a5ba673b6df23c94f4f6f34e34a301d7/underworld/utils/_utils.py#L645
What is the integral you're trying to evaluate? Just temperature over the surface?
Another idea that comes to mind is to distribute a swarm of particles over the 'internal" surface you'd like to integrate on.
Thank you for your reply @julesghub,
I want to evaluate the pressure, temperature, and physical strength of a specific interface. For example, obtaining the average (integral to area ratio) temperature and pressure on a horizontal grid line.
Particle swarm is a great way, but do I not need to set the adject attribute on it so as not to change its position?
N.
Hi,
I'm trying to perform surface integration on a non-boundary "sub-surface" in a parallel environment using Underworld2. Specifically, I want to integrate over any arbitrary row in a
Mesh[yRes+1, xRes+1]
, similar to pressure calibration. However, I encountered the following error:One workaround I can think of is to evaluate on this horizontal line and then use scipy for integration. But in a parallel environment, would I need to consolidate resources so that I can operate on each row of the original data? Also, would the precision of this approach be comparable to the results obtained from utils.Integral?
Any guidance would be greatly appreciated. Thanks!
N.