Mimetic elements on deformed extruded meshes
Hi all, I have a question related to mimetic element spaces on extruded meshes. Hydrostatic ocean models solve a momentum equation for the horizontal velocity components uv = (u, v, 0), while w is computed from the continuity equation diagnostically. I've been using the following spaces for uv and w: # for horizontal velocity components Uh_elt = FiniteElement('RT', triangle, self.order+1) Uv_elt = FiniteElement('DG', interval, self.order) U_elt = HDiv(OuterProductElement(Uh_elt, Uv_elt)) # for vertical velocity component Wh_elt = FiniteElement('DG', triangle, self.order) Wv_elt = FiniteElement('CG', interval, self.order+1) W_elt = HDiv(OuterProductElement(Wh_elt, Wv_elt)) U = FunctionSpace(self.mesh, U_elt) # uv W = FunctionSpace(self.mesh, W_elt) # w This works fine for orthogonal extrusion, where all horizontal faces are strictly horizontal. However, when you extrude the mesh over variable topography this is no longer true. Then the U space is no longer strictly horizontal which breaks the model. For example projecting a vector (1, 0, 0) on U space on highly deformed mesh doesn't give you (1, 0, 0). Earlier Andrew suggested enriching the U space with the W elements to better represent a true 3d vector: UW_elt = EnrichedElement(U_elt, W_elt) U = FunctionSpace(self.mesh, UW_elt) This has couple of issues though: - the U space no longer has an equivalent 2d vector space, so 2d-3d coupling breaks - this is fairly complex space, and hence slow. Do you see any way around this? Would it make more sense to just use DG space for U and W instead? Cheers, Tuomas
participants (1)
- 
                
                Tuomas Karna