[pylithapp] # ---------------------------------------------------------------------- # PROBLEM DESCRIPTION # ---------------------------------------------------------------------- # # Subject SENT samplt to mode 1 tension, allowing crack to open # Fault friction is a nonlinear problem so we need to use the nonlinear solver [pylithapp.timedependent.implicit] solver = pylith.problems.SolverNonlinear [pylithapp.timedependent.formulation.time_step] total_time = 0.0*s dt = 1.0*s # Non-dimensionalize [pylithapp.timedependent.normalizer] length_scale = 1.0*mm shear_modulus = 0.4e+9*Pa # Boundary conditions [pylithapp.timedependent] dimension = 2 bc = [y_pos,y_neg] interfaces = [fault] # Output settings [pylithapp.timedependent.implicit] output = [domain,points] output.points = pylith.meshio.OutputSolnPoints # ---------------------------------------------------------------------- # boundary conditions (axial tension on y's, x faces are free surfaces) # ---------------------------------------------------------------------- # +y face [pylithapp.timedependent.bc] y_pos = pylith.bc.Neumann [pylithapp.timedependent.bc.y_pos] label = face_ypos db_initial = spatialdata.spatialdb.SimpleDB db_initial.label = Neumann BC on +y db_initial.iohandler.filename = spatialdb/tractions_mode1.spatialdb quadrature.cell = pylith.feassemble.FIATSimplex quadrature.cell.dimension = 1 quadrature.cell.quad_order = 2 # -y face [pylithapp.timedependent.bc] y_neg = pylith.bc.Neumann [pylithapp.timedependent.bc.y_neg] label = face_yneg db_initial = spatialdata.spatialdb.SimpleDB db_initial.label = Neumann BC on -y db_initial.iohandler.filename = spatialdb/tractions_mode1.spatialdb quadrature.cell = pylith.feassemble.FIATSimplex quadrature.cell.dimension = 1 quadrature.cell.quad_order = 2 # ---------------------------------------------------------------------- # faults # ---------------------------------------------------------------------- [pylithapp.timedependent.interfaces] fault = pylith.faults.FaultCohesiveDyn [pylithapp.timedependent.interfaces.fault] label = fault # Uncomment to apply tractions to fault surface even when it is open: open_free_surface = False # From CIG mailing list (set zero_tolerance order of mag greater than KSP atol) zero_tolerance = 1e-5 # Use the static friction model. friction = pylith.friction.StaticFriction friction.label = Static friction # We must define the quadrature information for fault cells. quadrature.cell = pylith.feassemble.FIATSimplex quadrature.cell.dimension = 1 #quadrature.cell.quad_order = 2 # Set static friction model parameters using a uniform DB. Set the # static coefficient of friction to 0.6 and cohesion to 0.0 Pa. friction.db_properties = spatialdata.spatialdb.UniformDB friction.db_properties.label = Static friction friction.db_properties.values = [friction-coefficient,cohesion] friction.db_properties.data = [0.1,0.0*Pa] # Prescribed fault surface tractions traction_perturbation = pylith.faults.TractPerturbation [pylithapp.timedependent.interfaces.fault.traction_perturbation] db_initial = spatialdata.spatialdb.SimpleDB db_initial.label = Initial fault tractions db_initial.iohandler.filename = spatialdb/tractions_crack.spatialdb db_initial.query_type = nearest # ---------------------------------------------------------------------- # Output # ---------------------------------------------------------------------- # Full domain [pylithapp.problem.formulation.output.domain] writer = pylith.meshio.DataWriterHDF5Mesh writer.filename = output/sample_displacements.h5 # Points on surface... [pylithapp.problem.formulation.output.points] coordsys.space_dim = 2 coordsys.units = m writer = pylith.meshio.DataWriterHDF5Mesh writer.filename = output/points_displacements.h5 reader.filename = output_points.txt # Suppress default material output [pylithapp.problem.materials.sample.output] cell_filter = pylith.meshio.CellFilterAvgMesh cell_info_fields = [density,lambda,mu] cell_data_fields = [stress,total_strain] writer = pylith.meshio.DataWriterHDF5Mesh writer.filename = output/sample_statevars_new.h5 #writer.filename = output/sample_statevars.vtk # ---------------------------------------------------------------------- # Additional PETSc settings # ---------------------------------------------------------------------- # NOTE: There are additional settings specific to fault friction. [pylithapp.petsc] # Friction sensitivity solve used to compute the increment in slip # associated with changes in the Lagrange multiplier imposed by the # fault constitutive model. friction_pc_type = asm friction_sub_pc_factor_shift_type = nonzero friction_ksp_max_it = 25 friction_ksp_gmres_restart = 30 # Uncomment to view details of friction sensitivity solve. #friction_ksp_monitor = true #friction_ksp_view = true #friction_ksp_converged_reason = true