Skip to content

CUPyDO v1.0

Boman Romain requested to merge adrien into master

Created by: acrovato

Context

This PR brings the latests development from Mariano, Romain and I into CUPyDO. The changes mainly consist in new interfaces implementation, bugs correction, and cleaning/refactoring.

What we have accomplished

In addition to the refactoring of the README and various small changes, here is a list of the major changes made to CUPyDO.

Mariano (@msanchezmartinez)

  • added copies of residuals vectors (bug preventing the IQN algorithm to be run with non matching interpolators), reference #5 (closed)
  • replaced the blocking MPI communication by non-blocking communication (bug causing the parallel build to hang), reference #7 (closed)
  • ensured that arrays remain C-contiguous when sliced (mainly in Modal interface) for MPI
  • updated the Metafor interface

Adrien (@acrovato)

  • added Flow interface
  • added Modal interface (in partial collaboration with @iamhuseyinguner)
  • added Ctest and refactored test battery accordingly (in partial collaboration with @mlucio89)
  • added new run strategy (run.py and cupydo/utilities), reference #4 (closed)
  • cleaning/refactoring, reference #2 (closed) #9 (closed) #8 (closed) #11 (closed) #12 (closed) #10

Romain (@rboman)

  • updated the build instructions
  • updated the PFEM interface
  • global supervision

Tests

CUPyDO has been built in serial and in parallel. Both batteries, run in serial were tested on gaston, 4 threads and passed in about 2h.

What remains to be done

New/improved functionalities

  • the search strategy for external solvers (in run.py) can be improved, reference #4 (closed)
  • discrepancies between serial and parallel build remain for one test case and should be investigated, reference #3
  • there are two 'broken' tests, reference #13
  • there are no tests to test the GetDP interface, reference #13

Refactoring/cleaning

  • the files cupydoInterface/exampleSolvers seem to be redundant with cupydo/genericSolvers. A better option would be to remove the exampleSolvers and to put, as comments, in genericSolvers the optional and mandatory functions for each interface
  • the file structure can be improved (e.g. move cupydoInterfaces/ to cupydo/interfaces/)
  • build of Metafor with parasolid should be re enabled, reference #6 (closed)
  • the encoding of all file should be set to UTF-8
  • the filename length of some tests should be decreased
  • the install step should be optional
  • the wiki should be updated

Merge request reports

Loading