I’m trying to set up the ParStokes solver for a 3D sheet-shelf simulation. I’ve got it running with no basal sliding under the sheet, but when I turn on basal sliding it gives me a segmentation fault. The culprit appears to be the UserFunction "SlideCoef_Contact". When I comment the lines out that contain the "SlideCoef_Contact", the segmentation fault disappears. The same is true if I set the Slip Coefficients to a constant value. Has anyone got ParStokes working with an ice shelf and ice sheet including basal sliding?

My basal BC in the sif is as follows:

- Code: Select all
`Boundary Condition 5`

Name = "bottom"

Target Boundaries = 5

Body Id = 3

Normal-Tangential FlowVar = Logical True

Normal-Tangential V = Logical True

Flow Force BC = Logical True

!Condition where the bed is stuck

Zb = Equals Bedrock

Zb Condition = Variable GroundedMask

Real MATC "tx + 0.5"

!Bedrock conditions

Slip Coefficient 2 = Variable Coordinate 1

Real Procedure "ElmerIceUSF" "SlidCoef_Contact"

Slip Coefficient 3 = Variable Coordinate 1

Real Procedure "ElmerIceUSF" "SlidCoef_Contact"

Sliding Law = String "Weertman"

Weertman Friction Coefficient = Real $C

Weertman Exponent = Real $(1.0/1.0)

Weertman Linear Velocity = Real 1.0

Grounding Line Definition = String "Discontinuous"

Test Contact Tolerance = real 1.0e-3

FlowVar 1 = Real 0.0

FlowVar 1 Condition = Variable GroundedMask

Real MATC "tx + 0.5"

V 1 = Real 0.0

V 1 Condition = Variable GroundedMask

Real MATC "tx + 0.5"

!

! Shelf conditions

External Pressure = Variable Coordinate 3

Real Procedure "ElmerIceUSF" "SeaPressure"

Slip Coefficient 1 = Variable Coordinate 3

Real Procedure "ElmerIceUSF" "SeaSpring"

ComputeNormal Condition = Variable GroundedMask

Real MATC "tx + 0.5"

Compute Sea Pressure = Logical True

Compute Sea Spring = Logical True

End