Page 1 of 1

Updating side boundaries with two free surfaces

Posted: 26 Apr 2018, 21:49
by lstevens
Hello All,

I am attempting to model a 2D section (x and z, across flow) of a floating ice shelf.

In my model set up, I define both the ice shelf surface (hs) and ice shelf base (hb) as free surfaces, whose position in z changes with accumulation and basal melt, respectively. I keep the x-location of the right and left hand sides fixed, as I want my 2D slice of the ice shelf to not be able to grow outwards to the sides. However, I do want the right and left boundaries to be able to change their position in z to match the ice shelf surface and ice shelf base.

I am not able to achieve this at present by updating the mesh along the RHS and LHS (but I could be doing the update incorrectly). The extent of the LHS and RHS stays fixed in z- while the free surface ice shelf base, for example, moves down in z, resulting in a discontinuity at the corner which is compensated for across a few corner elements.

I have attached the .sif file (BCs at the bottom) and .grd files I am using below, as well as a figure showing the issues at the corners:
example figure: note rounding on bottom right and left corners, as well as funkiness on top right and left corners.
example figure: note rounding on bottom right and left corners, as well as funkiness on top right and left corners.
Screen Shot 2018-04-26 at 2.45.38 PM.png (18.94 KiB) Viewed 4375 times
How can I update the left and right boundaries in z such that they span the distance from the ice shelf surface to the ice shelf base?

Thanks for your help and time,
Laura

Re: Updating side boundaries with two free surfaces

Posted: 27 Apr 2018, 09:50
by gagliar
Hi Laura,

First, I would suggest to use the StructuredMeshMapper solver instead of the old MeshUpdate one. See for an example the Tests GL_MISMIP in [ELMER_TRUNK]/elmerice/Tests/GL_MISMIP.

Second, I think the only conditions for the right and left boundaries are "Velocity 1 = Real 0.0" and "Mesh Update 1 = Real 0.0". Indeed, the External Pressure will apply a load perpendicular to the boundary (horizontal) with no effect as the velocity is prescribed in that direction. For the Mesh Update 2 condition, it is not correct (and not also not needed as already accounted in the top and bottom boundaries). It is not correct because you only prescribe the bottom Mesh Update 2, and the variables hb and hbREF are only known on the bottom surface so that for the upper node of the right and left boundaries, the condition

Code: Select all

 Mesh Update 2 = Variable hb, hbREF
    Real MATC "tx(0)-tx(1)"
certainly reduces to

Code: Select all

Mesh Update 2 = 0.0
In other words, try it with:

Code: Select all

Boundary Condition 3
  name = Left
  Target Boundaries = 2
  Velocity 1 = Real 0.0
  Mesh Update 1 = Real 0.0
  Save Line = Logical False
End


Boundary Condition 4
  name = Right
  Target Boundaries = 4
  Velocity 1 = Real 0.0
  Mesh Update 1 = Real 0.0
  Save Line = Logical False
End
Hope it helps,
Olivier