== TOPS Interfaces and Components ==
The TOPS Solver Component (TSC) is a [http://www.llnl.gov/CASC/components Babel/SIDL] based [http://cca-forum.org CCA]-compliant HPC software component (henceforth shortened to CCA component). It provides direct access to virtually all of the TOPS (as well as many other) linear and nonlinear algebraic solvers including geometric and algebraic multigrid (a partial list may be found [http://www-unix.mcs.anl.gov/petsc/petsc-as/documentation/linearsolvertable.html here]).
TOPS solvers may be used in three distinct ways:
1. as a solver component (TSC),
2. through a common C, C++, Fortran, Python language binding ([http://www.mcs.anl.gov/petsc PETSc]),
3. through each package's individual binding.
For all three approaches first download and install the [wiki:tools CCA tools], [http://www.mcs.anl.gov/petsc PETSc], and then obtain and install the [wiki:topsdownload TOPS software]. (These pages ONLY describe using the TOPS Solver Components, consult PETSc or each package directly to see how to use them as traditional software libraries).
The application developer interacts with the TSC by constructing a CCA component that implements the TOPS.System interface and one or more problem specific interfaces. This System component will define the algebraic system to be solved.
The TSC and the System component can be combined using a traditional programming language, a component scripting language or a component GUI (see demo) such as ccaffeine. The TSC and the System component then collaborate to solve one or more algebraic problems. Complex applications will likely also couple several additional CCA components, see the CCA tutorials for more information on writing applications using CCA components.
The TOPS component generator can be used to generate the SIDL for your problem and all the boilerplate code needed to use it as a CCA component.
=== Downloads and Installation ===
The [wiki:topsdownload TOPS software] page contains instructions on obtaining and installing the TOPS software.