Code Development Progress
This document should serve as a progress report page for Code Development while Mike is in Princeton.
Code Development Progress:
Week of 3/26/2006 to 4/1/2006:
[Reynolds]
- Finished porting of isolating self-gravity solver to new Enzo code base. Tested on DataStar, with bit-wise identical results to previous self-gravity solution.
- Beginning development of self-gravity restart capability.
Week of 4/2/2006 to 4/8/2006:
[Reynolds]
- Continued development of self-gravity restart capability. Source of difficulty lies in properly handling all possible user interface issues with respect to various Enzo initialization schemas.
Week of 4/9/2006 to 4/15/2006:
- Majority of code development team met on Tuesday to discuss various issues. Notes from the discussion have been posted in Plone.
[Reynolds]
- Continued adjusting isolating gravity solver interface to allow for multiple initialization procedures. Working toward parallel HDF checkpoint/restart capability for isolating boundary condition values.
- Progress on incorporation of FLD into Enzo is slow, due to current work completing self-gravity solver user interface. Will begin this the moment restart capability is complete.
[Hayes]
- Out of town last week, so nothing to note (helped out with our meeting this week)
[Harkness]
- Ironing out difficulties with Thunder runs.
Week of 4/16/2006 to 4/22/2006:
(nothing posted)
Week of 4/23/2006 to 4/29/2006:
(nothing posted)
Week of 4/30/2006 to 5/6/2006:
[Reynolds]
- Completed self-gravity isolating boundary condition HDF5 restart capabilities. Currently, each processor that owns a portion of the boundary dumps their local Dirichlet conditions to a separate HDF5 file, and then loads that file on a restart. Additional capabilities have been built in to allow parallel HDF5 support for each processor to write/read their own piece of a single potential boundary hdf file, though that is yet un-tested. Gravity restart control is handled separately from hydro restart control, allowing gravity to be 'turned on' between Enzo runs. Calls to the Potential Boundary write routines have been added to all WriteAllData routines. This functionality is also untested, but should provide no problems.
- Upgraded self-gravity interface to allow use of cell-centered values (finite-volume) instead of nodal values (finite-difference), through preprocessor directive MGMPI_FV. Although this interface does not require interpolations (as in the nodal case), multigrid convergence slows considerably due to MGMPI restriction/prolongation operators, which may be upgraded in the near term. However, the cell-centered approach provides a more accurate potential solution, and will more easily extend to FLD enhancements that will also be defined at cell-centers.
- Will finish restart testing ASAP, disseminate enhancements to CVS, and allow Alexei to begin collapse tests. Then back to FLD.
Week of 5/7/2006 to 5/13/2006:
[Reynolds] Out of town at LANL, visiting Numerical Analysis group, and presenting Numerical Analysis seminar on SciDAC work on implicit MHD. Will be in town on Thursday only (how about a meeting?). Leaving again on Friday for younger brother's college graduation in San Antonio.
Week of 5/14/2006 to 5/20/2006:
(nothing posted)
Week of 5/21/2006 to 5/27/2006:
[Reynolds]
- Tested restart capability of isolating boundary conditions (worked like a charm). Currently, I have two operational modes for writing/reading boundary conditions. The default method is for each processor to write/read it's own portion of the isolating BCs to a separate file (no file for internal procs), using the standard serial HDF5 capabilities. The second method (not yet tested) is for all of the processors to write/read their own BC data to a single HDF file, via the newer parallel HDF5 interfaces. Choice between these two options occurs through the pre-processor directive PARALLEL_HDF5.
- Traveled to LLNL to visit with CASC members regarding the Enzo/LLNL collaboration (visit with Frank Graziani et al. was canceled, due to higher priority visitors to their division). Discussed equation formulation and time-stepping strategies with Louis Howell. Discussed multi-level linear solver infrastructure/algorithms/capabilities currently implemented in HYPRE with Rob Falgout and Barry Lee. Discussed nonlinear solver requirements/approaches with Carol Woodward (SUNDIALS code). Attempted to generate collaboration interest in CASC members for Enzo/LLNL collaboration, and set up preliminary topics of discussion for upcoming visit with Hayes and Bordner.
Week of 5/28/2006 to 6/3/2006:
[Reynolds]
- Updated personal code with new Enzo enhancements in CVS repository. Incorporated #ifdef ISO_GRAV statements encapsulating isolating solver enhancements to allow for old-style code.
- Checked in adjusted code to CVS repository along with James. Updated code works fine for me on both 32-bit PPC (Apple laptop) and 64-bit PPC (DataStar), but seems to cause trouble for James on DataStar. Investigating issue, and will test code on other platforms soon.
- Continuing construction of nonlinear solver infrastructure for single-group, unigrid, FLD couplings within Enzo.
Week of 6/4/2006 to 6/10/2006:
[Reynolds]
- Resolved James' issue with gravity solver on DataStar -- due to outdated JBPerf library in James' directory. Works with updated library.
- Continued construction of nonlinear solver infrastructure for single-group, unigrid, FLD couplings within Enzo. Current status: implicit nonlinear/linear solver infrastructure set up. Porting self-gravity module to use new interface since (1) we already have the solution, and (2) it will provide a simple example for use of solver infrastructure for introduction of new physics (e.g. radiation, magnetic fields, etc.). In the process of resolving final bugs in MGMPI interface with new module (only performs cell-centered solve, no interpolation to corner nodes, so interface slightly different). Once this is complete, the single-group FLD module will fit very nicely into new infrastructure, with minimal changes (e.g. 3 weeks' development).
Week of 6/11/2006 to 6/17/2006:
Week of 6/18/2006 to 6/24/2006:
Week of 6/25/2006 to 7/1/2006: