/*BHEADER**********************************************************************
 * Copyright (c) 2008,  Lawrence Livermore National Security, LLC.
 * Produced at the Lawrence Livermore National Laboratory.
 * This file is part of HYPRE.  See file COPYRIGHT for details.
 *
 * HYPRE is free software; you can redistribute it and/or modify it under the
 * terms of the GNU Lesser General Public License (as published by the Free
 * Software Foundation) version 2.1 dated February 1999.
 *
 * $Revision$
 ***********************************************************************EHEADER*/


To create the smoothed aggregation or Ruge Stuben AMG methods,

1. instantiate the method (create smoothed aggregation AMG context)

   method = MLI_Method_CreateFromName( methodName, comm );
  
   where
      name = "AMGSA", "AMGRS", .. 
      comm = a MPI communicator

   or

   method = MLI_Method_CreateFromID( methodID, comm );

2. set the desired AMG parameters 

   method->setParams( param_string, argc, argv );

   param_string is one of : ( <d> - integer, <f> - floating point )
 
      setOutputLevel <d>
      setNumLevels <d>
      setCoarsenScheme <local>
      setMinCoarseSize <d>
      setStrengthThreshold <f?
      setPweight <f>
      setCalcSpectralNorm 
      setCalibrationSize <d>
      setPreSmoother  <Jacobi,GS,SGS,Schwarz,MLS,ParaSails>
      setPostSmoother <Jacobi,GS,SGS,Schwarz,MLS,ParaSails>
         argc = 2
         argv[0] = nsweeps
         argv[1] = weights
      setCoarseSolver <Jacobi,GS,SGS,Schwarz,ParaSails,SuperLU>
         argc = 2 (0 for SuperLU)
         argv[0] = nsweeps
         argv[1] = weights
      setNullSpace
         argc = 4;
         argv[0] = node degree of freedom\n";
         argv[1] = number of null space vectors\n";
         argv[2] = null space information\n";
         argv[3] = vector length\n";
      setNodalCoord
         argc = 3 (or 4 if matrix has been scaled);
         argv[0] = number of nodes
         argv[1] = node degree of freedom
         argv[2] = coordinates
         argv[3] = scalings 
      print

3. set up the grid hierarchy

   method->setup(mli);

4. to solve, call mli->solve

