Go to the documentation of this file.
40 if (psi_.needReference())
42 if (Pstream::master())
44 internalCoeffs_[
patchi][facei] +=
45 diag()[psi_.mesh().boundary()[
patchi].faceCells()[facei]];
47 boundaryCoeffs_[
patchi][facei] +=
48 diag()[psi_.mesh().boundary()[
patchi].faceCells()[facei]]
65 <<
"fvMatrix<scalar>::solver(const dictionary& solverControls) : "
66 "solver for fvMatrix<scalar>"
71 addBoundaryDiag(
diag(), 0);
84 psi_.boundaryField().scalarInterfaces(),
107 fvMat_.addBoundaryDiag(fvMat_.diag(), 0);
110 fvMat_.addBoundarySource(totalSource,
false);
113 solver_->read(solverControls);
121 if (solverPerformance::debug)
126 fvMat_.diag() = saveDiag;
128 psi.correctBoundaryConditions();
130 psi.mesh().setSolverPerformance(
psi.name(), solverPerf);
145 <<
"fvMatrix<scalar>::solveSegregated"
146 "(const dictionary& solverControls) : "
147 "solving fvMatrix<scalar>"
155 addBoundaryDiag(
diag(), 0);
158 addBoundarySource(totalSource,
false);
167 psi.boundaryField().scalarInterfaces(),
169 )->solve(
psi.internalField(), totalSource);
171 if (solverPerformance::debug)
178 psi.correctBoundaryConditions();
180 psi.mesh().setSolverPerformance(
psi.name(), solverPerf);
190 addBoundaryDiag(boundaryDiag, 0);
196 psi_.internalField(),
197 source_ - boundaryDiag*psi_.internalField(),
199 psi_.boundaryField().scalarInterfaces(),
204 addBoundarySource(tres());
219 "H("+psi_.name()+
')',
227 zeroGradientFvPatchScalarField::typeName
232 Hphi.
internalField() = (lduMatrix::H(psi_.internalField()) + source_);
258 dimensions_/(
dimVol*psi_.dimensions()),
259 zeroGradientFvPatchScalarField::typeName
tmp< Field< Type > > residual() const
Return the matrix residual.
tmp< GeometricField< Type, fvPatchField, volMesh > > H() const
Return the H operation source.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
autoPtr< BasicCompressibleTurbulenceModel > New(const volScalarField &rho, const volVectorField &U, const surfaceScalarField &phi, const typename BasicCompressibleTurbulenceModel::transportModel &transport, const word &propertiesName)
A class for managing temporary objects.
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
OSstream & masterStream(const label communicator)
Convert to OSstream.
SolverPerformance< Type > solve()
Solve returning the solution statistics.
Ostream & endl(Ostream &os)
Add newline and flush stream.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
Pre-declare SubField and related Field type.
tmp< volScalarField > H1() const
Return H(1)
InternalField & internalField()
Return internal field.
A list of keyword definitions, which are a keyword followed by any number of values (e....
A scalar instance of fvMatrix.
autoPtr< fvSolver > solver()
Construct and return the solver.
void correctBoundaryConditions()
Correct boundary field.
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
const volScalarField & psi
Solver class returned by the solver function.
const dimensionSet dimVol(dimVolume)
SolverPerformance< Type > solveSegregated(const dictionary &)
Solve segregated returning the solution statistics.
void setComponentReference(const label patchi, const label facei, const direction cmpt, const scalar value)
Set reference level for a component of the solution.