Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <finiteVolume/processorFvPatchScalarField.H>
00027
00028
00029
00030 namespace Foam
00031 {
00032
00033
00034
00035 template<>
00036 void processorFvPatchField<scalar>::initInterfaceMatrixUpdate
00037 (
00038 const scalarField& psiInternal,
00039 scalarField&,
00040 const lduMatrix&,
00041 const scalarField&,
00042 const direction,
00043 const Pstream::commsTypes commsType
00044 ) const
00045 {
00046 procPatch_.compressedSend
00047 (
00048 commsType,
00049 patch().patchInternalField(psiInternal)()
00050 );
00051 }
00052
00053
00054 template<>
00055 void processorFvPatchField<scalar>::updateInterfaceMatrix
00056 (
00057 const scalarField&,
00058 scalarField& result,
00059 const lduMatrix&,
00060 const scalarField& coeffs,
00061 const direction,
00062 const Pstream::commsTypes commsType
00063 ) const
00064 {
00065 scalarField pnf
00066 (
00067 procPatch_.compressedReceive<scalar>(commsType, this->size())()
00068 );
00069
00070 const unallocLabelList& faceCells = patch().faceCells();
00071
00072 forAll(faceCells, facei)
00073 {
00074 result[faceCells[facei]] -= coeffs[facei]*pnf[facei];
00075 }
00076 }
00077
00078
00079
00080
00081 }
00082
00083