Giter Club home page Giter Club logo

ume's Introduction

UME: Unstructured Mesh Explorations

Contributor Covenant

Description

UME is a collection of data structures and algorithms for parallel unstructured meshes. It is intended to be used to explore the co-design space of hardware and software to support computational fluid dynamics simulation packages.

Installation

UME is a CMake-based package written in C++20. The basic steps for building UME are:

  1. Install external packages;
  2. Do a cmake configuration step;
  3. Build the libraries and executables.

The primary product of UME is a library and header files, as well as some example driver executables.

External Packages

UME relies on several external packages. These can be installed easily using the spack package manager. The spack specs for all packages are:

spack:
  specs:
    - catch2
    - cmake
    - doxygen
    - git
    - graphviz
    - kokkos+openmp std=20
    - openmpi
  packages:
    catch2:
      require: '@3:'

CMake Configuration Options

CMake options can be specified either with the interactive ccmake tool, or on the command line of cmake, preceded by the -D flag. Package-specific CMake options for UME include:

  • USE_CATCH2=NO will disable Ctest testing that relies on version 3 of the Catch2 testing framework.
  • USE_KOKKOS=YES will enable Kokkos support, and requires Kokkos to be found in the environment (UME does not currently use Kokkos).
  • USE_MPI=YES will enable MPI support, and requires MPI compilers to be available on the search path.
  • USE_OPENACC=YES will enable OpenACC support, and requires the C++ compiler to support it (UME does not currently use OpenACC).

Generated Executables

After a successful build, two example driver executables will be generated that are of interest to the general community: ume_serial and ume_mpi. Each exercises the gradient operators found in the Ume/gradient.hh headers. The MPI version ume_mpi is the most realistic. The usage is:

% ume_serial <filename>

Where <filename> is the complete file name for an UME binary input file (distributed separately). Or

% mpirun -np <n> ume_mpi <prefix>

Where there is expected to be a set of files named as if generated with sprintf(filename, '%s.%05d.ume', prefix, rank) for 0 <= rank < n.

Project Name

"Ume" is also the romanization of the Japanese word for "plum" (梅, or うめ). Sort of pronounced in English as if you were asking the question "oo-meh?"

Authors

UME was created by Paul Henning ([email protected]).

Release

UME is released as open source under a BSD-3 License. For more details, please see the LICENSE.md and NOTICE.md files.

LANL C23016

© 2023. Triad National Security, LLC. All rights reserved.

ume's People

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.