Dissolution is an important aspect of a wide variety of geologic processes. For example, karst structures - created by dissolution of limestone bedrock - provide fresh water supplies across the globe. Additionally, melting of glacial ice is a dissolution process that is occurring on large scales due to climate change. Modeling dissolution at a detailed, mesoscopic level will provide insight into the formation of karst structures as well as glacial melting. Lattice-Boltzmann methods were used to create a dissolution model because they are particularly well-suited for simulating the complex geometries that can be produced by the dissolution of limestone or ice.
Standard Lattice-Boltzmann models simulate dissolution of host materials in discrete amounts of one entire lattice spacing at a time. Our model uses an intermediate step added to the usual collision of a fluid node with a solid boundary node to allow the host material to be dissolved by fractions of lattice spaces. This provides very a very detailed view of dissolution. Dynamic memory allocation is also an important part of this model; by allowing the program to assign new locations for solid nodes as the need arises due to the dissolution of old solid nodes as opposed to pre-setting a specific shape and size to the host rock, the program is not hampered by the need to keep track of a large set of solid nodes. Data produced by this model was compared to and excellently matched with analytical solutions for gravity-driven flow through a channel, diffusion rates, and moving boundary locations.