Computer Methods in Applied Mechanics and Engineering
Computer Methods in Applied Mechanics and Engineering
Hybrid Krylov methods for nonlinear systems of equations
SIAM Journal on Scientific and Statistical Computing
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Journal of Computational Physics
Convergence Analysis of Pseudo-Transient Continuation
SIAM Journal on Numerical Analysis
Uintah: A Massively Parallel Problem Solving Environment
HPDC '00 Proceedings of the 9th IEEE International Symposium on High Performance Distributed Computing
Jacobian-free Newton-Krylov methods: a survey of approaches and applications
Journal of Computational Physics
A framework approach for developing parallel adaptive multiphysics applications
Finite Elements in Analysis and Design - Special issue: The fifteenth annual Robert J. Melosh competition
An overview of the Trilinos project
ACM Transactions on Mathematical Software (TOMS) - Special issue on the Advanced CompuTational Software (ACTS) Collection
A compiler for variational forms
ACM Transactions on Mathematical Software (TOMS)
Task Scheduling for Parallel Systems (Wiley Series on Parallel and Distributed Computing)
Task Scheduling for Parallel Systems (Wiley Series on Parallel and Distributed Computing)
Managing complexity in massively parallel, adaptive, multiphysics applications
Engineering with Computers
libMesh: a C++ library for parallel adaptive mesh refinement/coarsening simulations
Engineering with Computers
deal.II—A general-purpose object-oriented finite element library
ACM Transactions on Mathematical Software (TOMS)
MultiScale Modeling of Physical Phenomena: Adaptive Control of Models
SIAM Journal on Scientific Computing
Validity of the single processor approach to achieving large scale computing capabilities
AFIPS '67 (Spring) Proceedings of the April 18-20, 1967, spring joint computer conference
Journal of Computational Physics
Efficient representation of computational meshes
International Journal of Computational Science and Engineering
NP-complete scheduling problems
Journal of Computer and System Sciences
Towards a scalable fully-implicit fully-coupled resistive MHD formulation with stabilized FE methods
Journal of Computational Physics
Unified Embedded Parallel Finite Element Computations via Software-Based Fréchet Differentiation
SIAM Journal on Scientific Computing
Automatic differentiation of c++ codes for large-scale scientific computing
ICCS'06 Proceedings of the 6th international conference on Computational Science - Volume Part IV
DAG-Based software frameworks for PDEs
Euro-Par'11 Proceedings of the 2011 international conference on Parallel Processing
Multiphysics simulations: Challenges and opportunities
International Journal of High Performance Computing Applications
Scientific Programming - A New Overview of the Trilinos Project --Part 1
Hi-index | 0.00 |
Multiphysics simulation software is plagued by complexity stemming from nonlinearly coupled systems of Partial Differential Equations (PDEs). Such software typically supports many models, which may require different transport equations, constitutive laws, and equations of state. Strong coupling and a multiplicity of models leads to complex algorithms (i.e., the properly ordered sequence of steps to assemble a discretized set of coupled PDEs) and rigid software. This work presents a design strategy that shifts focus away from high-level algorithmic concerns to low-level data dependencies. Mathematical expressions are represented as software objects that directly expose data dependencies. The entire system of expressions forms a directed acyclic graph and the high-level assembly algorithm is generated automatically through standard graph algorithms. This approach makes problems with complex dependencies entirely tractable, and removes virtually all logic from the algorithm itself. Changes are highly localized, allowing developers to implement models without detailed understanding of any algorithms (i.e., the overall assembly process). Furthermore, this approach complements existing MPI-based frameworks and can be implemented within them easily. Finally, this approach enables algorithmic parallelization via threads. By exposing dependencies in the algorithm explicitly, thread-based parallelism is implemented through algorithm decomposition, providing a basis for exploiting parallelism independent from domain decomposition approaches.