== PyLith Development Plans == Software development plans for PyLith === Version 1.8.1 (by mid-late April) === ==== BUG FIXES ==== * Improve solver for rate-state friction and explicit time stepping. difficult [50%] * Remove duplicate impulses in parallel Green's function simulations. done === Version 2.0 (by June workshop) === ==== COMPUTATIONAL SCIENCE ==== * Replace Sieve implementation of finite-element data structures with more efficient DMPlex implementation. expert [80%] [[br]] DMPlex implementation is better integrated within PETSc. Smaller memory usage. Developed to support multiphysics and higher order discretizations. * Higher order basis functions expert [0%] [[br]] Allow user to select order of basis functions independent of the mesh (which defines the geometry). This permits higher resolution for a given mesh. === Version 2.1 (Fall or Winter 2013) === MAJOR FEATURES Earthquake cycle modeling difficult Same mesh for dynamic and quasi-static parts (dynamic -> quasi-static, quasi-static -> dynamic, complete cycle) MINOR FEATURES Create strain hardening/softening 2-D and 3-D Drucker-Prager elastoplastic models. intermediate Attenuation via generalized Maxwell model (bulk and shear relaxation) intermediate [50%] Moment tensor point sources via equivalent body forces difficult [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. Candidate Features for Version 2.2 (Spring 2014) ==== MAJOR FEATURES ==== * Multiphysics # Incompressible elasticity via a pressure field expert # Elasticity + heat flow expert # Elasticity + fluid flow expert ==== MINOR FEATURES ==== * Time-step based on strain rate intermediate * Accelerate FE integrations using GPUs expert [5%] [[br]] Will provide significant speedup to simulations run by many users because most are running on desktop machines that have GPUs. === Features for Future Releases === ==== MAJOR FEATURES ==== * Earthquake Cycle Modeling # Different meshes for dynamic and quasi-static parts expert [[br]] 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. === MINOR FEATURES === * Use KD tree search algorithm to allow output of time histories at an arbitrary location difficult * Combined prescribed slip / spontaneous rupture fault condition difficult [[br]] 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 =====