We present two-dimensional simulations of chemotactic self-propelled bacteria swimming in
a viscous fluid. Self-propulsion is modelled by a couple of forces of same intensity and
opposite direction applied on the rigid bacterial body and on an associated region in the
fluid representing the flagellar bundle. The method for solving the fluid flow and the
motion of the bacteria is based on a variational formulation written on the whole domain,
strongly coupling the fluid and the rigid particle problems: rigid motion is enforced by
penalizing the strain rate tensor on the rigid domain, while incompressibility is treated
by duality. This model allows to achieve an accurate description of fluid motion and
hydrodynamic interactions in moderate to concentrated active suspensions. A mesoscopic
model is also used, in which the size of the bacteria is supposed to be much smaller than
the elements of fluid: the perturbation of the fluid due to propulsion and motion of the
swimmers is neglected, and the fluid is only subjected to the buoyant forcing induced by
the presence of the bacteria, which are denser than the fluid. Although this model does
not accurately take into account hydrodynamic interactions, it is able to reproduce
complex collective dynamics observed in concentrated bacterial suspensions, such as
bioconvection. From a mathematical point of view, both models lead to a minimization
problem which is solved with a standard Finite Element Method. In order to ensure
robustness, a projection algorithm is used to deal with contacts between particles. We
also reproduce chemotactic behaviour driven by oxygen: an advection-diffusion equation on
the oxygen concentration is solved in the fluid domain, with a source term accounting for
oxygen consumption by the bacteria. The orientations of the individual bacteria are
subjected to random changes, with a frequency that depends on the surrounding oxygen
concentration, in order to favor the direction of the concentration gradient.