Go to the documentation of this file.
127 template<
class Type2>
135 template<
class Type2>
144 template<
class Type2>
152 template<
class Type2>
174 const bool couples =
true
181 template<
template<
class>
class ListType>
185 const ListType<Type>&
values
206 solver_(std::move(sol))
280 return internalCoeffs_;
287 return internalCoeffs_;
294 return boundaryCoeffs_;
301 return boundaryCoeffs_;
311 return faceFluxCorrectionPtr_;
317 return bool(faceFluxCorrectionPtr_);
352 const bool forceReference =
false
360 const bool forceReference =
false
368 const bool forceReference =
false
446 friend Ostream& operator<< <Type>
459 const faMatrix<Type>&,
460 const faMatrix<Type>&,
467 const faMatrix<Type>&,
468 const GeometricField<Type, faPatchField, areaMesh>&,
475 const faMatrix<Type>&,
476 const dimensioned<Type>&,
484 SolverPerformance<Type>
solve(faMatrix<Type>&, Istream&);
491 SolverPerformance<Type>
solve(
const tmp<faMatrix<Type>>&, Istream&);
497 SolverPerformance<Type>
solve(faMatrix<Type>&);
504 SolverPerformance<Type>
solve(
const tmp<faMatrix<Type>>&);
510 tmp<faMatrix<Type>>
operator-
512 const faMatrix<Type>&
516 tmp<faMatrix<Type>>
operator-
518 const tmp<faMatrix<Type>>&
522 tmp<faMatrix<Type>>
operator+
524 const faMatrix<Type>&,
525 const faMatrix<Type>&
529 tmp<faMatrix<Type>>
operator+
531 const tmp<faMatrix<Type>>&,
532 const faMatrix<Type>&
536 tmp<faMatrix<Type>>
operator+
538 const faMatrix<Type>&,
539 const tmp<faMatrix<Type>>&
543 tmp<faMatrix<Type>>
operator+
545 const tmp<faMatrix<Type>>&,
546 const tmp<faMatrix<Type>>&
550 tmp<faMatrix<Type>>
operator-
552 const faMatrix<Type>&,
553 const faMatrix<Type>&
557 tmp<faMatrix<Type>>
operator-
559 const tmp<faMatrix<Type>>&,
560 const faMatrix<Type>&
564 tmp<faMatrix<Type>>
operator-
566 const faMatrix<Type>&,
567 const tmp<faMatrix<Type>>&
571 tmp<faMatrix<Type>>
operator-
573 const tmp<faMatrix<Type>>&,
574 const tmp<faMatrix<Type>>&
578 tmp<faMatrix<Type>>
operator==
580 const faMatrix<Type>&,
581 const faMatrix<Type>&
585 tmp<faMatrix<Type>>
operator==
587 const tmp<faMatrix<Type>>&,
588 const faMatrix<Type>&
592 tmp<faMatrix<Type>>
operator==
594 const faMatrix<Type>&,
595 const tmp<faMatrix<Type>>&
599 tmp<faMatrix<Type>>
operator==
601 const tmp<faMatrix<Type>>&,
602 const tmp<faMatrix<Type>>&
606 tmp<faMatrix<Type>>
operator+
608 const faMatrix<Type>&,
609 const GeometricField<Type, faPatchField, areaMesh>&
613 tmp<faMatrix<Type>>
operator+
615 const tmp<faMatrix<Type>>&,
616 const GeometricField<Type, faPatchField, areaMesh>&
620 tmp<faMatrix<Type>>
operator+
622 const faMatrix<Type>&,
623 const tmp<GeometricField<Type, faPatchField, areaMesh>>&
627 tmp<faMatrix<Type>>
operator+
629 const tmp<faMatrix<Type>>&,
630 const tmp<GeometricField<Type, faPatchField, areaMesh>>&
634 tmp<faMatrix<Type>>
operator+
636 const GeometricField<Type, faPatchField, areaMesh>&,
637 const faMatrix<Type>&
641 tmp<faMatrix<Type>>
operator+
643 const GeometricField<Type, faPatchField, areaMesh>&,
644 const tmp<faMatrix<Type>>&
648 tmp<faMatrix<Type>>
operator+
650 const tmp<GeometricField<Type, faPatchField, areaMesh>>&,
651 const faMatrix<Type>&
655 tmp<faMatrix<Type>>
operator+
657 const tmp<GeometricField<Type, faPatchField, areaMesh>>&,
658 const tmp<faMatrix<Type>>&
662 tmp<faMatrix<Type>>
operator-
664 const faMatrix<Type>&,
665 const GeometricField<Type, faPatchField, areaMesh>&
669 tmp<faMatrix<Type>>
operator-
671 const tmp<faMatrix<Type>>&,
672 const GeometricField<Type, faPatchField, areaMesh>&
676 tmp<faMatrix<Type>>
operator-
678 const faMatrix<Type>&,
679 const tmp<GeometricField<Type, faPatchField, areaMesh>>&
683 tmp<faMatrix<Type>>
operator-
685 const tmp<faMatrix<Type>>&,
686 const tmp<GeometricField<Type, faPatchField, areaMesh>>&
690 tmp<faMatrix<Type>>
operator-
692 const GeometricField<Type, faPatchField, areaMesh>&,
693 const faMatrix<Type>&
697 tmp<faMatrix<Type>>
operator-
699 const GeometricField<Type, faPatchField, areaMesh>&,
700 const tmp<faMatrix<Type>>&
704 tmp<faMatrix<Type>>
operator-
706 const tmp<GeometricField<Type, faPatchField, areaMesh>>&,
707 const faMatrix<Type>&
711 tmp<faMatrix<Type>>
operator-
713 const tmp<GeometricField<Type, faPatchField, areaMesh>>&,
714 const tmp<faMatrix<Type>>&
718 tmp<faMatrix<Type>>
operator+
720 const faMatrix<Type>&,
721 const dimensioned<Type>&
725 tmp<faMatrix<Type>>
operator+
727 const tmp<faMatrix<Type>>&,
728 const dimensioned<Type>&
732 tmp<faMatrix<Type>>
operator+
734 const dimensioned<Type>&,
735 const faMatrix<Type>&
739 tmp<faMatrix<Type>>
operator+
741 const dimensioned<Type>&,
742 const tmp<faMatrix<Type>>&
746 tmp<faMatrix<Type>>
operator-
748 const faMatrix<Type>&,
749 const dimensioned<Type>&
753 tmp<faMatrix<Type>>
operator-
755 const tmp<faMatrix<Type>>&,
756 const dimensioned<Type>&
760 tmp<faMatrix<Type>>
operator-
762 const dimensioned<Type>&,
763 const faMatrix<Type>&
767 tmp<faMatrix<Type>>
operator-
769 const dimensioned<Type>&,
770 const tmp<faMatrix<Type>>&
774 tmp<faMatrix<Type>>
operator==
776 const faMatrix<Type>&,
777 const GeometricField<Type, faPatchField, areaMesh>&
781 tmp<faMatrix<Type>>
operator==
783 const tmp<faMatrix<Type>>&,
784 const GeometricField<Type, faPatchField, areaMesh>&
788 tmp<faMatrix<Type>>
operator==
790 const faMatrix<Type>&,
791 const tmp<GeometricField<Type, faPatchField, areaMesh>>&
795 tmp<faMatrix<Type>>
operator==
797 const tmp<faMatrix<Type>>&,
798 const tmp<GeometricField<Type, faPatchField, areaMesh>>&
802 tmp<faMatrix<Type>>
operator==
804 const faMatrix<Type>&,
805 const dimensioned<Type>&
809 tmp<faMatrix<Type>>
operator==
811 const tmp<faMatrix<Type>>&,
812 const dimensioned<Type>&
817 tmp<faMatrix<Type>>
operator*
820 const faMatrix<Type>&
824 tmp<faMatrix<Type>>
operator*
827 const tmp<faMatrix<Type>>&
831 tmp<faMatrix<Type>>
operator*
833 const tmp<areaScalarField>&,
834 const faMatrix<Type>&
838 tmp<faMatrix<Type>>
operator*
840 const tmp<areaScalarField>&,
841 const tmp<faMatrix<Type>>&
845 tmp<faMatrix<Type>>
operator*
847 const dimensioned<scalar>&,
848 const faMatrix<Type>&
852 tmp<faMatrix<Type>>
operator*
854 const dimensioned<scalar>&,
855 const tmp<faMatrix<Type>>&
void checkMethod(const faMatrix< Type > &, const faMatrix< Type > &, const char *)
void operator+=(const faMatrix< Type > &)
void addToInternalField(const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const
Add patch contribution to internal field.
const dimensionSet & dimensions() const
A special matrix type and solver, designed for finite area solutions of scalar equations....
A field of fields is a PtrList of fields with reference counting.
GeometricField< Type, faPatchField, areaMesh > psiFieldType
Field type for psi.
void setValues(const labelUList &faceLabels, const Type &value)
A class for managing temporary objects.
void operator-=(const faMatrix< Type > &)
Reference counter for various OpenFOAM components.
List< T > values(const HashTable< T, Key, Hash > &tbl, const bool doSort=false)
List of values from HashTable, optionally sorted.
void diag(pointPatchField< vector > &, const pointPatchField< tensor > &)
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
FieldField< Field, Type > & boundaryCoeffs()
lduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
faceFluxFieldPtrType & faceFluxCorrectionPtr()
Return pointer to face-flux non-orthogonal correction field.
tmp< GeometricField< Type, faePatchField, edgeMesh > > flux() const
Return the face-flux field from the matrix.
const Field< Type > & source() const
void setComponentReference(const label patchi, const label facei, const direction cmpt, const scalar value)
faMatrix(const GeometricField< Type, faPatchField, areaMesh > &psi, const dimensionSet &ds)
Construct given a field to solve for.
Dimension set for the base types, which can be used to implement rigorous dimension checking for alge...
void subtractFromInternalField(const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const
Subtract patch contribution from internal field.
GeometricField< Type, faePatchField, edgeMesh > * faceFluxFieldPtrType
Declare return type of the faceFluxCorrectionPtr() function.
void setReferences(const labelUList &faceLabels, const Type &value, const bool forceReference=false)
Set reference level for solution.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
void addBoundaryDiag(scalarField &diag, const direction cmpt) const
void operator=(const faMatrix< Type > &)
Generic templated field type.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
Macro definitions for declaring ClassName(), NamespaceName(), etc.
void setValuesFromList(const labelUList &faceLabels, const ListType< Type > &values)
Set solution in given faces to the specified values.
SolverPerformance< Type > solve()
Solve returning the solution statistics.
SolverPerformance< Type > solve(faMatrix< Type > &, Istream &)
Solve returning the solution statistics given convergence tolerance.
void addBoundarySource(Field< Type > &source, const bool couples=true) const
void relax()
Relax matrix (for steady-state solution).
FieldField< Field, Type > & internalCoeffs()
bool hasFaceFluxCorrection() const noexcept
True if face-flux non-orthogonal correction field exists.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
tmp< GeometricField< Type, faPatchField, areaMesh > > H() const
Return the H operation source.
Generic dimensioned Type class.
GeometricField< scalar, faPatchField, areaMesh > areaScalarField
void setReference(const label facei, const Type &value, const bool forceReference=false)
Set reference level for solution.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
GeometricField< Type, faePatchField, edgeMesh > faceFluxFieldType
Field type for face flux (for non-orthogonal correction)
const GeometricField< Type, faPatchField, areaMesh > & psi() const
faSolver(faMatrix< Type > &faMat, autoPtr< lduMatrix::solver > &&sol)
const FieldField< Field, Type > & boundaryCoeffs() const
const FieldField< Field, Type > & internalCoeffs() const
void addCmptAvBoundaryDiag(scalarField &diag) const
void operator*=(const areaScalarField &)
virtual ~faMatrix()
Destructor.
A List with indirect addressing.
tmp< scalarField > D() const
Return the matrix diagonal.
tmp< areaScalarField > A() const
Return the central coefficient.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
tmp< Field< Type > > residual() const
Return the matrix residual.
SolverPerformance< Type > solve()
Solve returning the solution statistics.
tmp< faMatrix< Type > > clone() const
Clone.
Generic GeometricField class.