User Tools

Site Tools


software:pylith:plans:2014

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
software:pylith:plans:2014 [2014/02/20 20:42]
baagaard created
software:pylith:plans:2014 [2014/02/28 16:56] (current)
baagaard [Version 2.2 (Summer/Fall 2014)]
Line 1: Line 1:
-====== PyLith Development Plans ======+====== PyLith Development Plans, Feb 2014 ======
  
-Software development plans for PyLith as of Feb 2014.+Priorities ​for PyLith ​software development,​ such as new features and enhancements. This a draft for community comment (Feb 20, 2014).
  
-===== Version 2.0 (by end of Feb 2014) =====+This plan attempts to balance meeting short-term objectives ​of delivering high priority, new features and meeting long-term objectives of extending the code to solve a broader range of scientific problems.
  
-  ​* Replace C++ Sieve implementation of finite-element data structures with C DMPlex implementation. expert {{expert.png}}[99%]+===== Version 2.0 (early March 2014) ===== 
 + 
 +**Status**: We have almost everything working. We are in the process of fixing a few bugs related to creating cohesive cells and running in parallel. 
 + 
 + 
 +  - Replace C++ Sieve implementation of finite-element data structures with C DMPlex implementation. expert {{expert.png}}[99%]
     * DMPlex provides a simpler, more efficient implementation of the finite-element data structures that conforms to the PETSc data management (DM) interface. This provides tighter integration with the rest of PETSc. Additionally,​ this rewrite of the data structures results in a more efficient memory layout, resulting in better performance.     * DMPlex provides a simpler, more efficient implementation of the finite-element data structures that conforms to the PETSc data management (DM) interface. This provides tighter integration with the rest of PETSc. Additionally,​ this rewrite of the data structures results in a more efficient memory layout, resulting in better performance.
 +  - Switch from using Subversion to Git for version control. {{done.png}}
 +  - Add ability to recursively refine a mesh. {{done.png}}
 +
 +===== Version 2.1 (by Jun 2014) =====
 +
 +This is the version that will be available for use at the June 2014 workshop. We are behind schedule for getting multiphysics done by then, and because this is a fixed deadline, we will probably aim to get some additional less ambitious features completed. Allowing different startup cases could slip to version 2.2.
 +
 +  - Improve fault formulation for spontaneous rupture {{intermediate.png}} [10%]
 +    * Removes inner solve associated with updating Lagrange multipliers. This will significantly accelerate the nonlinear solve.
 +  - Higher order basis functions {{expert.png}} [0%]
 +    * Allow user to select order of basis functions independent of the mesh (which defines the geometry). This permits higher resolution for a given mesh.
 +  - Reorganize top-level code to conform to layout needed for multiphysics {{difficult.png}} [0%]
 +    * Setup modular approach for specifying governing equations and computing residuals and Jacobians.
 +  - Reorganize top-level code to allow different startup cases {{intermediate.png}} [0%]
 +    * Elastic prestep
 +    * User-specified initial solution
 +    * Checkpoint via special spatial database?
 +  - Radial basis functions for spatial databases {{intermediate.png}} [0%]
 +  - Improved handling of buried fault edges {{intermediate.png}} [25%]
 +===== Version 2.2 (Summer/​Fall 2014) =====
 +
 +  - Multiphysics
 +    - Incompressible elasticity via a pressure field {{difficult.png}}
 +    - Elasticity + heat flow  {{difficult.png}}
 +    - Elasticity + fluid flow  {{difficult.png}}
 +  - GUI interface for specifying parameters
 +  - Switch to using PETSc time-stepping (TS) algorithms. {{intermediate.png}} [0%]
 +    * Replace simple Python-based time-stepping implementations with PETSc time-stepping algorithms that provide support for higher order discretization in time and real adaptive time stepping.
 +  - Multilevel nonlinear solve
 +
 +===== Version 2.3 (Spring 2015) =====
 +
 +  - Earthquake cycle modeling {{difficult.png}}
 +    * Same mesh for dynamic and quasi-static parts (dynamic -> quasi-static,​ quasi-static -> dynamic, complete cycle)
 +  - Create strain hardening/​softening 2-D and 3-D Drucker-Prager elastoplastic models. {{intermediate.png}}
 +  - Moment tensor point sources via equivalent body forces {{difficult.png}} [5%]
 +    * Moment tensor point sources provide a mesh independent deformation source that is better suited for Green'​s function calculations than slip on a fault surface via cohesive cells.
 +
 +===== Features for Future Releases =====
 +
 +  * Major features
 +    - Earthquake Cycle Modeling
 +      * Different meshes for dynamic and quasi-static parts {{expert.png}}
 +        * Requires interpolation of fields between different meshes/​discretizations and may require extrapolation of solutions when quasi-static problems span a larger domain than the dynamic problems.
 +    - Data assimilation
 +      * Use flexibility of multiphysics organization to support inclusion of data assimilation {{expert.png}}
  
-  * Switch from using Subversion ​to Git for version control. {{done.png}} +  * Minor features 
-  Add ability ​to recursively refine a mesh. {{done.png}} +    - Use KD tree search algorithm ​to allow output of time histories at an arbitrary location ​ {{difficult.png}} 
-    ​+    - Combined prescribed slip / spontaneous rupture fault condition ​{{difficult.png}} 
 +      Use fault constitutive model to control slip on fault except during episodes of prescribed slip. Need some way to describe when to turn on/off prescribed slip. 
 +    - Use threading to accelerate integrations on multi-core machines. {{difficult.png}}
software/pylith/plans/2014.1392928974.txt.gz · Last modified: 2014/02/20 20:42 by baagaard