36 solveScalarField&
field,
37 solveScalarField& Acf,
39 const FieldField<Field, scalar>& interfaceLevelBouCoeffs,
40 const lduInterfaceFieldPtrsList& interfaceLevel,
41 const solveScalarField& source,
49 interfaceLevelBouCoeffs,
55 const label nCells =
field.size();
56 solveScalar* __restrict__ fieldPtr =
field.begin();
57 const solveScalar*
const __restrict__ sourcePtr = source.begin();
58 const solveScalar*
const __restrict__ AcfPtr = Acf.begin();
61 FixedList<solveScalar, 2> scalingFactor(
Zero);
63 for (label i=0; i<nCells; i++)
65 scalingFactor[0] += fieldPtr[i]*sourcePtr[i];
66 scalingFactor[1] += fieldPtr[i]*AcfPtr[i];
69 A.mesh().reduce(scalingFactor, sumOp<solveScalar>());
71 const solveScalar sf =
83 const scalar*
const __restrict__ DPtr =
D.begin();
85 for (label i=0; i<nCells; i++)
87 fieldPtr[i] = sf*fieldPtr[i] + (sourcePtr[i] - sf*AcfPtr[i])/DPtr[i];
static const Foam::dimensionedScalar A("", Foam::dimPressure, 611.21)
scalar scale
Overall scale factor.
static const Scalar vsmall
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
dimensionedScalar stabilise(const dimensionedScalar &x, const dimensionedScalar &y)
static constexpr const zero Zero
Global zero (0)
prefixOSstream Pout
OSstream wrapped stdout (std::cout) with parallel prefix.
const dimensionedScalar & D