General issues related to running !PyLith. === Nondimensionalization === It is '''VERY IMPORTANT''' to make sure that the scales used in the nondimensionalization are appropriate for your problem. !PyLith can solve problems across an extremely wide range of spatial and temporal scales if the appropriate scales are used in the nondimensionalization. Due to roundoff errors and convergence tolerances in the iterative solvers, !PyLith relies on reasonable scales in the solution in constructing the friction criterion and preconditioning the system. Failure to set appropriate scales in the nondimensionalization will cause the solution to be garbage. * Quasi-static problems {{{ Default values: relaxation_time = 1.0*year length_scale = 1.0*km pressure_scale = 3.0e+10*Pa Recommended values: relaxation_time = TIME_STEP length_scale = DISCRETIZATION_SIZE or DISPLACEMENT_MAGNITUDE pressure_scale = SHEAR_MODULUS }}} * Dynamic problems {{{ Default values: shear_wave_speed = 3.0*km/s density = 3000.0*kg/m**3 wave_period = 1.0*s }}} {{{ Recommended values: shear_wave_speed = MINIMUM_SHEAR_WAVE_SPEED density = DENSITY wave_period = MINIMUM_WAVE_PERIOD }}} === Fault output === Slip and traction vectors are output in the fault coordinate system (along strike, up-dip, and opening). The direction of the slip vector corresponds to the direction of motion on the "negative" side of the fault, which is defined by the origin of the fault normal vector. To convert to the global coordinate system, request that the fault orientation be included in the fault output via: {{{ vertex_info_fields = [strike_dir,dip_dir,normal_dir] }}} With this information it is easy to rotate the slip or traction vector from the fault coordinate system to the global coordinate system. This is usually done in a Python script with HDF5 output or within !ParaView using the calculator. The expression for the slip in global coordinates is: {{{ (slip_X*strike_dir_X+slip_Y*dip_dir_X)*iHat+(slip_X*strike_dir_Y+slip_Y*dip_dir_Y)*jHat+(slip_X*strike_dir_Z+slip_Y*dip_dir_Z)*kHat }}} === Spontaneous (Dynamic) Rupture in Quasistatic Simulations === Use of the !FaultCohesiveDyn object for spontaneous (dynamic) rupture in quasistatic simulations requires careful selection of solver parameters. See Session V of the 2013 Crustal Deformation Modeling tutorial for a detailed discussion.