Externalpackages: out into astrid-r1b

Get a wiki together. OpenAD. Get ISSM website together.
https://trac.mcs.anl.gov/projects/ADIC/wiki/ADIC/ISSM

Switch to metis 5.0

Hard stuff: 
wrap MatSetValues and MatAssembly into one routine. 
To do so, store Ke matrices into elements, do not add to global. 
Once all the Ke are built, loop through them and do all the MatSetValues
at once, followed by MatAssembly. 
Do the same for VecSet and VecAssembly.

Wrap all Petsc data types Matrix and Vector objects, and map all operations 
onto these new objects.  Make this preprocessable for configuration using autotools.
We will probably duplicate data, ex: 

Matrix{
	ifdef  PETSC_WRAPPER
	Mat pmatrix; 
	endif
	ifdef  DOUBLE_WRAPPER
	double* pmatrix; 
	endif
	adouble* amatrix;
}

amatrix will be used in adolc. pmatrix will be used in Petsc routines. Matrix will 
have routines to map one into the other.


Ad: 
Eric: 
Create ISSM namespace.
Make Matrix Assembly one homogeneous block.
Make Validation suite for Jean for his prognostic capabilities.
Jean: 
typedef all double to ISSM_DOUBLE 

Create an alloc layer with template functions for new and delete.
Check that the new code  is modular --without-kml, options are up to date.

Replace memcpy, realloc with x layers.  Replace all calls to malloc and free in the code.



Questions: 
set of active IssmDouble variables different from set of independent variables activated with <<=? 
same thing dependent variables? 



Bullet points: 
- nightly run on with adolc compiled, running from test2000 on.  once a day.
- run valgrind on new adolc or old adolc. send a text on how to run it. 
- make gdb wrapper.
- think about ModelProcessor setup. need to keep track, before we partition, on cpu 0, of the independent declarations. 


MPI: what's missing that equivalent of MPI.h -> no well defined api.  
What's exposed is the internals of it.

Wanted to look at changing the way for the matrices and vertices would be implemented.

