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); }