  The topological transitions that occur to the grain boundary network during
grain growth in a material with uniform grain boundary energies are believed to
be known. The same is not true for more realistic materials, since more general
grain boundary energies in principle allow many more viable grain boundary
configurations. A simulation of grain growth in such a material therefore
requires a procedure to enumerate all possible topological transitions and
select the most energetically favorable one. Such a procedure is developed and
implemented here for a microstructure represented by a volumetric finite
element mesh. As a specific example, all possible transitions for a typical
configuration with five grains around a junction point are enumerated, and some
exceptional transitions are found to be energetically similar to the
conventional ones even for a uniform boundary energy. A general discrete
formulation to calculate grain boundary velocities is used to simulate grain
growth for an example microstructure. The method is implemented as a C++
library based on SCOREC, an open source massively parallelizable library for
finite element simulations with adaptive meshing.
