This thesis presents several techniques for the numerical simulation of solid and fluid phenomena, including elastoplastic volumetric solids, incompressible elastic solids, large bodies of water, and viscoelastic fluids.
We first present a method for modifying a finite element discretization to ensure robustness under arbitrarily large deformation, including situations with degenerate or inverted elements (Chapter 2). The algorithm is straightforward to implement and can be used with any material constitutive model, and for both volumetric solids and thin shells such as cloth. We also discuss improved time integration methods for collisions and friction with objects (Chapter 3). Since a primary application of these methods is to biological tissue, we next consider an extension to incompressible materials which avoids the locking problems normally associated with first order tetrahedral elements (Chapter 4) and works well in situations involving complex collision and contact.
Turning to fluids, we present a new adaptive scheme for water simulation which uses uniform cells near the surface to capture detail and coarsens away from the interface with tall, thin cells (Chapter 5). This allows us to take advantage of the flat structure of most large bodies of water to efficiently capture bulk motion while preserving three-dimensional surface effects. We coarsen with tall, thin cells (as opposed to octrees or AMR), because they maintain good resolution horizontally allowing for accurate representation of bottom topography.
Finally, we present a simple method for simulating viscoelastic fluid flow which tracks a rotated linear version of the strain rather than the more common quadratic metric tensor, and treats the rotational term in the evolution using rotations directly to ensure stability (Chapter 6).