Skip to content

barche/Trilinos.jl

Repository files navigation

Trilinos

This package aims to allow using the Trilinos library from Julia. The first objective is to expose the Belos solver library using the Tpetra matrix library, to allow solving linear systems using the modern methods currently developed in Trilinos. The current state should be considered as a proof-of-concept, implementing a 2D Laplace example as well as the powermethod from the Tpetra tutorial.

At this time, the following is implemented (see tests and examples):

  • Conversion from non-distributed Julia sparse array to Tpetra::CrsMatrix
  • Vector views wrapping ArrayView (Julia loops as fast as in C++)
  • Some native functions for matrix assembly (assembly loop on-par with C++, see laplace2d example)
  • Linear solve using \
  • Solver parametrization using ParameterList

Installation

  • Install the dependencies:
Pkg.add("MPI")
Pkg.add("CxxWrap")
Pkg.add("CustomUnitRanges")
  • Set the environment variable TRILINOS_ROOT to the installation prefix of your Trilinos installation, e.g.
ENV["TRILINOS_ROOT"] = "/usr"
  • Clone and build Trilinos.jl:
Pkg.clone("https://github.com/barche/Trilinos.jl")
Pkg.build("Trilinos")

CUDA

To build with CUDA support on Linux, set the following environment variables before building CxxWrap and Trilinos:

ENV["OMPI_CXX"]="nvcc_wrapper"
ENV["NVCC_WRAPPER_DEFAULT_COMPILER"]="g++-5"
ENV["CXX"] = "mpicxx"

About

Julia wrappers for Trilinos

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages