diff --git a/src/finiteVolume/fields/fvPatchFields/derived/buoyantPressure/buoyantPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/buoyantPressure/buoyantPressureFvPatchScalarField.C
index 290c89eb5e617c845d91d351788f116858484f96..734bbb18d7d6dfc36532688f98a09bea55b5fa38 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/buoyantPressure/buoyantPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/buoyantPressure/buoyantPressureFvPatchScalarField.C
@@ -55,8 +55,19 @@ buoyantPressureFvPatchScalarField
     fixedGradientFvPatchScalarField(p, iF),
     rhoName_(dict.lookupOrDefault<word>("rho", "rho"))
 {
-    fvPatchField<scalar>::operator=(patchInternalField());
-    gradient() = 0.0;
+    if (dict.found("value") && dict.found("gradient"))
+    {
+        fvPatchField<scalar>::operator=
+        (
+            scalarField("value", dict, p.size())
+        );
+        gradient() = scalarField("gradient", dict, p.size());
+    }
+    else
+    {
+        fvPatchField<scalar>::operator=(patchInternalField());
+        gradient() = 0.0;
+    }
 }
 
 
diff --git a/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C b/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
index 893dc030dc3334867525cfb1200df6a6954aa31a..48ab0f5abd76d33312bcc668d647b28c73817039 100644
--- a/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
+++ b/src/finiteVolume/fields/fvPatchFields/derived/fixedFluxPressure/fixedFluxPressureFvPatchScalarField.C
@@ -77,11 +77,15 @@ Foam::fixedFluxPressureFvPatchScalarField::fixedFluxPressureFvPatchScalarField
     DpName_(dict.lookupOrDefault<word>("Dp", "Dp")),
     adjoint_(dict.lookupOrDefault<Switch>("adjoint", false))
 {
-    if (dict.found("gradient"))
+    if (dict.found("value") && dict.found("gradient"))
     {
+        fvPatchField<scalar>::operator=
+        (
+            scalarField("value", dict, p.size())
+        );
         gradient() = scalarField("gradient", dict, p.size());
-        fixedGradientFvPatchScalarField::updateCoeffs();
-        fixedGradientFvPatchScalarField::evaluate();
+        //fixedGradientFvPatchScalarField::updateCoeffs();
+        //fixedGradientFvPatchScalarField::evaluate();
     }
     else
     {
@@ -190,7 +194,7 @@ void Foam::fixedFluxPressureFvPatchScalarField::updateCoeffs()
 
 void Foam::fixedFluxPressureFvPatchScalarField::write(Ostream& os) const
 {
-    fvPatchScalarField::write(os);
+    fixedGradientFvPatchScalarField::write(os);
     writeEntryIfDifferent<word>(os, "phiHbyA", "phiHbyA", phiHbyAName_);
     writeEntryIfDifferent<word>(os, "phi", "phi", phiName_);
     writeEntryIfDifferent<word>(os, "rho", "rho", rhoName_);
@@ -200,6 +204,7 @@ void Foam::fixedFluxPressureFvPatchScalarField::write(Ostream& os) const
         os.writeKeyword("adjoint") << adjoint_ << token::END_STATEMENT << nl;
     }
     gradient().writeEntry("gradient", os);
+    writeEntry("value", os);
 }