From 80f5e144d628016577bba911f6de0381a1a6e44c Mon Sep 17 00:00:00 2001 From: Iskander Ibragimov <123633876+IskanderI@users.noreply.github.com> Date: Wed, 7 Feb 2024 16:45:46 +0100 Subject: [PATCH] Create volcano_test_v2.dat commited test case for development with only 1 timestep run and 1 snes solve iteration ALSO TURNED OFF THERMAL DIFFUSION AND INITIAL STEADY STATE TEMPERATURE INITIAL GUESS --- input_models/ScalingTests/volcano_test_v2.dat | 286 ++++++++++++++++++ 1 file changed, 286 insertions(+) create mode 100644 input_models/ScalingTests/volcano_test_v2.dat diff --git a/input_models/ScalingTests/volcano_test_v2.dat b/input_models/ScalingTests/volcano_test_v2.dat new file mode 100644 index 00000000..717a113c --- /dev/null +++ b/input_models/ScalingTests/volcano_test_v2.dat @@ -0,0 +1,286 @@ +# This is a setup that simulates hang instabilities on a volcano, using viscoelastoplastic material properties + +#=============================================================================== +# Scaling +#=============================================================================== + +# Geometry +units = geo + +# Always in SI units!! +unit_temperature = 1000 +unit_length = 1000 +unit_viscosity = 1e20 +unit_stress = 1e9 + +#=============================================================================== +# Time stepping parameters +#=============================================================================== + + dt = 1e-7 # time step + dt_min = 1e-9 # minimum time step (declare divergence if lower value is attempted) + dt_max = 1e-3 # maximum time step + inc_dt = 0.5 # time step increment per time step (fraction of unit) + CFL = 0.5 # CFL (Courant-Friedrichs-Lewy) criterion + CFLMAX = 0.8 # CFL criterion for elasticity + nstep_ini = 0 # save output for n initial steps + nstep_max = 1 # maximum allowed number of steps (lower bound: time_end/dt_max) + nstep_out = -1 # save output every n steps + +#=============================================================================== +# Grid & discretization parameters +#=============================================================================== + +# relative geometry tolerance for grid manipulations (default 1e-9) + + gtol = 1e-9 + +# Number of cells for all segments + nel_x = 128 + nel_y = 128 + nel_z = 128 + +# Coordinates of all segments (including start and end points) + coord_x = -5 15 + coord_y = -10 5 + coord_z = -5 5 + +#=============================================================================== +# Free surface +#=============================================================================== + + surf_use = 1 # free surface activation flag + surf_corr_phase = 1 # air phase ratio correction flag (due to surface position) + surf_level = 5 # initial level + surf_air_phase = 0 # phase ID of sticky air layer + surf_max_angle = 45.0 # maximum angle with horizon (smoothed if larger) + surf_topo_file = VolcanoTopography.topo # initial topography file (redundant) + erosion_model = 0 # erosion model [0-none (default), 1-infinitely fast] + sediment_model = 0 # sedimentation model [0-none (dafault), 1-prescribed rate] + +#=============================================================================== +# Boundary conditions +#=============================================================================== + +# noslip = 0 0 0 0 0 0 + + temp_top = 0 # Temperature @ top + temp_bot = 800 # Temperature @ bottom; side BC's are flux-free + + # Background strain rate parameters +# exx_num_periods = 1 # number intervals of constant strain rate (x-axis) +# exx_strain_rates = -5e-16 # strain rates for each interval (negative=compression) + + # Free surface top boundary flag + open_top_bound = 1 + +#=============================================================================== +# Jacobian & residual evaluation parameters +#=============================================================================== + + gravity = 0.0 0.0 -9.81 # gravity vector + act_temp_diff = 0 # temperature diffusion activation flag + act_steady_temp = 0 # steady-state temperature initial guess activation flag + steady_temp_t = 0.1 # time for (quasi-)steady-state temperature initial guess + nstep_steady = 10 # number of steps for (quasi-)steady-state temperature initial guess (default = 1) + act_heat_rech = 0 # heat recharge activation flag + init_lith_pres = 1 # initial pressure with lithostatic pressure + init_guess = 1 # initial guess flag + eta_min = 1e17 # viscosity upper bound + eta_max = 1e23 # viscosity lower limit + eta_ref = 1e22 # reference viscosity (initial guess) + T_ref = 20 # reference temperature + p_lim_plast = 1 + + min_cohes = 1e6 # cohesion lower bound [Pa] + min_fric = 1.0 # friction lower bound [degree] + tau_ult = 1e9 # ultimate yield stress [Pa] + + +#=============================================================================== +# Solver options +#=============================================================================== + + SolverType = multigrid # solver [direct or multigrid] + #MGLevels = 3 # number of MG levels + MGSweeps = 25 # number of MG smoothening steps per level + MGSmoother = jacobi # type of smoothener used [chebyshev or jacobi] + MGJacobiDamp = 0.5 # Dampening parameter [only employed for Jacobi smoothener; default=0.6] + DirectSolver = superlu_dist # mumps/superlu_dist/pastix/umfpack + +#=============================================================================== +# Model setup & advection +#=============================================================================== + + msetup = geom + bg_phase = 1 # background phase ID + nmark_x = 3 # markers per cell in x-direction + nmark_y = 3 # ... y-direction + nmark_z = 3 # ... z-direction + rand_noise = 1 # random noise flag + advect = rk2 # advection scheme + interp = minmod # velocity interpolation scheme + mark_ctrl = basic # marker control type + nmark_lim = 16 100 # min/max number per cell + + + phase = 2 + axes = 7.0 5.0 3.0 # semi-axes of ellipsoid in x, y and z + center = 6.0 -2.0 2.0 + + + + phase = 1 + axes = 14.0 14.0 1.0 # semi-axes of ellipsoid in x, y and z + center = 0.0 0.0 -4.0 + Temperature = constant # optional: Temperature of the sphere. possibilities: [constant] + cstTemp = 1200 # required in case of [constant]: temperature value [in Celcius in case of GEO units] + + +#=============================================================================== +# Output +#=============================================================================== + +# Grid output options (output is always active) + out_file_name = Volcano_test # output file name + out_pvd = 0 # activate writing .pvd file + +# AVD phase viewer output options (requires activation) + out_avd = 0 # activate AVD phase output + out_avd_pvd = 0 # activate writing .pvd file + out_avd_ref = 0 # AVD grid refinement factor + +# free surface output + out_surf = 0# activate surface output + out_surf_pvd = 0 # activate writing .pvd file + + +#=============================================================================== +# ............................ Material Parameters ............................. +#=============================================================================== + +# ------------------- Air ------------------- + + Name = air + ID = 0 + rho = 1 + alpha = 3e-5 + + # Linear Viscosity + eta = 1e17 + + # Elastic parameters + G = 1e10 + nu = 0.2 + + # Thermal parameters + k = 30 + Cp = 1000 + + # Plastic parameters + ch = 20e6 + fr = 30 + + +# ------------------- Volcano ------------------- + + Name = Volcano + ID = 1 + rho = 2900 + alpha = 3e-5 + + # dislocation viscosity + eta = 1e23 + + + # Elastic parameters + G = 3e10 + nu = 0.3 + + # Thermal parameters + k = 3 + Cp = 1000 + + # Plastic parameters + ch = 5e6 + fr = 10 + eta_st = 5e20 # stabilization viscosity (default is eta_min) + + + + + # ------------------- weak ------------------- + + Name = WeakZone + ID = 2 + rho = 2900 + alpha = 3e-5 + + # dislocation viscosity + eta = 1e23 + + + # Elastic parameters + G = 3e10 + nu = 0.3 + + # Thermal parameters + k = 3 + Cp = 1000 + + # Plastic parameters + ch = 1e6 + fr = 5 + eta_st = 5e20 # stabilization viscosity (default is eta_min) + + + +# End of defining material properties for all phases ---------------------------------------- + + +#=============================================================================== +# PETSc options +#=============================================================================== + + +# SNES + + # Eisenstatt-walker + -snes_ksp_ew + -snes_ksp_ew_version 3 + -snes_ksp_ew_rtol0 1e-3 + -snes_ksp_ew_rtolmax 1e-2 + + -snes_ksp_ew_gamma 0.9 + -snes_ksp_ew_alpha 2.0 + + + -snes_npicard 5 + -snes_max_it 1 + -snes_rtol 1e-5 + -snes_atol 1e-6 + -snes_PicardSwitchToNewton_rtol 1e-3 #-7 + -snes_linesearch_monitor + + -gmg_pc_type mg + -gmg_pc_mg_galerkin + -gmg_pc_mg_type multiplicative + -gmg_pc_mg_cycle_type v +# -gmg_pc_view + + -gmg_mg_levels_ksp_type richardson + -gmg_mg_levels_ksp_richardson_scale 0.5 + -gmg_mg_levels_ksp_max_it 5 + -gmg_mg_levels_pc_type jacobi + + -gmg_pc_mg_levels 4 + -crs_ksp_type preonly + -crs_pc_type telescope + -crs_pc_telescope_reduction_factor 1 + -crs_telescope_ksp_type gmres + -crs_telescope_ksp_rtol 1e-5 + -crs_telescope_pc_type gamg + -crs_telescope_pc_gamg_threshold 0.05 + -crs_telescope_pc_gamg_coarse_eq_limit 1000 + +