== !PyLith Development Plans == Software development plans for !PyLith === Version 1.7 (by June workshop) === ==== GENERAL ==== * Output of solution at arbitrary points via interpolation of solution. done * Add 2-D plane strain version of the Drucker-Prager elastoplastic rheology. done * Add 2-D plane strain version of the power-law viscoelastic rheology. done * Elastic pre-step option for time-dependent problems. Remove assumed elastic pre-step at time step 0. done * Add --initialize_only property to Problem easy (0%)[[br]] Permit users to stop simulation before time stepping in order to diagnose parameter settings. ==== QUASI-STATIC ==== * Static Green's functions for fault slip. done ==== DYNAMIC ==== * None ==== COMPUTATIONAL SCIENCE ==== * Switch to new Sieve implementation. expert (0%) [[br]] C implementation better integrated with !PETSc. Smaller memory usage. Facilitates multiphysics and higher order discretizations. === Version 1.8 (Fall or Winter 2012) === ==== GENERAL ==== * Refactor initial fault tractions easy (5%) [[br]] Create Nucleation object with spatial and temporal perturbation of tractions from initial value. ==== QUASI-STATIC ==== * Create strain hardening/softening 2-D and 3-D Drucker-Prager elastoplastic models. ==== DYNAMIC ==== * Compute stable time step for explicit time integration easy (5%) * Attenuation via generalized Maxwell model (bulk and shear relaxation) intermediate (50%) ==== COMPUTATIONAL SCIENCE ==== * Accelerate FE integrations using !GPUs difficult (25%) [[br]] Will provide significant speedup to simulations run by many users because most are running on desktop machines that have GPUs. === Candidate Features for Version 2.0 (Spring 2013) === ==== MAJOR FEATURES ==== * Multiphysics # Incompressible elasticity via a pressure field expert # Elasticity + heat flow expert # Elasticity + fluid flow expert * Earthquake cycle modeling # Same mesh for dynamic and quasi-static parts difficult # Dynamic -> quasi-static # Quasi-static -> dynamic # Complete cycle # 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. * Use interpolated meshes (cells, faces, edges, vertices) to permit higher order basis functions expert ==== MINOR FEATURES ==== * Moment tensor point sources difficult [[br]] 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. * Time-step based on strain rate intermediate * Pressure field for incompressible elasticity problems expert * 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