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

brad at geodynamics.org brad at geodynamics.org
Thu Jun 13 14:30:28 PDT 2013


Author: brad
Date: 2013-06-13 14:30:28 -0700 (Thu, 13 Jun 2013)
New Revision: 22259

Modified:
   short/3D/PyLith/trunk/TODO
Log:
Updated TODO.

Modified: short/3D/PyLith/trunk/TODO
===================================================================
--- short/3D/PyLith/trunk/TODO	2013-06-13 21:10:26 UTC (rev 22258)
+++ short/3D/PyLith/trunk/TODO	2013-06-13 21:30:28 UTC (rev 22259)
@@ -2,15 +2,8 @@
 CURRENT BUGS
 ======================================================================
 
-* Deallocation with field split
+* None
 
-  Not all PETSc memory is being freed when using field split.
-
-  Test cases:
-    cd examples/3d/tet4
-    pylith step02.cfg ../../../share/debug_malloc.cfg
-    pylith step04.cfg ../../../share/debug_malloc.cfg
-
 ======================================================================
 CURRENT ISSUES/PRIORITIES
 ======================================================================
@@ -27,67 +20,118 @@
     PETSc configure options (for example, with/without HDF5 and
     single/double precision).
 
-* Cleanup
-
-    Add elasticPrestep() to Formulation (called from Problem)
-
 * Prescribed fault with opening has zero tractions (step20) Appears to
   be a feature/artifact associated with how we implement slip with
   Lagrange multipliers.
 
 ======================================================================
-1.8.0
+KNOWN DEFICIENCIES
 ======================================================================
 
-* GPU utilization
+* Dirichlet BC and fault BC
 
-  Finite-element integrations
+  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.
 
-  Modeled on snes/examples/tutorials/ex52.
+    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.
 
-  Refactor integration routine so that it uses batches rather than
-  individual cells.
+  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()?
 
-  + Implicit elasticity finite-element integration
-  + Explicit elasticity finite-element integration
+* 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.
+
+
+======================================================================
+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
 
-* Vertex ordering
+* GPU utilization
 
-  + Quadrature::computeGeometry()
-  + Quadrature::minCellWidth()
-  + Optimized Tri3 and Tet4 Explicit integrators depend on the basis order
+  Finite-element integrations
 
+  Modeled on snes/examples/tutorials/ex52.
+
+  Refactor integration routine so that it uses batches rather than
+  individual cells.
+
+  + 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
 ----------------------------------------------------------------------
@@ -107,11 +151,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?
-
 * Interpolated meshes + temperature field
   No fault, linear elasticity
   Benchmark memory use and speed
@@ -171,17 +210,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
@@ -279,153 +307,15 @@
   least 1 value.
 
 ======================================================================
-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
-
-     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



More information about the CIG-COMMITS mailing list