Hydra is an extensible C++ toolkit that provides a rich suite of components for rapid application development, supports multiple discretization techniques, provides I/O interfaces to permit reading/writing multiple file formats for meshes, plot data, time-history, surface-based and restart output.  Data registration is used to provide the ability to register variables at appropriate locations (e.g., node, element, dual-edge, etc), and provides integrated and automatic output and restart capabilities along with memory management. The toolkit also provides run-time parallel domain decomposition with data-migration for both static and dynamic load-balancing.  Linear algebra is handled through an abstract virtual interface that makes it possible to use popular libraries such as PETSc and Trilinos.  The use of output delegates provides the ability to develop lightweight physics-specific output kernels with minimal memory overhead that can be tailored to a specific physics, e.g., computation of vorticity, helicity, enstrophy for large-eddy simulations.  A flexible material model interface supports a broad collection of material properties that include non-Newtonian viscosities, material strength models, and equations of state. 

Hydra's toolkit model for development provides lightweight, high performance and reusable code components for agile development.  The Hydra toolkit has been used for methods and algorithms research with a broad array of physics, discretization techniques and solution methods. Currently the toolkit supports finite-element based solvers for time-dependent heat conduction, time-dependent advection-diffusion, time-dependent incompressible flow, multiple Lagrangian hydrodynamics solvers, rigid-body dynamics, etc.  In addition, unstructured-grid finite-volume solvers are available for solving time-dependent advection-diffusion, Burgers' equation, the compressible Euler equations, the hybrid incompressible/low-Mach Navier-Stokes equations, and the multiphase flow equations.

The following list outlines the design principles, physics,discretization and overall Hydra Toolkit capabilities.

Design Principles

  • Parallel and scalable by design
  • Parallel Scaling: 10s to O(10,000) cores
  • Interface centric, component based
  • C++ w. edge-based data structures for finite volume methods
  • ~106 elements in 2 GByte memory
  • Grid sizes: 106 to 109 elements
  • Extensible for advanced architectures

Physics & Discretizations

  • Heat conduction
  • Advection-diffusion
  • Burger's equation
  • Incompressible fluid flow
  • Compressible fluid flow
  • Eulerian multiphase flow
  • Rigid-body dynamics
  • Variational multiscale hydro
  • FEM single/multimaterial hydro
  • Cell-centered FVM hydro
  • Interfaces for level-sets and front-tracking (FronTier)

Multiphysics Interfaces

  • Fluid-Structure Interaction
  • Conjugate Heat Transfer

Material Model Interface

  • Newtonian/Non-Newtonian Viscosities:  Carreau-Yasuda, Cross, Ellis-Meter, Herschel-Bulkley, Powell-Eyring
  • Porous Media: Carman-Kozeny permeability
  • Temperature dependent thermal properties (conductivity, specific heat, etc.)
  • Material strength: elastic-plastic, Johnson-Cook,  Prandtl-Reuss
  • Ideal-gas equation of state
  • Abstract extensible interfaces for easily adding material properties

Element Library 

  • 2-D Quadrilateral
  • 2-D Arbitrary Polygon
  • 2-D Triangle
  • 3-D Hexahedron
  • 3-D Pyramid
  • 3-D Wedge
  • 3-D Arbitrary Polyhedron

Mesh Generators

  Visualization Tools

Supported Platforms

  • MacOs
  • Linux desktop, clusters
  • DOE Supercomputers: TITAN, LANL Clusters, etc.
  • Sharcnet Systems

Linear Algebra Interface

  • Abstract interface for native, third-party, and commercial solvers
  • Advanced Preconditioners
  • Native: CG, FGMRES
  •  PETSc: CG, GMRES, FGMRES,  algebraic multigrid, ILU preconditioners
  • Nvidia: GPU-based algebraic multigrid

Parallel Load Balancing

  • Abstract interface for run-time parallel load balancing
  • Static and dynamic load balancers
  • Graph and spatial decomposition algorithms

Turbulence Models

  • ILES
  • WALE
  • Smagorinsky
  • Spalart-Allmaras
  • DES/Spalart-Allmaras
  • Standard, RNG, Realizable and non-linear k-epsilon

Boundary Conditions

  • Set-based description of all boundary conditions
  • Physics-specific prescription of common Dirichlet and Neumann conditions
  • Specialized boundary conditions for fluid flow, Lagrangian dynamics

Input Formats

  • ASCII Keyword Input
  • ASCII Neutral Format Mesh
  • Exodus-II/HDF5 Mesh
  • Abstract interface for mesh readers permitting easy addition of additional file formats

Output Formats

  • Output includes multiple files for visualization that include field and time-history data at varying time intervals.
  • ASCII Time-History
  • Exodus-II/HDF5 for plot and statistics data
  • ASCII VTK for plot and statistics data
  • Abstract interface for output writers permitting easy addition of additional file formats