| d0ecd4df | 08-Jan-2018 |
Barry Smith <bsmith@mcs.anl.gov> |
Fix problem with multiplicative local additive Schwarz
Text and fix provided by Eugenio Aulisa Reason. The problem arises if in the overlapping index sets ghost nodes are presents. If this is the ca
Fix problem with multiplicative local additive Schwarz
Text and fix provided by Eugenio Aulisa Reason. The problem arises if in the overlapping index sets ghost nodes are presents. If this is the case the vectors osm->lx and osm->ly (built immediately after) not only will include the dofs owned by the process, but also the ghost dofs. This creates vectors whose sizes differ from vec used to generate the prolongation scatter object at line 379. Thus the error at line 519 when trying to use the interpolation object with osm->ly vector. The fix basically concatenates all the own index sets, which do not include ghost nodes. Then the local sizes of vec, osm->lx and osm->ly are all the same. Is this the best/only fix? Not sure. While it works for the Poisson example I generated for you, it still has "convergence" issues with more sophisticated FSI problems I am working to, where the additive case works well. Moreover also in the Poisson example I built for you, the additive case works better. Considerations: 1) instead of adapting osm->lx and osm->ly to the size of vec, it may be the case of doing the opposite. 2) I am somehow concerned that the presence of ghost nodes may somehow alter the scatter, but to justify this I need to study the alghorithm much more in detail.
Add some missing error checking
Commit-type: bug-fix Reported-by: Eugenio Aulisa <Eugenio.Aulisa@ttu.edu>
show more ...
|