Skip to content

barche/Trilinos.jl

Folders and files

NameName
Last commit message
Last commit date
Aug 1, 2018
Aug 11, 2018
Aug 11, 2018
Aug 9, 2018
Aug 1, 2018
Dec 11, 2016
Aug 11, 2018
Dec 11, 2016
Dec 11, 2016
Aug 9, 2018
Sep 25, 2017
Aug 1, 2018
Dec 11, 2016

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