[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