[cig-commits] r7570 - short/3D/PyLith/trunk

brad at geodynamics.org brad at geodynamics.org
Sat Jun 30 18:57:29 PDT 2007


Author: brad
Date: 2007-06-30 18:57:29 -0700 (Sat, 30 Jun 2007)
New Revision: 7570

Modified:
   short/3D/PyLith/trunk/README
   short/3D/PyLith/trunk/TODO
Log:
Updated for version 1.0.1

Modified: short/3D/PyLith/trunk/README
===================================================================
--- short/3D/PyLith/trunk/README	2007-06-30 02:39:12 UTC (rev 7569)
+++ short/3D/PyLith/trunk/README	2007-07-01 01:57:29 UTC (rev 7570)
@@ -1,4 +1,4 @@
-We are pleased to announce the version 0.8.0 release of PyLith.
+We are pleased to announce the version 1.0.1 release of PyLith.
 
 See the file INSTALL for building and installation instructions.
 
@@ -9,3 +9,93 @@
     cig-short at geodynamics.org
 
 PyLith is free software.  See the file COPYING for copying conditions.
+
+This release allows the solution of both quasi-static and dynamic  
+problems in one, two, or three dimensions, and represents a complete  
+rewrite of the original PyLith. The code runs in either serial or  
+parallel mode, and the design allows for relatively easy scripting  
+using the Python programming language. Material properties and  
+parameters for boundary and fault conditions are specified using a  
+spatial database, which permits easy prescription of complex spatial  
+variations of properties and parameters. Simulation parameters are  
+generally specified through the use of simple ASCII files or the  
+command line.
+
+You can download the source code and binaries from
+
+    http://geodynamics.org/cig/software/packages/short/pylith
+
+Installation instructions are in the bundled README and INSTALL  
+files, as well as in the User Manual on the web page.
+
+PyLith is under active development and we expect a number of  
+additions and improvements in the near future. Likely enhancements  
+will include a more complete set of boundary conditions (absorbing  
+boundaries for use in dynamic modeling and traction boundary  
+conditions for use in quasi-static modeling), additional constitutive  
+models for both volume elements and cohesive (fault) elements,  
+automatic generation of higher-order elements from linear elements,  
+and the generation of Green's functions to be used in inversions.  
+Many of these features should be available in Fall 2007.
+
+======================================================================
+RELEASE NOTES
+======================================================================
+
+----------------------------------------------------------------------
+Version 1.0.1
+
+  * Code now includes both dynamic and quasi-static solutions.
+
+  * Completely rewritten in Python and C++, with bindings provided by
+    Pyrex/Pyrexembed.
+
+  * Easier specification of simulations:
+
+      - Parameters are all set using .cfg files (or .pml/command-line).
+
+      - Mesh may be directly imported from CUBIT, LaGriT, or using
+        PyLith mesh ASCII format.
+
+      - Material properties, fault dislocations, and BC are all given
+        using spatial databases, which are independent of mesh
+        discretization.
+
+  * Faults are now implemented using cohesive elements:
+
+      - Easy specification of kinematic fault slip using a spatial
+        database.
+
+      - Cohesive elements generate offsets in the mesh corresponding
+        to fault slip, which increase the accuracy of displacement
+        fields near faults and facilitate visualization of fault slip.
+
+      - Usage of cohesive elements will facilitiate the upcoming
+        addition of fault constitutive relations, where fault slip
+        occurs in response to prescribed physics.
+
+  * Improved implicit time-stepping eliminates need to perform more
+    than one iteration for linear rheologies.
+
+  * Code is now completely modular and object-oriented, which allows
+    much easier addition of new features.  Modules may be added
+    without having to recompile the code.
+
+  * Features present in 0.8 that are not present in 1.0 that will be
+    added in the near future.
+
+      - Traction boundary conditions
+
+      - Generalized Maxwell and Power-law Maxwell viscoelastic models
+
+  * Bug fixes
+
+      - Cohesive cells lacked consistent orientation (inconsistent
+        normals) in cases where cells were not ordered one side of the
+        fault and then the other.
+
+      - Final slip of zero resulted in fault slip and slip increments
+        of Nan.
+
+      - Parallel importing of meshes from LaGrit and CUBIT lacked
+        guards against all processors reading the files.

Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO	2007-06-30 02:39:12 UTC (rev 7569)
+++ short/3D/PyLith/trunk/TODO	2007-07-01 01:57:29 UTC (rev 7570)
@@ -2,19 +2,25 @@
 CURRENT ISSUES
 ======================================================================
 
-  0. Orientation of cohesive cells is not consistent over fault
-     surface. Unit tests now expose problem. [Matt is working on fixing this]
+  0. Add unit test to for zero fault slip and slipIncr (should be zero).
 
-  1. Need check to make sure quadrature scheme is compatible with
+  1. Add unit test for tri3 and tet4 for cells with only edges or
+  single vertex on fault.
+
+  2. Need check to make sure quadrature scheme is compatible with
   cells in mesh.
 
-  2. Need better error trapping when using LineParser. State of
+  3. Need better error trapping when using LineParser. State of
   ifstream is insufficient. Need state of istringstream buffer, but it
   is often !good() at eof(). Test of !good() and !eof()?
 
-  3. Need to add in documentation that fault id corresponds to the
-  material-id for cohesive cells.
+  4. Need to add explanation of output and output parameters to
+  manual.
 
+  5. Add dependency diagram to manual.
+
+  6. Better default PETSc settings. (pc_type=asm?)
+
 ======================================================================
 KNOWN DEFICIENCIES
 ======================================================================
@@ -58,13 +64,11 @@
 MAIN PRIORITIES (Brad)
 ======================================================================
 
-Create 6x6x4 meshes for examples.
+0. Create 6x6x4 meshes for examples.
   CUBIT
     Add GUI instructions in journal files.
-  LaGriT
-    Figure out why fault orientations are not consistent for LaGriT mesh.
 
-Create meshes for benchmarks
+1. Create meshes for benchmarks
 
   strike-slip
     tet (LaGriT)
@@ -73,16 +77,20 @@
     tet (LaGriT)
     hex (CUBIT)
 
-  FaultCohesiveKin
-    unit test for multiple cohesive cells for hex8 mesh
-      normal okay with rollover of fault dip?
+2. Reimplement SolutionIO.
 
-1. Additional unit tests
+   Follow implementation of MeshIO. SolutionIO implements extracting
+   data from Sieve and calls virtual functions to write data.
 
-  b. ElasticityExplicit and ElasticityImplicit
-    i. multiple materials
-    ii. partially constrained DOF
+   a. Reimplement SolutionIOVTK
+   b. Implement SolutionIOHDF5
 
+3. Additional unit tests
+
+   a. ElasticityExplicit and ElasticityImplicit
+      i. multiple materials
+      ii. partially constrained DOF
+
 ======================================================================
 SECONDARY PRIORITIES
 ======================================================================
@@ -107,15 +115,7 @@
 
 2. Implement absorbing boundary conditions
 
-3. Reimplement SolutionIO.
-
-   Follow implementation of MeshIO. SolutionIO implements extracting
-   data from Sieve and calls virtual functions to write data.
-
-   a. Reimplement SolutionIOVTK
-   b. Implement SolutionIOHDF5
-
-4. Implement MeshIOHDF5 & HDF5 (helper class)
+3. Implement MeshIOHDF5 & HDF5 (helper class)
    a. C++ objects
    b. unit tests at C++ level
    c. Python object (MeshIOHDF5)
@@ -123,33 +123,58 @@
    e. unit tests at Python level
 
 ======================================================================
-UNRESOLVED ISSUES
+PLANNED RELEASES
 ======================================================================
 
-======================================================================
-THINGS WE NEED SIEVE TO DO (Matt)
-======================================================================
+----------------------------------------------------------------------
+PyLith 1.1
+----------------------------------------------------------------------
+HDF5 output
+  volume (solution field)
+  ground surface (or other surfaces) (solution field)
+  points (solution field)
+  cells (state variables)
+Absorbing boundary conditions
+Traction boundary conditions
+Power-law viscoeleatic model
+Velocity boundary conditions
+Gravity (spatial db)
 
-3. Distribute mesh/bc in scalable manner. 
+----------------------------------------------------------------------
+PyLith 1.2
+----------------------------------------------------------------------
+Fault constitutive model
 
-  Inputs:
-    * PETSc Mesh (with bc) (global on each processor)
-    * number of processors
-  Outputs:
-    * PETSc Mesh on each processor (restricted to processor)
+----------------------------------------------------------------------
+PyLith 1.3
+----------------------------------------------------------------------
+Green's functions
 
-  [DONE]
+----------------------------------------------------------------------
+PyLith 1.4
+----------------------------------------------------------------------
+Coupling
+Adaptive time stepping
 
-4. Global refinement of mesh.
+----------------------------------------------------------------------
+PyLith 1.5
+----------------------------------------------------------------------
+Nonlinear solvers
+Large deformation
 
-  Inputs:
-    * PETSc Mesh (original)
-    * refinement factor (limited to factor of 2?)
-  Outputs:
-    * PETSc Mesh (refined)
+----------------------------------------------------------------------
+PyLith 1.6
+----------------------------------------------------------------------
+Adaptive mesh refinement
 
-5. Construct mesh with higher order cells from mesh with lower order cells.
+======================================================================
+THINGS WE NEED SIEVE TO DO (Matt)
+======================================================================
 
+1. Boundary mesh
+
+2. Construct mesh with higher order cells from mesh with lower order cells.
+
   Many mesh generators do not know how to construct higher order
   elements, so we will need a general utility for doing this.
 
@@ -160,14 +185,14 @@
   Output:
     * PETSc Mesh
 
-  Note: I think this would give us incredible flexibility in selecting
-  the appropriate discretization for a problem. For example, I think
-  it would allow us to use spectral elements.
+3. Global refinement of mesh.
 
-6. Trial run with quadratic elements
+  Inputs:
+    * PETSc Mesh (original)
+    * refinement factor (limited to factor of 2- 2 or 4)
+  Outputs:
+    * PETSc Mesh (refined)
 
-7. Trial run with fully interpolated mesh
-
 ======================================================================
 QUESTIONS FOR LEIF
 ======================================================================



More information about the cig-commits mailing list