47 const labelUList& faceLabels = psi_.mesh().boundary()[patchI].edgeFaces();
49 internalCoeffs_[patchI][edgeI] +=
diag()[faceLabels[edgeI]];
51 boundaryCoeffs_[patchI][edgeI] = value;
62 <<
"solving faMatrix<scalar>"
69 solverPerformance::debug
76 addBoundaryDiag(
diag(), 0);
79 addBoundarySource(totalSource, 0);
88 psi_.boundaryField().scalarInterfaces(),
90 )->solve(
psi.ref(), totalSource);
99 psi.correctBoundaryConditions();
101 psi.mesh().setSolverPerformance(
psi.name(), solverPerf);
111 addBoundaryDiag(boundaryDiag, 0);
122 source_ - boundaryDiag*psif,
124 psi_.boundaryField().scalarInterfaces(),
130 addBoundarySource(tres_s.
ref());
145 "H("+psi_.name()+
')',
153 zeroGradientFaPatchScalarField::typeName
A const Field/List wrapper with possible data conversion.
const Mesh & mesh() const
Return mesh.
Generic GeometricField class.
Internal::FieldType & primitiveFieldRef(const bool updateAccessTime=true)
Return a reference to the internal field.
Internal & ref(const bool updateAccessTime=true)
Return a reference to the dimensioned internal field.
void correctBoundaryConditions()
Correct boundary field.
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
T getOrDefault(const word &keyword, const T &deflt, enum keyType::option matchOpt=keyType::REGEX) const
SolverPerformance< Type > solve()
Solve returning the solution statistics.
tmp< GeometricField< Type, faPatchField, areaMesh > > H() const
Return the H operation source.
void setComponentReference(const label patchi, const label facei, const direction cmpt, const scalar value)
tmp< Field< Type > > residual() const
Return the matrix residual.
A class for managing temporary objects.
const volScalarField & psi
#define DebugInFunction
Report an information message using Foam::Info.
const dimensionSet dimArea(sqr(dimLength))
messageStream Info
Information stream (stdout output on master, null elsewhere)
Ostream & endl(Ostream &os)
Add newline and flush stream.
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)