Skip to content

CASL/Futility

Repository files navigation

IMPORTANT: Futility has moved! All contributions will be accepted only through the new host server as of 07/14/2021.

Futility


Futility Development Group

All rights reserved.

Futility is a jointly-maintained, open-source project between the University of Michigan and Oak Ridge National Laboratory.  The copyright and license can be found in LICENSE.txt in the head directory of this repository.

Introduction


The Futility project is a CMake-configurable package of FORTRAN utilities that contains the following capabilities:

  • Definition of kinds for intrinsic numeric data types
  • Unit test harness
  • Definitions for some basic extensions to the Fortran language:
    • arbitrary length strings, a parameter list construct, exception handlers, a command line processor, and timers
  • Geometry definitions and intersection routines for:
    • point, line, plane, box, cylinder, and polyhedron
  • File wrapper functions:
    • standard Fortran input/output files, binary files, HDF5 files, and VTK files
  • Parallel wrapper functions:
    • MPI, and OpenMP abstraction layers, partitioning algorithms
  • Math utilities:
    • BLAS, Matrix and Vector definitions, Linear Solver methods, wrappers for other TPLs (PETSC, MKL, etc), and pre-conditioner classes,
  • A lightweight profiling interface, and
  • Other miscellaneous routines:
    • random number generator, water saturation properties, sorting algorithms

The Futility project will not contain any encryption technology to preserve the open source license.

Citation


Proper citation of the Futility software: Futility Development Group, "Futility: FORTRAN Utility," Revision {REVISION}.

Where the {REVISION} can be found with GIT:

git log -1 --pretty=format:"%h, %ad" --date=format:'%m-%d-%Y'

Origin


The original software package that is now Futility was developed at the University of Michigan to enable efficient development and testing of the MPACT code. The original developers, now at ORNL and Michigan, further extended this library and generalized it for use with COBRA-TF and MAMBA as part of VERA. Further information on these original applications that leverage Futility can be found at www.casl.gov.

Software License and Contributor Agreement


License Agreement:

  • By downloading, copying, installing or using the software you agree to the Apache License v2.0, as described in LICENSE.txt. If you do not agree to this license, do not download, install, copy or use the software.

Contributor Agreement:

  • All contributors to the software have agreed that their contributions may be distributed with the license in LICENSE.txt. If you do not agree to the distribution of your contribution under this license, do not contribute to this software project.
  • When a contribution is made through a pull request at github.com/CASL/Futility the author has the right to add an additional Copyright statement to the LICENSE.txt file in their pull request. The original copyright statements should remain followed by the new contribution.
  • The administrators of the github.com/CASL/Futility project reserve the right to decline any pull request for any reason.