geodynamics / aspect

A parallel, extensible finite element code to simulate convection in both 2D and 3D models.
https://aspect.geodynamics.org/
Other
223 stars 235 forks source link

Bug in advection boundary conditions with free surfaces #3972

Open bangerth opened 3 years ago

bangerth commented 3 years ago

For compositional fields (and the temperature, for that matter), one can only impose Dirichlet conditions if we are at a point where there is inflow. We determine this here: https://github.com/geodynamics/aspect/blob/master/source/simulator/assemblers/advection.cc#L608 https://github.com/geodynamics/aspect/blob/master/source/simulator/assemblers/advection.cc#L916 https://github.com/geodynamics/aspect/blob/master/source/simulator/assemblers/advection.cc#L1272 But all of these places use current_u, which is just the current velocity field, not including the mesh deformation velocity. This is a bug.

@naliboff -- FYI, this is what we were just discussing.

anne-glerum commented 3 years ago

This might be related to something we've seen in free surface rift models. We fix the temperature/composition on the top, but would get unexpected other values on the top boundary. By setting 'Allow fixed composition on outflow boundaries' this could be remedied. I don't mind subtracting the mesh velocity in the places Wolfgang mentions above to see if that helps, or are you working on it @naliboff ?

anne-glerum commented 3 years ago

The places listed by Wolfgang above do actually include the mesh velocity. I found this other place where it should probably be updated: https://github.com/geodynamics/aspect/blob/bb46d1cd3a9ca65006008be5af4227c9c9758ba5/source/simulator/helper_functions.cc#L1974