diff --git a/src/functionObjects/field/Make/files b/src/functionObjects/field/Make/files
index ac70390ecdc17a504d61dd6fcc54692158f001cf..ecfb29762723dcabc83bb5436aa8e56f7b1ecf30 100644
--- a/src/functionObjects/field/Make/files
+++ b/src/functionObjects/field/Make/files
@@ -32,6 +32,7 @@ nearWallFields/findCellParticle.C
 nearWallFields/findCellParticleCloud.C
 
 processorField/processorField.C
+proudmanAcousticPower/proudmanAcousticPower.C
 readFields/readFields.C
 
 setFlow/setFlow.C
diff --git a/src/functionObjects/field/proudmanAcousticPower/proudmanAcousticPower.C b/src/functionObjects/field/proudmanAcousticPower/proudmanAcousticPower.C
new file mode 100644
index 0000000000000000000000000000000000000000..4077b78801aa6cd2843a3132b178f8f49aef1d02
--- /dev/null
+++ b/src/functionObjects/field/proudmanAcousticPower/proudmanAcousticPower.C
@@ -0,0 +1,226 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2019 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+\*---------------------------------------------------------------------------*/
+
+#include "proudmanAcousticPower.H"
+#include "volFields.H"
+#include "basicThermo.H"
+#include "turbulenceModel.H"
+#include "addToRunTimeSelectionTable.H"
+
+// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+    defineTypeNameAndDebug(proudmanAcousticPower, 0);
+    addToRunTimeSelectionTable
+    (
+        functionObject,
+        proudmanAcousticPower,
+        dictionary
+    );
+}
+}
+
+// * * * * * * * * * * * * * Private Member Functions  * * * * * * * * * * * //
+
+Foam::tmp<Foam::volScalarField>
+Foam::functionObjects::proudmanAcousticPower::rhoScale
+(
+    const tmp<volScalarField>& fld
+) const
+{
+    const basicThermo* thermoPtr =
+        getObjectPtr<basicThermo>(basicThermo::dictName);
+
+    if (thermoPtr)
+    {
+        return fld*thermoPtr->rho();
+    }
+
+    if (rhoInf_.value() < 0)
+    {
+        FatalErrorInFunction
+            << type() << " " << name() << ": "
+            << "Incompressible calculation assumed, but no reference density "
+            << "set.  Please set the entry 'rhoInf' to an appropriate value"
+            << nl
+            << exit(FatalError);
+    }
+
+    return rhoInf_*fld;
+}
+
+
+Foam::tmp<Foam::volScalarField>
+Foam::functionObjects::proudmanAcousticPower::a() const
+{
+    const basicThermo* thermoPtr =
+        getObjectPtr<basicThermo>(basicThermo::dictName);
+
+    if (thermoPtr)
+    {
+        const basicThermo& thermo = *thermoPtr;
+        return sqrt(thermo.gamma()*thermo.p()/thermo.rho());
+    }
+
+    return
+        tmp<volScalarField>::New
+        (
+            IOobject
+            (
+                scopedName("a"),
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ
+            ),
+            mesh_,
+            aRef_
+        );
+}
+
+
+// * * * * * * * * * * * * * * * * Constructors  * * * * * * * * * * * * * * //
+
+Foam::functionObjects::proudmanAcousticPower::proudmanAcousticPower
+(
+    const word& name,
+    const Time& runTime,
+    const dictionary& dict
+)
+:
+    fvMeshFunctionObject(name, runTime, dict),
+    rhoInf_("0", dimDensity, -1),
+    aRef_(dimVelocity, Zero),
+    alphaEps_(0.1)
+{
+    read(dict);
+
+    volScalarField* PAPtr
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                scopedName("P_A"),
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            mesh_,
+            dimensionedScalar(dimPower/dimVolume, Zero)
+        )
+    );
+
+    PAPtr->store();
+
+    volScalarField* LPPtr
+    (
+        new volScalarField
+        (
+            IOobject
+            (
+                scopedName("L_P"),
+                mesh_.time().timeName(),
+                mesh_,
+                IOobject::NO_READ,
+                IOobject::NO_WRITE
+            ),
+            mesh_,
+            dimensionedScalar(dimless, Zero)
+        )
+    );
+
+    LPPtr->store();
+}
+
+
+// * * * * * * * * * * * * * * * Member Functions  * * * * * * * * * * * * * //
+
+bool Foam::functionObjects::proudmanAcousticPower::read(const dictionary& dict)
+{
+    if (fvMeshFunctionObject::read(dict))
+    {
+        rhoInf_.readIfPresent("rhoInf", dict);
+        aRef_.readIfPresent("aRef", dict);
+        dict.readIfPresent("alphaEps", alphaEps_);
+
+        return true;
+    }
+
+    return false;
+}
+
+
+bool Foam::functionObjects::proudmanAcousticPower::execute()
+{
+    const turbulenceModel& turb =
+        lookupObject<turbulenceModel>(turbulenceModel::propertiesName);
+
+    const volScalarField Mt(sqrt(2*turb.k())/a());
+
+    volScalarField& P_A =
+        mesh_.lookupObjectRef<volScalarField>(scopedName("P_A"));
+
+    P_A = rhoScale(alphaEps_*turb.epsilon()*pow5(Mt));
+
+    volScalarField& L_P =
+        mesh_.lookupObjectRef<volScalarField>(scopedName("L_P"));
+
+    L_P = 10*log10(P_A/dimensionedScalar("PRef", dimPower/dimVolume, 1e-12));
+
+    return true;
+}
+
+
+bool Foam::functionObjects::proudmanAcousticPower::write()
+{
+    Log << type() << " " << name() << " write:" << nl;
+
+    const volScalarField& P_A =
+        mesh_.lookupObject<volScalarField>(scopedName("P_A"));
+
+    Log << "    writing field " << P_A.name() << nl;
+
+    P_A.write();
+
+    const volScalarField& L_P =
+        mesh_.lookupObject<volScalarField>(scopedName("L_P"));
+
+    Log << "    writing field " << L_P.name() << nl;
+
+    L_P.write();
+
+    Log << endl;
+
+    return true;
+}
+
+
+// ************************************************************************* //
diff --git a/src/functionObjects/field/proudmanAcousticPower/proudmanAcousticPower.H b/src/functionObjects/field/proudmanAcousticPower/proudmanAcousticPower.H
new file mode 100644
index 0000000000000000000000000000000000000000..3804a6e25e69fca9f46c01a8fd13a31c7ccc3327
--- /dev/null
+++ b/src/functionObjects/field/proudmanAcousticPower/proudmanAcousticPower.H
@@ -0,0 +1,183 @@
+/*---------------------------------------------------------------------------*\
+  =========                 |
+  \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox
+   \\    /   O peration     |
+    \\  /    A nd           | www.openfoam.com
+     \\/     M anipulation  |
+-------------------------------------------------------------------------------
+    Copyright (C) 2019 OpenCFD Ltd.
+-------------------------------------------------------------------------------
+License
+    This file is part of OpenFOAM.
+
+    OpenFOAM is free software: you can redistribute it and/or modify it
+    under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
+    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+    FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+    for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with OpenFOAM.  If not, see <http://www.gnu.org/licenses/>.
+
+Class
+    Foam::functionObjects::proudmanAcousticPower
+
+Group
+    grpFieldFunctionObjects
+
+Description
+    Calculates the acoustic power due to the volume of isotropic turbulence
+    using Proudman's formula
+
+    The acoustic power \f$ P_A \f$ [W/m3] in terms of turbulence \f$ k \f$
+    and \f$ \epsilon \f$ is given as:
+
+        \f[
+            P_A = alpha_\epsilon \rho \epsilon M_t^5
+        \f]
+
+    where \f$ alpha_\epsilon \f$ is a constant (0.1) and
+
+        \f[
+            M_t = \frac{\sqrt{2 k}}{a_0}
+        \f]
+
+    with \f$ a_0 \f$ the speed of sound.  The acoustic power is also output in
+    dB using:
+
+        \f[
+            L_P = 10 \log \frac{P_A}{P_ref}
+        \f]
+
+    where \f$ P_ref \f$ is a constant (1e-12 W/m3)
+
+Usage
+    Example of function object specification to calculate the Proudman acoustic
+    power:
+    \verbatim
+    proudmanAcousticPower1
+    {
+        type        proudmanAcousticPower;
+        libs        ("libfieldFunctionObjects.so");
+        ...
+
+        // Required additional entries for incompressible calculations
+        rhoInf      1.225;
+        aRef        340;
+    }
+    \endverbatim
+
+    Where the entries comprise:
+    \table
+        Property | Description                              | Required | Default
+        type     | type name: proudmanAcousticPower         | yes |
+        rhoInf   | Freestream density (for incompressible)  | no  |
+        aRef     | Reference speed of sound (for incompressible) | no  |
+        alphaEps | Model coefficient                        | no  | 0.1
+    \endtable
+
+Note
+    The freestream density and reference speed of sound are only necessary
+    when a thermodynamics package is unavailable, typically for incompressible
+    cases.
+
+See also
+    Foam::functionObjects::fvMeshFunctionObject
+
+SourceFiles
+    proudmanAcousticPower.C
+
+\*---------------------------------------------------------------------------*/
+
+#ifndef functionObjects_proudmanAcousticPower_H
+#define functionObjects_proudmanAcousticPower_H
+
+#include "fvMeshFunctionObject.H"
+#include "volFieldsFwd.H"
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+namespace Foam
+{
+namespace functionObjects
+{
+
+/*---------------------------------------------------------------------------*\
+                   Class proudmanAcousticPower Declaration
+\*---------------------------------------------------------------------------*/
+
+class proudmanAcousticPower
+:
+    public fvMeshFunctionObject
+{
+private:
+
+    // Private Data
+
+        //- Freestream density (incompressible calcs only)
+        dimensionedScalar rhoInf_;
+
+        //- Reference speed of sound (incompressible calcs only)
+        dimensionedScalar aRef_;
+
+        //- Model coefficient; default = 0.1
+        scalar alphaEps_;
+
+
+    // Private Member Functions
+
+        //- Multiply the field by density and return
+        tmp<volScalarField> rhoScale(const tmp<volScalarField>& fld) const;
+
+        //- Speed of sound
+        tmp<volScalarField> a() const;
+
+
+public:
+
+    //- Runtime type information
+    TypeName("proudmanAcousticPower");
+
+
+    // Constructors
+
+        //- Construct from Time and dictionary
+        proudmanAcousticPower
+        (
+            const word& name,
+            const Time& runTime,
+            const dictionary&
+        );
+
+
+    //- Destructor
+    virtual ~proudmanAcousticPower() = default;
+
+
+    // Member Functions
+
+        //- Read the Proudman acoustic power data
+        virtual bool read(const dictionary&);
+
+        //- Calculate the Proudman acoustic power
+        virtual bool execute();
+
+        //- Write the Proudman acoustic power
+        virtual bool write();
+};
+
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+} // End namespace functionObjects
+} // End namespace Foam
+
+// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
+
+#endif
+
+// ************************************************************************* //