This is an old revision of the document!
1. Xianjie zha: where can I find the slides?
* Brad Aagaard: From the workshop web page (https://geodynamics.org/cig/events/calendar/2015-cdm-tutorial). Click on “Agenda”. See the links labeled “slides” in the Title column in Session I.
2. Stephanie Wollherr: what is the difference between the Lagrange multiplier approach and the traction-at-split-nodes approach for the slip implementation at the fault?
* Brad Aagaard: In general there is very little difference in the mathematics between the Lagrange multiplier approach and traction-at-split-nodes. In the bookkeeping and implementation in actual code, there are differences. The cohesive cells and Lagrange multipliers provide a topological and mathematical description of the fault traction, which we find convenient.
3. what is the viscosity range that Pylith can compute ?
* Brad Aagaard: PyLith includes nondimensionalization of all values internally, so selecting appropriate scales allows PyLith to efficiently solve problems across a vary wide range of scales. Domains from cm in size to thousands of km can be used. Similarly, one can use time scales from fractions of a second to thousands of years. As a result, PyLith can accommodate almost any reasonable viscosity.
9. Wajahat Ali: Hi- I'm in pylith-2.1.0-linux-x86 folder can you please guide me how to proceed next to run Pylith through terminal ?
* Brad Aagaard: cd src/pylith-2.1.0/examples. The step03.cfg that I demonstrated is in 3d/hex8. See the PyLith manual for where the folders associated with the other examples.
10. Wajahat Ali: so on linux system I first need to install using INSTALL file.
* Brad Aagaard: We strongly recommend that you start with the PyLith binary. There are detailed instructions in the manual. The basic steps are: (1) unpack the binary. (2) Change to the top-level directory of the unpacked distribution, (3) run “source setup.sh”. You can then change to a directory with the example input files, such as examples/3d/hex8, and run a simulation using PyLith.
4. what about easy restarting (i.e. if you run an EQ cycle model for n-years and want to continue for longer total time)?
* Brad Aagaard: PyLith has good support for restarting for prescribed slip simulations via initial stresses and state variables. Spontaneous rupture (fault friction) has some ability to specify initial states. We don't have a mechanism for specifying initial displacements/velocities. We plan to rectify this in PyLith v3.0 as part of switching to PETSc time stepping.
We did find a bug in the initial stress specification for viscoelastic materials in v2.1 (I think it also applies to earlier releases too). This will be fixed in the upcoming release in the next few weeks.
8. so we can do forward modeling (if we have disp and x-y) ?
* Brad Aagaard: I am not sure what you mean. The current version of PyLith is designed for forward calculations. It does have a user-friendly interface for static Green's functions that are intended for use in inverting for coseismic slip from GPS/InSAR data in complex 2-D and 3-D domains.
12. Wajahat Ali: can you please explain more about nearest neighbor and will this step introduce error ? in locations
* Brad Aagaard: For spatial databases the default is nearest point interpolation (interpolation is a misnomer because it isn't interpolation but just assigning values). The linear interpolation is conventional linear interpolation. Which one you uses depends on the type of spatial variation you have (linear, piecewise uniform, etc). You can optimize the choice and spatial database for the specific variation that you want.
14. Farrokh: Can we use the same procedure you described for multiple fractures? For example is we have multiple opening fractures under the ground, and by using surface deformation to find opening distributions along multiple parallel fractures
* Brad Aagaard: Yes, you can use the Green's functions procedures for inversions on multiple faults. In a single PyLith simulation you can only compute Green's functions for a single fault, so multiple simulations would be required. As a result, it involves more bookkeeping than a single fault, but the procedure is generally the same.
15. Katie Jacobs: Are there any general rules about how many green's functions we would want to generate over a given distance?
* Brad Aagaard: This really depends on the number of observations and the spacing between observations. Checkerboard resolution tests can give you a general idea.
16. Is it possible to extract elastic medium parameters through the surface displacement using this code?
* Brad Aagaard: PyLith does not currently have support for adjoint simulations for constraining elastic properties. This could be done as a series of forward problems. This may be possible in future versions of PyLith via the multiphysics capabilities that will make it possible to supply your own governing equation.
11. Wajahat Ali: sorry just to clear my concept slip along fault and displacements (x-y-z) are different?
* Brad Aagaard: In 2-D the HDF5 output only includes the two components of motion (x and y components for displacement/velocity and left-lateral and opening for slip/tractions). ParaView automatically calls these two components x and y. Within ParaView we often want a vector (3 components) so we use the Calculator tool to assemble a vector from the components (displacement_x*iHat + displacement_y*jHat).
13. Farhan Javed 2: is it possible in pylith to output the displacement vector along the line of sight (LOS)?
* Brad Aagaard: PyLith outputs displacement vectors (3 components in 3-D), so to get the LOS vector you can dot the displacement vector in output with the look direction.
5. How did you realize which type of mesh to choose ?
* Brad Aagaard: We often decide on the type of mesh (quad vs tri and hex vs tet) based on the geometry. Hex/quad meshes are good for regular sized domains with relatively uniform discretization sizes. Tet/tri meshes are good for irregular domains and large variations in discretization sizes. In general you need to know something about the geometry of your domain and the spatial variation of the expected solution.
6. Could you explain more about how to deal with topography by UV ?
* Brad Aagaard: We don't have time to cover complex meshing in this tutorial. There are some included with PyLith in examples/meshing. For topography see examples/meshing/surface_nurbs/dem. These examples are discussed in previous tutorials with videos on demand. See the CDM2014 tutorial (Mon 1:00pm-2:30pm) CUBIT/Trelis: Complex geometry and sizing functions at https://geodynamics.org/cig/events/calendar/2014-cdm-workshop/meeting-info/agenda/ and CDM2013 Session II: Intermediate CUBIT Meshing Strategies at https://wiki.geodynamics.org/software:pylith:cdm2013.
7. In Trelis, to model multiple fractures in a 3D body, do we need to define multiple volume including or Trelis can understand fractures as a surface of discontinuity in a single volume without putting fractures between adjacent volumes?
* Brad Aagaard: PyLith relies on an interior surface (group of vertices associated with cell faces) for faults. CUBIT/Trelis can only generate this type of information if the surfaces for the faults (fracture surfaces) separate two volumes. This means the surfaces must extend to the edges of the volumes. Sometimes it is convenient to insert artificial surfaces (for example, a horizontal surface near the top of the mantle) so that you can divide your domain into pieces and allow your fault surfaces to truncate at this artificial surface rather than extend them all the way to the bottom of your domain. In either case you need not define the nodeset in CUBIT/Trelis to be the entire surface, but can create a set of vertices over a subset of the surface to match the extend of the fault/fracture.