Skip to content

Commit

Permalink
Create volcano_test_v2.dat
Browse files Browse the repository at this point in the history
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
  • Loading branch information
IskanderI authored Feb 7, 2024
1 parent 9f31420 commit 80f5e14
Showing 1 changed file with 286 additions and 0 deletions.
286 changes: 286 additions & 0 deletions input_models/ScalingTests/volcano_test_v2.dat
Original file line number Diff line number Diff line change
@@ -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

<EllipsoidStart>
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
<EllipsoidEnd>

<EllipsoidStart>
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]
<EllipsoidEnd>

#===============================================================================
# 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 -------------------
<MaterialStart>
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
<MaterialEnd>

# ------------------- Volcano -------------------
<MaterialStart>
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)

<MaterialEnd>


# ------------------- weak -------------------
<MaterialStart>
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)

<MaterialEnd>

# End of defining material properties for all phases ----------------------------------------


#===============================================================================
# PETSc options
#===============================================================================
<PetscOptionsStart>

# 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

<PetscOptionsEnd>

0 comments on commit 80f5e14

Please sign in to comment.