iMesh, iMeshP Use Cases The use cases below describe the PDE to be solved, and any application-imposed constraints on the parallel solution approach. These are meant to illustrate the use of the iMesh and iMeshP interfaces to solve these problems. For a given use case, describe how the constructs proposed for iMesh and iMeshP (e.g. Process, iMesh/iMeshP Instances, iMesh/iMeshP API functions, Partition, Part) will be used to solve the problem. While not absolutely required, this will generally require desription of: - the basic approach to distributing the domain and computations for the domain across Processes - what kind of communications are done in general, and how those interact with iMeshP constructs - the basic steps of the computational or time step kernel, and how they interact with iMeshP/iMesh. ===================== Use case 1: Solve a discretized PDE with FEM using spatial domain decomposition --------------------- Problem statement Solve a function dF/dx = f(x) on a spatial domain with prescribed boundary conditions. =============================== Use case 2: Radiation transport ------------------------------- Problem Statement In this use case, the radiation flux phi(x,E,t) is computed over a finite element grid, with flux values stored at vertices. In a very simplified form, the implicit formulation of this equation can be written as: d/d(x,E,t) phi(x,E,t1) = f(S(x,E), phis(x,t0)) where phis(x,t) = sum_E{w_E phi(x,E,t)} is the scalar flux, a weighted sum of energy-dependent fluxes phi(x,E,t). The discretized problem is partitioned into S spatial domains {si} and E energy domains {ej}. A given time step solution consists of two parts. First, across an energy subdomain ej, the problem is solved over the spatial subdomains si using a domain decomposition PDE solution method; the result is an phi(v(si),ej,t0), the radiation flux for a given energy ej at each vertex si. Second, the energy-based flux is converted to a scalar phi(v(si),t0), by computing a weighted sum over energy subdomains ej of the flux at each vertex, phi(v(si),ej,t0). The scalar flux is used in computing the energy-dependent flux phi(v(si),t1) on the next time step. =============================== Use case 3: Structural dynamics with parallel contact detection [Based on S. Plimpton et. al, "Parallel Transient Dynamics Simulations: Algorithms for Contact Detection and Smoothed Particle Hydrodynamics", J. Par Dist Comp, 50, 104-122 (1998)] ------------------------------- Problem Statement Solve a structural dynamics problem: d/dt^2 x(x,t) = f(x,t) over a volumetric domain V with multiple connected sets V_k, handling cases where connected sets come into contact and exert force on each other when their boundaries collide. Solve each time step in two phases. In the first phase, solve for new positions x(x,t) using a standard (spatial) domain decomposition FEM, with each process responsible for computing behavior of a spatial subdomain. In the second phase, for all nodes on faces bounding single volume elements (i.e. not contiguously connected to two volume elements), given the length of the next timestep t, compute location and time of collision of the node with any other boundary face. Solve this second phase by assigning boundary vertices to processes based on an RCB algorithm, and copying connected boundary faces to any processes owning one of their vertices. Note in the second phase, certain restrictions must be place on the minimum size of an RCB cell, such that a boundary face does not geometrically intersect the RCB cell without having one of its vertices in that cell. No restrictions should be placed on which process is assigned a volume element and any of its connected boundary faces; that is, a volume and its connected boundary faces are not required to be solved by the same process.