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;
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(),
171 if (solverPerformance::debug)
180 psi.
mesh().setSolverPerformance(psi.
name(), solverPerf);
190 addBoundaryDiag(boundaryDiag, 0);
196 psi_.primitiveField(),
197 source_ - boundaryDiag*psi_.primitiveField(),
199 psi_.boundaryField().scalarInterfaces(),
204 addBoundarySource(tres.
ref());
219 "H("+psi_.name()+
')',
227 extrapolatedCalculatedFvPatchScalarField::typeName
258 dimensions_/(
dimVol*psi_.dimensions()),
259 extrapolatedCalculatedFvPatchScalarField::typeName
264 H1_.primitiveFieldRef() = lduMatrix::H1();
267 H1_.primitiveFieldRef() /= psi_.mesh().V();
268 H1_.correctBoundaryConditions();
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
const word & name() const
Return name.
A list of keyword definitions, which are a keyword followed by any number of values (e...
T & ref() const
Return non-const reference or generate a fatal error.
Ostream & endl(Ostream &os)
Add newline and flush stream.
tmp< GeometricField< Type, fvPatchField, volMesh > > H() const
Return the H operation source.
Solver class returned by the solver function.
const dimensionSet dimVol(dimVolume)
tmp< volScalarField > H1() const
Return H(1)
tmp< DimensionedField< TypeR, GeoMesh > > New(const tmp< DimensionedField< TypeR, GeoMesh >> &tdf1, const word &name, const dimensionSet &dimensions)
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
SolverPerformance< Type > solve()
Solve returning the solution statistics.
Internal::FieldType & primitiveFieldRef()
Return a reference to the internal field.
const Mesh & mesh() const
Return mesh.
Internal & ref()
Return a reference to the dimensioned internal field.
OSstream & masterStream(const label communicator)
Convert to OSstream.
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
void setComponentReference(const label patchi, const label facei, const direction cmpt, const scalar value)
Set reference level for a component of the solution.
SolverPerformance< Type > solveSegregated(const dictionary &)
Solve segregated returning the solution statistics.
A class for managing temporary objects.
IOobject defines the attributes of an object for which implicit objectRegistry management is supporte...
tmp< Field< Type > > residual() const
Return the matrix residual.