  Dynamic flux balance analysis uses a quasi-steady state assumption to
calculate an organism's metabolic activity at each time-step of a dynamic
simulation, using the well-known technique of flux balance analysis. For
microbial communities, this calculation is especially costly and involves
solving a linear constrained optimization problem for each member of the
community at each time step. However, this is unnecessary and inefficient, as
prior solutions can be used to inform future time steps. Here, we show that a
basis for the space of internal fluxes can be chosen for each microbe in a
community and this basis can be used to simulate forward by solving a
relatively inexpensive system of linear equations at most time steps. We can
use this solution as long as the resulting metabolic activity remains within
the optimization problem's constraints (i.e. the solution to the linear system
of equations remains a feasible to the linear program). As the solution becomes
infeasible, it first becomes a feasible but degenerate solution to the
optimization problem, and we can solve a different but related optimization
problem to choose an appropriate basis to continue forward simulation. We
demonstrate the efficiency and robustness of our method by comparing with
currently used methods on a four species community, and show that our method
requires at least $91\%$ fewer optimizations to be solved. For reproducibility,
we prototyped the method using Python. Source code is available at
\verb|https://github.com/jdbrunner/surfin_fba|.
