Thyra : Interfaces and Support code for the Interoperability of Abstract Numerical Algorithms

Version 1.0 in Trilinos 6.0

Outline

Introduction

The Thyra package contains a set of interfaces and supporting code that defines basic interoperability mechanisms between different types of numerical software. The foundation of all of these interfaces are the mathematical concepts of vectors, vector spaces, and linear operators. All other interfaces and support software are built on these basic operator/vector interfaces.

This main page provides the starting point for all of the documentation for Thyra interfaces and software. This documentation is generated using Doxygen.

The documentation for Thyra is broken up into a number of different doxygen collections as described in the next section.

Thyra Software Package Documentation Collections

The Doxygen-generated documentation is broken up into a number of different doxygen collections in an attempt to make each individual collection more manageable to browse and comprehend.

Below are links to the different Doxygen documentation collections for the different aspects of Thyra:

Other Trilinos Packages on which Thyra Depends

The Thyra code described here is dependent on the following Trilinos packages:

Configuration of the Thyra Package

The Thyra package's configure script (which should be called from the base Trilinos-level configure script) responds to a number of options that affect the code that is built and what code is installed.

Some of the more important configuration options are:

See the output from ./configure --help (where ./ is the base source directory for the thyra package) for a complete listing of all of the configure options that Thyra responds to.

The Thyra package is also affected by configure options passed to other packages and some of these options are:

Note that the above options will not be listed by Trilinos/packages/thyra/configure --help but instead are listed by Trilinos/packages/teuchos/configure --help.

Building and Linking Against Thyra in External Projects

It is recommended that developers external to Trilinos install Thyra with the rest of Trilinos and then compile and link against the installed headers and libraries (see the Trilinos Users Guide for a discussion of installing Trilinos). Remember that in order to install the contents of the thyra packages that one must enable it (see the --enable-thyra and other configure options described above) before installation.

Once Thyra software is installed in the location specified by the configure option --prefix=$TRILINOS_INSTALL_DIR with the rest of Trilinos (where $TRILINOS_INSTALL_DIR is the path of the directory that you specify where Trilinos will be installed with make install), it is important that a client's external makefile system be consistent with the environment used to build Thyra. To do this, if the option --enable-export-makefiles was enabled at configure time, then a set of makefile fragments is installed in the directory

  $TRILINOS_INSTALL_DIR/include/

The installed makefile fragment files Makefile.export.thyra and Makefile.export.thyra.macros can then be included in an external makefile to give compiler options, include paths, libraries etc.

An example external makefile

When Thyra is installed with Trilinos, the directory

  $TRILINOS_INSTALL_DIR/example/thyra/

is created which contains an example of an external project that uses Thyra. The example makefile


  $TRILINOS_INSTALL_DIR/example/thyra/Makefile

that builds an external version the sillyCgSolve_serial.exe program is shown below:

##
## Example external makefile that shows how to compile and
## link against an installed version of Thyra (part of Trilinos)
##

# Points to where Trilinos is installed
TRILINOS_INSTALL_DIR = ../..

# Include the makefile fragment that specifies the compile/link commands 
include $(TRILINOS_INSTALL_DIR)/include/Makefile.export.thyra.macros
# Include the makefile fragement that defines the include paths and libraries
include $(TRILINOS_INSTALL_DIR)/include/Makefile.export.thyra

#
# Get the compile and link flags
#

# For platforms where perl and GNUMake are used
#COMPILE_FLAGS = $(shell perl $(TRILINOS_INSTALL_DIR)/include/strip_dup_incl_paths.pl \
#	$(THYRA_CXXFLAGS) $(THYRA_DEFS) $(THYRA_CPPFLAGS) $(THYRA_INCLUDES))
# For platforms where perl and/or GNUMake are not available
COMPILE_FLAGS = $(THYRA_CXXFLAGS) $(THYRA_DEFS) $(THYRA_CPPFLAGS) $(THYRA_INCLUDES)
# For platforms where perl and GNUMake are used
#LINK_FLAGS = $(shell perl $(TRILINOS_INSTALL_DIR)/include/strip_dup_libs.pl $(THYRA_LIBS))
# For platforms where perl and/or GNUMake are not available
LINK_FLAGS = $(THYRA_LIBS)

#
# Define the compile and link targets that use the included macros
#

sillyCgSolve_serial.exe : sillyCgSolve_serial.o
	$(THYRA_CXXLD) $(THYRA_CXXFLAGS) sillyCgSolve_serial.o -o sillyCgSolve_serial.exe $(LINK_FLAGS)

sillyCgSolve_serial.o : sillyCgSolve_serial.cpp
	$(THYRA_CXX) $(COMPILE_FLAGS) -c sillyCgSolve_serial.cpp

clean:
	rm -f *.o *.exe *~

By using the macros starting with THYRA_ one is guaranteed that the same compiler with the same options are used to build the client's code that were used to build Trilinos. Of particular importance are THYRA_CXX, THYRA_DEFS, THYRA_CPPFLAGS, and THYRA_CXXLD since these ensure that the same C++ compiler and the same -D macro definitions are used.

Documents Describing or are Related to Thyra

Contributors to the Thyra Package and Related Software

The contributors to the Thyra package, or related packages, in alphabetical order, are:

Other Software Related to Thyra

Below is a partial list of software related to Thyra.


Generated on Thu Sep 18 12:39:55 2008 for Thyra by doxygen 1.3.9.1