Re: [firedrake] Mimetic elements on deformed extruded meshes
Hi Tuomas, Yes, you need to set u.n=0 on the bottom. In practice this is done by specifying all 3 components to zero, because only normal components are stored on the boundary. all the best --cjc On 24 September 2015 at 19:49, Tuomas Karna <tuomas.karna@gmail.com> wrote:
Hi Colin,
I've been using the kinematic condition, u*nx + v*ny + w*nz = 0, but now that you mention it this is probably wrong for Piola elements. If (u,v) is along the bottom face by definition the w=0 at the bottom.
- Tuomas
On 09/24/2015 11:37 AM, Colin Cotter wrote:
Hi Tuomas,
Just checking, how are you setting this boundary condition?
There may be pressure gradient errors over steep topography, but I would expect the velocity not to be too bad.
all the best --cjc
On 24 September 2015 at 17:39, Tuomas Karna <tuomas.karna@gmail.com> wrote:
Hi Colin,
Thanks for your reply. On a couple of test cases I see grid-scale noise in the velocity field, which may be significant over steep bathymetry gradients. But thus far I have been imposing the bottom impermeability boundary condition in the conventional way, which may be the origin of the noise. I'll keep testing this.
- Tuomas
On 09/24/2015 01:18 AM, Colin Cotter wrote:
Hi Tuomas, So the way I have been advocating mimetic/compatible spaces for atmosphere/ocean with terrain-following meshes is to use the Piola transform, this does indeed make the horizontal space no longer horizontal as you say. This allows an easy implementation of the u.n=0 boundary condition on sloping surfaces. For our tests for flows over mountains, this doesn't cause any problems as far as I can see. This is slightly different from the classical approach which is to keep storing horizontal velocities, but this leads to a more complicated coupled boundary condition on sloping surfaces.
My suggestion is to just try it and see if there are any problems.
all the best --cjc
On 24 September 2015 at 07:46, Tuomas Karna <tuomas.karna@gmail.com> wrote:
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
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- http://www.imperial.ac.uk/people/colin.cotter
www.cambridge.org/9781107663916
_______________________________________________ firedrake mailing listfiredrake@imperial.ac.ukhttps://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- http://www.imperial.ac.uk/people/colin.cotter
www.cambridge.org/9781107663916
_______________________________________________ firedrake mailing listfiredrake@imperial.ac.ukhttps://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- http://www.imperial.ac.uk/people/colin.cotter www.cambridge.org/9781107663916
Okay, I'll give that a shot. On 09/24/2015 12:07 PM, Colin Cotter wrote:
Hi Tuomas,
Yes, you need to set u.n=0 on the bottom. In practice this is done by specifying all 3 components to zero, because only normal components are stored on the boundary.
all the best --cjc
On 24 September 2015 at 19:49, Tuomas Karna <tuomas.karna@gmail.com <mailto:tuomas.karna@gmail.com>> wrote:
Hi Colin,
I've been using the kinematic condition, u*nx + v*ny + w*nz = 0, but now that you mention it this is probably wrong for Piola elements. If (u,v) is along the bottom face by definition the w=0 at the bottom.
- Tuomas
On 09/24/2015 11:37 AM, Colin Cotter wrote:
Hi Tuomas,
Just checking, how are you setting this boundary condition?
There may be pressure gradient errors over steep topography, but I would expect the velocity not to be too bad.
all the best --cjc
On 24 September 2015 at 17:39, Tuomas Karna <tuomas.karna@gmail.com <mailto:tuomas.karna@gmail.com>> wrote:
Hi Colin,
Thanks for your reply. On a couple of test cases I see grid-scale noise in the velocity field, which may be significant over steep bathymetry gradients. But thus far I have been imposing the bottom impermeability boundary condition in the conventional way, which may be the origin of the noise. I'll keep testing this.
- Tuomas
On 09/24/2015 01:18 AM, Colin Cotter wrote:
Hi Tuomas, So the way I have been advocating mimetic/compatible spaces for atmosphere/ocean with terrain-following meshes is to use the Piola transform, this does indeed make the horizontal space no longer horizontal as you say. This allows an easy implementation of the u.n=0 boundary condition on sloping surfaces. For our tests for flows over mountains, this doesn't cause any problems as far as I can see. This is slightly different from the classical approach which is to keep storing horizontal velocities, but this leads to a more complicated coupled boundary condition on sloping surfaces.
My suggestion is to just try it and see if there are any problems.
all the best --cjc
On 24 September 2015 at 07:46, Tuomas Karna <tuomas.karna@gmail.com <mailto:tuomas.karna@gmail.com>> wrote:
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
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk <mailto:firedrake@imperial.ac.uk> https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- http://www.imperial.ac.uk/people/colin.cotter
www.cambridge.org/9781107663916 <http://www.cambridge.org/9781107663916>
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk <mailto:firedrake@imperial.ac.uk> https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- http://www.imperial.ac.uk/people/colin.cotter
www.cambridge.org/9781107663916 <http://www.cambridge.org/9781107663916>
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk <mailto:firedrake@imperial.ac.uk> https://mailman.ic.ac.uk/mailman/listinfo/firedrake
-- http://www.imperial.ac.uk/people/colin.cotter
www.cambridge.org/9781107663916 <http://www.cambridge.org/9781107663916>
_______________________________________________ firedrake mailing list firedrake@imperial.ac.uk https://mailman.ic.ac.uk/mailman/listinfo/firedrake
participants (2)
- 
                
                Colin Cotter
- 
                
                Tuomas Karna