diff --git a/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.C b/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.C index dc37c38a43..42dec49fc3 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/surfaceNormalFixedValue/surfaceNormalFixedValueFvPatchVectorField.C @@ -67,18 +67,13 @@ surfaceNormalFixedValueFvPatchVectorField ) : fixedValueFvPatchVectorField(p, iF), - refValue_(ptf.refValue_, mapper) + refValue_(ptf.refValue_, mapper, 0.0) { - // Note: calculate product only on ptf to avoid multiplication on - // unset values in reconstructPar. - fvPatchVectorField::operator= - ( - vectorField - ( - ptf.refValue_*ptf.patch().nf(), - mapper - ) - ); + // Note: refValue_ will have default value 0.0 for unmapped faces. This + // can temporarily happen during e.g. redistributePar. We should not + // access ptf.patch() instead since redistributePar has destroyed this + // at the time of mapping. + fvPatchVectorField::operator=(refValue_*patch().nf()); } diff --git a/src/parallel/reconstruct/reconstruct/processorMeshes.C b/src/parallel/reconstruct/reconstruct/processorMeshes.C index 47bd1166d0..ef9c6dde32 100644 --- a/src/parallel/reconstruct/reconstruct/processorMeshes.C +++ b/src/parallel/reconstruct/reconstruct/processorMeshes.C @@ -35,11 +35,11 @@ void Foam::processorMeshes::read() // and fields forAll(databases_, proci) { - meshes_.set(proci, nullptr); - pointProcAddressing_.set(proci, nullptr); - faceProcAddressing_.set(proci, nullptr); - cellProcAddressing_.set(proci, nullptr); boundaryProcAddressing_.set(proci, nullptr); + cellProcAddressing_.set(proci, nullptr); + faceProcAddressing_.set(proci, nullptr); + pointProcAddressing_.set(proci, nullptr); + meshes_.set(proci, nullptr); } forAll(databases_, proci)