diff --git a/demos/full_waveform_inversion/full_waveform_inversion.py.rst b/demos/full_waveform_inversion/full_waveform_inversion.py.rst index 147cbc1860..06390072da 100644 --- a/demos/full_waveform_inversion/full_waveform_inversion.py.rst +++ b/demos/full_waveform_inversion/full_waveform_inversion.py.rst @@ -83,7 +83,7 @@ for 3 wave sources. Therefore, we will have 3 emsemble members, each with 2 rank processes launched by mpiexec must therefore be equal to the product of number of ensemble members (3, in this case) with the number of processes to be used for each ensemble member (``M=2``, in this case). Additional details about the ensemble parallelism can be found in the -`Firedrake documentation `_. +`Firedrake documentation `_. The subcommunicators in each ensemble member are: ``Ensemble.comm`` and ``Ensemble.ensemble_comm``. ``Ensemble.comm`` is the spatial communicator. ``Ensemble.ensemble_comm`` allows communication between diff --git a/firedrake/adjoint/ensemble_reduced_functional.py b/firedrake/adjoint/ensemble_reduced_functional.py index fc17f2b1ed..72979a5702 100644 --- a/firedrake/adjoint/ensemble_reduced_functional.py +++ b/firedrake/adjoint/ensemble_reduced_functional.py @@ -85,7 +85,7 @@ class EnsembleReducedFunctional(AbstractReducedFunctional): The functionals :math:`J_i` and the control must be defined over a common `ensemble.comm` communicator. To understand more about how ensemble parallelism works, please refer to the `Firedrake manual - `_. + `_. """ def __init__(self, functional, control, ensemble, scatter_control=True, gather_functional=None,