Giter VIP home page Giter VIP logo

nukularrr / draco Goto Github PK

View Code? Open in Web Editor NEW

This project forked from lanl/draco

0.0 0.0 0.0 25.02 MB

An object-oriented component library supporting radiation transport applications.

License: Other

Shell 3.64% C++ 75.98% Python 3.41% C 1.54% Emacs Lisp 2.99% Lua 0.03% Fortran 0.43% CSS 0.41% TeX 0.92% Cuda 0.04% Makefile 0.02% CMake 10.05% Dockerfile 0.37% Vim Script 0.03% Batchfile 0.13% HTML 0.01%

draco's Introduction

Draco

GitHub Status

GNU Build Status LLVM Build Status Windows Build Status codecov.io Latest Version PyPI GitHub Super-Linter

Summary

Draco is an object-oriented component library geared towards numerically intensive, radiation (particle) transport applications built for parallel computing hardware. It consists of semi-independent packages and a robust build system. The packages in draco provide a set of components that can be used by multiple clients to build transport codes. The build system can also be extracted for use in clients.

To clone draco:

git clone https://github.com/lanl/Draco.git

To get started, please see Development - Quick Start Guide in the wiki. Pull requests must satisfy the requirements listed in the Style Guide.

Spack - Draco can be installed via the spack package manager

Synopsis of Active Draco Packages

  • c4 - A communications library for message passing interfaces (MPI).
    • For builds without MPI, all communication commands will be no-op functions (DRACO_C4={MPI;SCALAR}). Also provides a wrapper to libquo
  • cdi - Access to material data. The Common Data Interface (CDI) specifies a common abstraction for objects and libraries that return material data (opacities, atomic cross sections, equation-of-state data, etc.)
  • cdi_analytic - Analytic models for physical data
  • cdi_CPEloss - Stopping power models for charged particles.
  • cdi_eospac - Equation-of-State data
    • These classes wrap the EOSPAC6 libraries that read sesame files; Commonly used to access gray opacity data and heat capacities. (EOSPAC_LIB_DIR=<path>).
  • cdi_ipcress - Gray and multigroup opacities
    • The classes in this component will read and parse opacity values from an IPCRESS file produced by TOPS.
  • cdi_ndi - Wrapper around LANL's Nuclear Data Interface (NDI) library for accessing nuclear data tables.
  • compton_interface - Provides access to Compton scattering models and data as provided by the CSK library..
  • compton_tools - Provides performant converter, reader, and interpolation tools for Compton data
  • device - Wrapper for heterogeneous device communication
    • The classes in this component provide access to DaCS (deprecated) and CUDA calls for use on heterogeneous architecture platforms (GPU machines).
  • diagnostics - CPP macros that are activated at compile time that can provide additional diagnostic verbosity during calculations.
  • ds++ - Basic services and data structures library.
    • Array containers, assertion and Design-by-Contract, access to low level OS functions, file and path manipulation, unit test system, etc.
  • experimental - Implementations of C++ features that are not yet available to all compilers that are used when installing Draco libraries. Currently, this component provides mdspan.
  • fc4 - Fortran wrapper around portions of c4
  • fit - Least squares fitting routines.
  • fpe_trap - Catch IEEE floating point exceptions
  • FortranCheck - Test Fortran compatibility and interoperability
    • The examples in this component will demonstrate if the Fortran compiler is working; if Fortran/C inter-language linking/running is working and sample ISO_C_BINDING calls.
  • kde - KDE are a natural extension of quadrature. They reconstruct a smooth representation of a sampled field based on a specified Kernel shape. This populates the initial KDE infrastructure and some simple 1D reconstructions.
  • linear - direct solvers for small linear systems of equations.
  • mesh - Encapsulate mesh definition and accessors.
  • mesh_element - defines fundamental mesh element types used by mesh, meshReaders and RTT_Format_Reader.
  • meshReaders - Read RTT format mesh files.
  • min - Optimization routines. Find the minimum of a function.
  • norms - Calculate norms for data sets.
  • ode - Ordinary differential equation solvers (e.g.: Runge-Kutta).
  • parser - Lexical file/input parser.
  • quadrature - access to angular integration functions and related data.
  • rng - A random number generator component
    • The primary set of functions provided by this component were derived from Random123 random number library. A few additional random number generators are also provided.
  • roots - Root finding algorithms
  • RTT_Format_Reader - meshReaders implementation for RTT format mesh files or input-streams.
  • special_functions - Specialized math functions like factorial and Dirac delta.
  • units - Provides encapsulated unit systems, functions to convert between unit systems and physical constants.
  • VendorChecks - A testing component to ensure that discovered and used vendor libraries behave as expected.
  • viz - Generates Ensight files for data visualization.

Deprecated packages

  • lapack_wrap - C++ wrapper for BLAS and LAPACK (removed 2022 July 12).
  • plot2d - C++ interface to XMGrace 2-dimensional plotting (removed 2020 Dec 3).
  • shared_lib - Dynamically load/unload shared object libraries via dl load (removed 2020 Sep 7).
  • traits - A traits class used by viz.

Authors

Many thanks go to Draco's contributors.

Draco was originally written by staff from Los Alamos's CCS-2 Computational Physics and Methods Group:

CCS-2 Draco Team: Kelly G. Thompson, Matt A. Cleveland, Ryan T. Wollaeger, Ben R. Ryan, Alex R. Long, Kendra P. Long, James S. Warsa, and Jae H. Chang.

Prior Contributors: Kent. G. Budge, Gabriel M. Rockefeller, Allan B. Wollaber, Tim Kelley, Rob B. Lowrie, Andrew T. Till, Paul W. Talbot, Katherine J. Wang, Ondrej Certik, Peter Ahrens, David A. Dixon, Massimiliano Rosa, Todd J. Urbatsch, Daniel Holladay, Howard Pritchard, Jeff D. Densmore, Jeff Furnish, John McGhee, Kris C. Garrett, Mike Buksas, Nick Myers, Paul Henning, Randy Roberts, Seth Johnson, Todd Adams, Tom Evans, Lori Pritchett-Sheats, and Seth D. Cook.

Release

Draco is released under the BSD 3-Clause License. For more details see the LICENSE file.

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.