Hello everyone.
I’m simulating a collision process (initial composition in Fig.1 ). The upper/lower crust (upcrust1
/lowcrust1
) compositions diverge unexpectedly during runtime(Fig 2,raw data in collision1 2 3.zip,please merge them because the file is too large to upload directly).Is that because of my velocity boundary condition?
collsion1.zip (7.8 MB)
collsion2.zip (6.5 MB)
collision3.zip (6.3 MB)
set Dimension = 2
set Use years in output instead of seconds = true
set End time = 8e6
set Output directory =collision
SOLVER STUFF
non-linear stuff
set Nonlinear solver scheme = single Advection, iterated Stokes
set Nonlinear solver tolerance = 1e-3
set Max nonlinear iterations = 55
set CFL number = 1
set Resume computation = auto
set Pressure normalization= no
set Surface pressure=0
linear solver stuff
subsection Solver parameters
subsection Advection solver parameters
set GMRES solver restart length = 200
end
subsection Stokes solver parameters
set Linear solver tolerance = 1e-3
set Linear solver A block tolerance = 1.0e-3
set Use full A block as preconditioner = false
set Stokes solver type = block AMG
set Number of cheap Stokes solver steps= 5000
end
set Temperature solver tolerance = 1e-11
set Composition solver tolerance = 1e-11
end
subsection Discretization
set Temperature polynomial degree = 2
set Composition polynomial degree = 2
set Stokes velocity polynomial degree = 2
set Use discontinuous composition discretization = true
end
subsection Gravity model
set Model name = vertical
subsection Vertical
set Magnitude = 9.81
end
end
subsection Boundary velocity model
set Tangential velocity boundary indicators = bottom,right,top
set Prescribed velocity boundary indicators = left :function
subsection Function
set Function constants = cm=100.0, transition_upper_y=500e3, transition_lower_y=160e3,
right_speed=5.0, left_speed=-5.0, x_divider=1500e3
set Variable names = x,y
set Function expression = (x < x_divider) ? ((y >= transition_upper_y) ? right_speed/cm : (y <= transition_lower_y) ? left_speed/cm :\
right_speed/cm + (left_speed/cm - right_speed/cm) *(y - transition_upper_y) / (transition_lower_y - transition_upper_y)) :0;0
end
end