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.
Below are links to the different Doxygen documentation collections for the different aspects of Thyra:
Teuchos::RefCountPtr and Teuchos::BLAS that Thyra software is dependent on. 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:
--enable-thyra: Causes the Thyra package and all of its dependent packages to be enabled and built. Without this option, there will be no Thyra header files or libraries included in the installation of Trilinos (i.e. using make install). --enable-export-makefiles: Causes the installation of the Thyra package (an other Trilinos packages) to have the makefile fragments Makefile.export.thyra and Makefile.export.thyra.macros installed in the installation directory $TRILINOS_INSTALL_DIR/include for use by external makefiles (see below).
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:
--enable-teuchos-complex: Causes the std::complex<> scalar type to be used in templated examples and tests. --enable-teuchos-gmp: Causes the GNU MP extended-precision mpf_class scalar type to be used in templated examples and tests.
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.
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.
$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.
This paper describes the basics of Teuchos::RefCountPtr and outlines a convention for passing objects to and from functions that all of the code in Thyra adheres to.
This paper describes the need for, and the basic design of, RTOpPack::RTOpT. The concrete implementation described in this paper used C structs while the current RTOpPack::RTOpT is a fully templated C++ class implementation.
Thyra::VectorSpaceBase, Thyra::VectorBase, Thyra::MultiVectorBase, and Thyra::LinearOpBase objects out of Epetra objects.
Thyra::LinearOpWithSolveBase and Thyra::LinearOpWithSolveFactoryBase in terms of Amesos_BaseSolver implementations. These adapters allow a client to take any Epetra_RowMatrix object embedded in a Thyra::EpetraLinearOp object and immediately use to to define a direct linear solver.
Thyra::LinearOpWithSolveBase and Thyra::LinearOpWithSolveFactoryBase in terms of the AztecOO class. These adapters allow a client to take any Epetra_RowMatrix object embedded in a Thyra::EpetraLinearOp object and immediately use to to define an iterative linear solver such as GMRES or CG.
1.3.9.1