/*!\file:  Solverx.h
 * \brief solver
 */ 

#ifndef _SOLVERX_H
#define _SOLVERX_H

#ifdef HAVE_CONFIG_H
	#include <config.h>
#else
#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
#endif

#include "../../objects/objects.h"

/* local prototypes: */
void	Solverx(Vector** puf, Matrix* Kff, Vector* pf, Vector* uf0,Vector* df, Parameters* parameters);

#ifdef _HAVE_PETSC_
void	SolverxPetsc(Vec* puf, Mat Kff, Vec pf, Vec uf0,Vec df, Parameters* parameters);
void  DofTypesToIndexSet(IS* pisv, IS* pisp, Vec df,int typeenum);
#endif

#ifdef _HAVE_GSL_
void SolverxGsl(SeqVec** puf,SeqMat* Kff, SeqVec* pf);
void SolverxGsl(IssmDouble** pX,IssmDouble* A,IssmDouble* B,int n);
#endif

#endif  /* _SOLVERX_H */

