-
Notifications
You must be signed in to change notification settings - Fork 355
MALI: Several Improvements related to handling Albany velocity solver #402
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…g fix for floating condition
…s to be recomputed or not The mesh needs to be recomputed non only of the vertices ice mask has changed, but also if the floating edges mask and the cell ice mask has changed. Note: in order to compare the clee mask with the previous time steps, we would need the cell mask to have 2 time levels. Howver, if we set the cell mask to have 2 time levels we get different results. This needs to be fixed.
These functions will be copied in Albany, so that the MALI can be built with shared libraries.
1. sendig now MPAS global IDs to Albany, instead of creating contiguous id (this was created for overcoming some issues with solver. It is not needed any more now. Old functionality can be restored by defining the useContiguousIds preprocessor directive.) 2. Change ownership to Albany triangles (MPAS vertices). This allows to better distribute the triangles along the interface. A triangle is set to belong to a processor P if: 1. P owns at least 2 nodes of the triangle associated to that vertex, OR 2. all the nodes of the triangle belong to three different processors, and P owns the fortran vertex and a node OR 3. the three nodes of the triangle and the fortran vertex belong to four different processors, and P owns the triangle node with the minimum ID It is possible to avoid changing ownership of triangles by undefining the preprocessor directive changeTrianglesOwnership. 3. Each node is owned by a processor that owns a triangle that contain the node This avoids situations problematic to the solver The Albany mesh will be constructed keeping the ownership of nodes and triangles as defined in MPAS Interface. Ownership of edges is not dictated by the MPAS Interface and can be arbitrarily chosen by Albany Cleaning
…omm lists for vertices and cells into one function
@mperego , I'm finally starting to review this now. One thing I am concerned about is commit b514e40 where there still is some work to do with the time levels of the cellMask field. I propose that we remove that commit from this PR and deal with it later. That way trying to resolve that issue does not hold up merging the rest of this PR. If you are ok with that, I can modify the branch to have that commit removed, and then open a new PR with just that commit that we can finish working on later. |
Sure, It makes sense to me. |
Note: Closing and reopening as #452 in order to fix branch names and update commit history at the same time. |
Also opening #453 separately for item 6 in the list above. |
Several modifications to improve MPAS/Albany interface 1. Modifications to interface to simplify the code, reduce communications and improve the partitioning FE mesh to avoid critical situations for the solvers: - use MPAS global ids for FE elements entities (years ago we created contiguous global IDs for the FE meshes to avoid some issues with solvers that have been overcome) - change ownership of FE triangles (Voronoi vertices) to better distribute triangles along the interface between processors - change ownership of FE nodes (Voronoi cells) to avoid corner situations like having a processor that owns a node but no triangles containing that node 2. Allow building shared libraries for Albany and Trilinos 3. Enable use of Prismatic FE elements (in alternative to tets). 4. Remove obsolete code related to LIFEV library 5. Modify writing of ascii mesh so that it can be printed in parallel Note: updated version from #402 * matt/landice/interface_update: Update hashes to use for Trilinos & Albany Modify albany input files of some tests to use Prisms and remove old options Consolidate fns to create reversed comm lists for vert. and cells into 1 fn Remove option to send to Albany list of contiguous Ids Several changes to the Interface_velocity_solver Remove functions computing the tet/prism mesh connectivity Modify write_ascii_mesh so that it can mesh can be printed in parallel. Remove old code for LIFEV from the Interface_velocty_solver.*pp. Cleaning. Adding boundary conditions info whe printing the ascii mesh. Minor bug fix for floating condition
Several modifications to improve MPAS/Albany interface
Modifications to interface to simplify the code, reduce communications and improve the partitioning FE mesh to avoid critical situations for the solvers:
Allow building shared libraries for Albany and Trilinos
Enable use of Prismatic FE elements (in alternative to tets).
Remove obsolete code related to LIFEV library
Modify writing of ascii mesh so that it can be printed in parallel
Fix logic to determine whether the finite element mesh needs to be recomputed. Note: in order to compare the cell mask with the previous time steps, we would need the cell mask to have 2 time levels. However, if we set the cell mask to have 2 time levels we get different results. This needs to be fixed. At the moment the cell mask is set to have 1 time level, so it might happen that the mesh is not recomputed when it should.