[cig-commits] r22278 - short/3D/PyLith/branches/v1.7-trunk

brad at geodynamics.org brad at geodynamics.org
Fri Jun 14 15:06:34 PDT 2013


Author: brad
Date: 2013-06-14 15:06:34 -0700 (Fri, 14 Jun 2013)
New Revision: 22278

Modified:
   short/3D/PyLith/branches/v1.7-trunk/README
   short/3D/PyLith/branches/v1.7-trunk/TODO
   short/3D/PyLith/branches/v1.7-trunk/configure.ac
   short/3D/PyLith/branches/v1.7-trunk/setup.py
Log:
Updated version number.

Modified: short/3D/PyLith/branches/v1.7-trunk/README
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/README	2013-06-14 22:04:11 UTC (rev 22277)
+++ short/3D/PyLith/branches/v1.7-trunk/README	2013-06-14 22:06:34 UTC (rev 22278)
@@ -1,4 +1,4 @@
-We are pleased to announce release of PyLith version 1.8.1
+We are pleased to announce release of PyLith version 1.9.0
 
 Please submit bug reports via the World Wide Web at:
     http://geodynamics.org/roundup    
@@ -62,7 +62,7 @@
   formulation = pylith.problems.ExplicitTet4
 
 ----------------------------------------------------------------------
-Version 1.8.1
+Version 1.9.0
 ----------------------------------------------------------------------
 
 * Bug fixes

Modified: short/3D/PyLith/branches/v1.7-trunk/TODO
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/TODO	2013-06-14 22:04:11 UTC (rev 22277)
+++ short/3D/PyLith/branches/v1.7-trunk/TODO	2013-06-14 22:06:34 UTC (rev 22278)
@@ -35,81 +35,113 @@
   Lagrange multipliers.
 
 ======================================================================
-1.8.0
+KNOWN DEFICIENCIES
 ======================================================================
 
-* GenMaxwellQpQs [BRAD]
+* Dirichlet BC and fault BC
 
-* GPU utilization
+  Can't use block Jacobi preconditioner when Dirichlet BC overlap with
+  fault BC's, because we end up with a DOF associated with a Lagrange
+  multiplier that is "free". Not sure if this is okay, when the fault
+  is at an angle to the boundary.
 
-  Finite-element integrations
+    Might be able to fix this problem by examining constraints
+    relative to orientation and if orientation coincides with
+    preexisting constraint, then constrain Lagrange multiplier DOF.
 
-  Modeled on snes/examples/tutorials/ex52.
+  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()?
 
-  Refactor integration routine so that it uses batches rather than
-  individual cells.
+* ZeroDispDB
 
-  + Implicit elasticity finite-element integration
-  + Explicit elasticity finite-element integration
+  The default BC is ZeroDispDB which hardwires the values in a UniformDB
+  to 0. No error message is generated if the user sets the values or
+  data properties and they are overwritten by the hardwired values. A
+  possible solution is for ZeroDispDB to use a C++ UniformDB but not
+  inherit from the Python UniformDB.
 
-* Reimplement parameters to use PackedFields. [BRAD]
+* Fault orientatin in 1-D mesh
 
-    Coordinate this with Matt's new Section stuff.
+  How do we determine the orientation for a fault in a 1-D mesh? We
+  assume normaldir is +1.0, but cohesive cells could be created so
+  that the fault has a normaldir of -1.0. If the normaldir is -1.0,
+  then we need to flip the orientation field to get the correct
+  sense of slip.
 
-    Fields
-    FieldsNew -> PackedFields
-    SolutionFields [do this in multifields]
-      Use PackedFields for acc, vel, disp(t+dt), disp(t), etc?
-      Use Field for dispIncr(t->t+dt), residual(t)
 
+======================================================================
+PLANNED RELEASES
+======================================================================
+
+----------------------------------------------------------------------
+Release 2.0
+----------------------------------------------------------------------
+
 * Higher order
 
+   Nonisoparametric cells
+
+     C++ unit tests for CellGeometry refPtsToGlobal() and jacobian()
+     Update quadrature to use CellGeometry refPtsToGlobal() and
+     jacobian() Remove CellGeometry jacobian(double_array)
+
+----------------------------------------------------------------------
+Release 2.1
+----------------------------------------------------------------------
+
 * Coupling
 
   Use slip rate threshold for quasi-static -> dynamic transition.
   Use velocity threshold for dynamic -> quasi-static transition.
 
-* Field split.
+  1. Damping for Q
+    Generalized Maxwell approach for attenuation
 
-    Add flag to material [default is false] for creating null vector
-    When setting up solver, create null vector, and pass it to KSP
+----------------------------------------------------------------------
+Release 2.x
+----------------------------------------------------------------------
 
-  Need to check performance of custom fault preconditioner.
+  1. Restart / checkpointing
+    Checkpointing
+    Spin up
+    Saving quasi-static information is probably more important
 
-* Line search [MATT]
+----------------------------------------------------------------------
+Low-priority items (release unknown)
+----------------------------------------------------------------------
 
-  Line search should be improved to include the inequality constraints.
+  6. FaultCohesiveTract (dikes)
 
+  4. Improved support for spherical geometry in user-interface
 
+----------------------------------------------------------------------
+LONG TERM WISH LIST
+----------------------------------------------------------------------
 
-* Scalable distribution [MATT]
+Student
+      Create a spatial database for the PREM model
 
-  + It appears that topology adjustment is not currently limiting the runs
-  + Need a more memory scalable Distribution
-    + Consider simple distribution, followed by cleanup
-  + I think the Overlap structure is probably taking up all the memory
-    + send/recvMeshOverlap is only used in completeConesV() to call SimpleCopy::copy()
-      + Can we use a lighter-weight structure to sit in copy()?
+  5. Use shared pointers for objects where both Python and C++ hold pointers.
 
-  + Need ribbon around fault in order to develop algorithm
 
-----------------------------------------
-MISCELLANEOUS
-----------------------------------------
+* GPU utilization
 
-* Memory model [MATT and BRAD]
+  Finite-element integrations
 
-  (1) The memory logging for distribution logs Creation and Stratification
-  as Creation. Because we set the logging stages in PyLith and these
-  are lumped together within the same Sieve routine, we cannot
-  separate them.
+  Modeled on snes/examples/tutorials/ex52.
 
-  IntSections - Matt improved distribution to use allow IntSections
-  over vertices or cells rather than vertices + cells. This cuts
-  differences down to 75%.
+  Refactor integration routine so that it uses batches rather than
+  individual cells.
 
-  Need to check sum, because we may not be tracking deallocation.
+  + Implicit elasticity finite-element integration
+  + Explicit elasticity finite-element integration
 
+* Line search [MATT]
+
+  Line search should be improved to include the inequality constraints.
+
+
 ----------------------------------------------------------------------
 SECONDARY PRIORITIES
 ----------------------------------------------------------------------
@@ -129,17 +161,6 @@
       + Refactor friction sensitivity solve, fault preconditioner, and
         adjustSolnLumped()
 
-* Optimization
-  + inline methods (what isn't getting inlined) -Winline
-  + Specialized elasticity integrator objects for Quad4, Hex8?
-    - Add for lgdeform, implicit time integration?
-
-* Explicit time step
-
-  utility code
-    Compute stable explicit time step
-    Write stable time step explicit (CFL, adhoc)
-
 * Interpolated meshes + temperature field
   No fault, linear elasticity
   Benchmark memory use and speed
@@ -161,11 +182,6 @@
 
     Use kinematic slip unless fault constitutive model suggests larger slip
 
-* utilities
-  + pylith_eqsummary
-    Calculate eq statistics for given slip model (VTK output).
-    Ability to get shear modulus on both sides of the fault (use fault normal).
-
 * Lumped solver [Brad]
   + Need to finish unit tests
 
@@ -174,9 +190,6 @@
   FaultCohesiveDyn
     adjustSolnLumped()
 
-  Make fault nucleation (initial tractions) modular (allow space/time
-  variation).
-
 * Time step based on state variables
 
   TimeStepStrainRate object
@@ -207,17 +220,6 @@
 
 Brad
 
-  Memory model
-    C++ Objects with fields
-        DirichletBoundary (_outputFields)
-        PointForce (BoundaryConditionPoints::_parameters) ACCESSOR DONE
-        AbsorbingDampers (_parameters)
-        Neumann (_parameters)
-        Quadrature (_geometryFields) [should be NULL]
-        OutputManager (_fields)
-        CellFilterAvg (_fieldAvg)
-        VertexFilterVecNorm (_fieldVecNorm)
- 
   full-scale testing
     2d/quad4
       axialtract
@@ -227,21 +229,7 @@
     2d/tri3
       dislocation
       dislocation2
-  cleanup
 
-    Switch Components to PetscComponents.
-      Add _cleanup() to components to deallocate local data structures.
-      Add cleanup() to non-components to deallocate local data structures.
-
-      Need to call parent deallocate() but not objects deallocate.
-      bc C++, SWIG
-      faults C++, SWIG
-      feassemble C++, SWIG
-      materials C++, SWIG
-      meshio C++, SWIG
-      problems C++, SWIG
-      topology C++, SWIG
-
   * write cells as ints in HDF5
 
 
@@ -317,20 +305,10 @@
 
 4. Tidy up
 
-  Replace memcpy() calls with loops.
-
-  Cleanup logging. Constraints and Integrators should log at the C++
-  level using the C++ EventLogger. Add finer grain logging at C++
-  level as in ElasticityImplicit.
-
   Update journaling.
 
   Eliminate use of Inventory class.
 
-  Switch Components to PetscComponents.
-    Add _cleanup() to components to deallocate local data structures.
-    Add cleanup() to non-components to deallocate local data structures.
-
   Create createModuleObj() methods to Python objects as standard way
   of creating handle to C++ object (not necessary in abstract base
   classes).
@@ -338,173 +316,16 @@
   Add check before calling newSection() when want to enforce at
   least 1 value.
 
-  Cleanup SlipTimeFn tests (refactor test/initialize stuff)
-
-
-----------------------------------------------------------------------
-RELEASE 1.5
-----------------------------------------------------------------------
-
-3. 2-D Plane strain Generalized Maxwell viscoelastic rheology [Charles]
-
-4. 2-D Power-law rheology [Charles]
-   2D viscoelastic models for plane strain
-
-5. Initial stress, strain, state variables for inelastic models
-
-  Use switch to do elastic prestep so that main time loop is all
-  anelastic in the most general case. Want to generate an error if
-  both initial state variables are given and using an elastic prestep.
-
 ======================================================================
-KNOWN DEFICIENCIES
+MISC PRIORITIES
 ======================================================================
 
-* Dirichlet BC and fault BC
-
-  Can't use block Jacobi preconditioner when Dirichlet BC overlap with
-  fault BC's, because we end up with a DOF associated with a Lagrange
-  multiplier that is "free". Not sure if this is okay, when the fault
-  is at an angle to the boundary.
-
-    Might be able to fix this problem by examining constraints
-    relative to orientation and if orientation coincides with
-    preexisting constraint, then constrain Lagrange multiplier DOF.
-
-  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()?
-
-* ZeroDispDB
-
-  The default BC is ZeroDispDB which hardwires the values in a UniformDB
-  to 0. No error message is generated if the user sets the values or
-  data properties and they are overwritten by the hardwired values. A
-  possible solution is for ZeroDispDB to use a C++ UniformDB but not
-  inherit from the Python UniformDB.
-
-* Fault orientatin in 1-D mesh
-
-  How do we determine the orientation for a fault in a 1-D mesh? We
-  assume normaldir is +1.0, but cohesive cells could be created so
-  that the fault has a normaldir of -1.0. If the normaldir is -1.0,
-  then we need to flip the orientation field to get the correct
-  sense of slip.
-
-
-
-======================================================================
-MISC PRIORITIES (Brad)
-======================================================================
-
-4. OutputManager
+1. OutputManager
    a. VertexFilterChangeCS
       OutputFilter for writing vertex coordinates in another 
       coordinate system. Need test for whether two coordinate systems 
       are the same.
 
-======================================================================
-PLANNED RELEASES
-======================================================================
+2. Coarsening for PyLith meshes
 
-----------------------------------------------------------------------
-Release 1.8
-----------------------------------------------------------------------
-
-  1. Damping for Q
-    Generalized Maxwell approach for attenuation
-
-----------------------------------------------------------------------
-Release 2.0
-----------------------------------------------------------------------
-
-  1. Restart / checkpointing
-    Checkpointing
-    Spin up
-    Saving quasi-static information is probably more important
-
-  3. Coupling of quasi-static and dynamic simulations
-
-  1. Higher order cells
-
-     Nonisoparametric cells
-
-       C++ unit tests for CellGeometry refPtsToGlobal() and jacobian()
-       Update quadrature to use CellGeometry refPtsToGlobal() and
-       jacobian() Remove CellGeometry jacobian(double_array)
-
-  2. Output data at arbitrary point locations
-
-     Interpolate solution to desired location
-     Solution field (time history)
-
-----------------------------------------------------------------------
-Low-priority items (release unknown)
-----------------------------------------------------------------------
-
-  6. FaultCohesiveTract (dikes)
-
-  4. Improved support for spherical geometry in user-interface
-
-----------------------------------------------------------------------
-LONG TERM WISH LIST
-----------------------------------------------------------------------
-
-Student
-      Create a spatial database for the PREM model
-
-  5. Use shared pointers for objects where both Python and C++ hold pointers.
-
-======================================================================
-THINGS WE NEED SIEVE TO DO (Matt)
-======================================================================
-
-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.
-
-  Inputs:
-    * PETSc Mesh
-    * some sort of map (Python object) defining how to construct
-      higher order reference cell from lower order reference cell.
-  Output:
-    * PETSc Mesh
-
-  This already works. Our code is written in terms of numBasisFuncs, not
-  vertices. Therefore, if we just use the P2 element from FIAT, our only
-  problem is to correctly allocate the section (I think). To do this, we
-  add the appropriate setFiberDimension() call. FIAT has this information,
-  we just are not using it right now.
-
-3. Uniform refinement of mesh.
-
-  Inputs:
-    * PETSc Mesh (original)
-    * refinement factor (limited to factor of 2- 2 or 4)
-  Outputs:
-    * PETSc Mesh (refined)
-
-  This already works. You just call
-
-  double maxVolume   = 0.01;
-  bool   interpolate = false;
-  ALE::Obj<ALE::Mesh> newMesh = ALE::Generator::refineMesh(oldMesh, maxVolume, interpolate);
-
-  There is another version that takes an array of maxVolumes, one for each cell in oldMesh.
-
-6. Coarsening for PyLith meshes
-
-7. Time fixes
-
-  Not used a. Remove extra time in uninterpolated restrict(). May need special method for P1.
-
-  Done c. getStateVars() is way too expensive. 
-
-  Not used d. Same as a) for update
-
-8. Memory fixes
-
-  Done a. Share memory in precomputation sections
-
-11. For Schur complement directly for mass matrix and Lagrange multiplier problem
+3. For Schur complement directly for mass matrix and Lagrange multiplier problem

Modified: short/3D/PyLith/branches/v1.7-trunk/configure.ac
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/configure.ac	2013-06-14 22:04:11 UTC (rev 22277)
+++ short/3D/PyLith/branches/v1.7-trunk/configure.ac	2013-06-14 22:06:34 UTC (rev 22278)
@@ -17,7 +17,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ(2.59)
-AC_INIT([PyLith], [1.8.1], [cig-short at geodynamics.org])
+AC_INIT([PyLith], [1.9.0], [cig-short at geodynamics.org])
 AC_CONFIG_AUX_DIR([./aux-config])
 AC_CONFIG_HEADER([portinfo])
 AC_CONFIG_MACRO_DIR([m4])

Modified: short/3D/PyLith/branches/v1.7-trunk/setup.py
===================================================================
--- short/3D/PyLith/branches/v1.7-trunk/setup.py	2013-06-14 22:04:11 UTC (rev 22277)
+++ short/3D/PyLith/branches/v1.7-trunk/setup.py	2013-06-14 22:06:34 UTC (rev 22278)
@@ -22,7 +22,7 @@
 setup(
     
     name = 'PyLith', 
-    version = '1.8.1',
+    version = '1.9.0',
 
     zip_safe = False,
     packages = find_packages(),



More information about the CIG-COMMITS mailing list