Our preliminary idea is to construct a matrix with some legacy code, store matrix into a file (as we would do anyway for checkpointing purposes) and then load it into a solver. We are free to choose matrix storage scheme for a file, so we could prepare data to be in the format of arrays to be loaded into PETSc. For binary I/O we are experimenting with parallel HDF5 capabilities using MPI-I/O underneath. (PETSc has a HDF5 viewer, but if I am not wrong, it does not use parallel I/O). For really big problems parallel I/O is a must for us.
We are solving a nuclear structure problem, particularly a symmetry-adapted no-core shell model computations of a nuclei. (I do not understand much that kind of physics, my part is the eigensolver :). Daniel Dne 21.9.2010 16:24, Jed Brown napsal(a): > On Tue, Sep 21, 2010 at 16:20, Daniel Langr<daniel.langr at gmail.com> wrote: >> thanks much for your comprehensive answer, it will certainly help. I will >> look at the example codes. As for matrix assembly process, I would prefer >> constructing a matrix from arrays (to avoid dynamic assembly and additional >> memory costs) but there is nothing like MatCreateMPISBAIJWithArrays() or >> better MatCreateMPISBAIJWithSplitArrays() for symmetric matrices as for >> unsymmetric ones in PETSc. > > This would be easy to add, but how would you go about building the > arrays yourself? What sort of problems are you solving? > > Jed
