# @HEADER
#
########################################################################
#
#  Zoltan Toolkit for Load-balancing, Partitioning, Ordering and Coloring
#                  Copyright 2012 Sandia Corporation
#
# Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
# the U.S. Government retains certain rights in this software.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions are
# met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# 3. Neither the name of the Corporation nor the names of the
# contributors may be used to endorse or promote products derived from
# this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
# Questions? Contact Karen Devine	kddevin@sandia.gov
#                    Erik Boman	        egboman@sandia.gov
#
########################################################################
#
# @HEADER

DRIVER DIRECTORY -- Zoltan test driver application source code.
------------------------------------------------------------------------

NOTE: a well documented example input driver is included with the documentation
in the file Zoltan/docs/Zoltan_html/dev_html/zdrive.inp.

dr_const.h          -- Main data structures and defines for driver.

dr_elem.c           -- Routines that return information about exodus-based
                       elements. This file was taken from nem_slice, and
                       is used when reading nemesis/exodus files.

dr_elem_const.h     -- Element type enumeration, and function prototypes
                       for functions in dr_elem.c.

dr_err.c            -- Error reporting functions. Errors are stored with
                       a call to Gen_Error(), and then all errors and
                       warnings are printed with a call to error_report()
                       before exiting.

dr_err_const.h      -- Definitions of structures and functions for error
                       reporting.

dr_exoII_io.c       -- Exodus/nemesis file interface. The routines in this
                       file read exodus/nemesis files and use that information
                       to fill the problem, mesh and element data structures.

dr_input.c          -- Functions to read, check and broadcast command file
                       information.

dr_input_const.h    -- Contains the definition of the Parallel_IO struct,
                       as well as the prototypes for functions in dr_input.c.
                       The Parallel_IO struct contains all of the information
                       about the parallel disk structure and the input
                       filename.

dr_loadbal.c        -- Main interface with the Zoltan load balance functions.
                       All of the loadbalance callback functions are in this
                       file. This file also contains run_zoltan(), which is
                       where the LB_Balance function is actually called.

dr_loadbal_const.h  -- Prototypes for functions in dr_loadbal.c.

dr_main.c           -- The main function for the driver, and a small function
                       that will print the command parameters to the screen.

dr_migrate.c        -- Main interface with the Zoltan migration functions.
                       All of the migration callback functions are in this
                       file.

dr_output.c         -- Function that outputs the results after Zoltan is
                       called. Currently, output is limited to printing out an
                       ascii file for each processor that contains a list of
                       the global ids for elements on that processor.

dr_par_util.c       -- Contains parallel utilities. Currently only contains
                       print_sync_start() and print_sync_end() routines.
                       Utility functions that work in parallel should be
                       included in this file.

dr_par_util_const.h -- Prototype for functions in dr_par_util.c.

dr_util.c           -- Utility functions, such as sort and search routines.
                       Functions in this file should only need system header
                       files.

dr_util_const.h     -- Prototypes for functions in dr_util.c.

dr_maps.c           -- Routines to build element communication maps after
                       data migration.

dr_maps_const.h     -- Prototypes for functions in dr_maps.c.

dr_eval.c           -- Code for evaluating partitions using the driver's
                       data structures.

dr_eval_const.h     -- Prototypes for functions in dr_eval.c.

dr_elem_util.c      -- Routines for allocating and freeing elements.

dr_elem_util_const.h-- Prototypes for functions in dr_elem_util.c.

dr_chaco_io.c       -- Interface between Chaco input functions and driver
                       data structures.

dr_param_file.c     -- Routines that read a secondary parameter file for
                       zdrive.  These allow hierarchical balancing parameters
                       to be specified and provide the callbacks needed 
                       by hierarchical balancing.

dr_param_file.h     -- Prototypes for functions in dr_param_file.c
