CUPyDO v1.0
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.
@msanchezmartinez
)
Mariano (- 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
@acrovato
)
Adrien (- 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
@rboman
)
Romain (- 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