Go to the documentation of this file.
66 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
68 const fvMatrix<Type>&,
69 const DimensionedField<Type, volMesh>&
73 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
75 const fvMatrix<Type>&,
76 const tmp<DimensionedField<Type, volMesh>>&
80 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
82 const fvMatrix<Type>&,
83 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
87 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
89 const tmp<fvMatrix<Type>>&,
90 const DimensionedField<Type, volMesh>&
94 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
96 const tmp<fvMatrix<Type>>&,
97 const tmp<DimensionedField<Type, volMesh>>&
101 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
103 const tmp<fvMatrix<Type>>&,
104 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
108 Ostream&
operator<<(Ostream&,
const fvMatrix<Type>&);
146 *faceFluxCorrectionPtr_;
157 template<
class Type2>
165 template<
class Type2>
174 template<
class Type2>
182 template<
class Type2>
204 const bool couples=
true
210 template<
template<
class>
class ListType>
214 const ListType<Type>&
values
237 solver_(std::move(sol))
310 return internalCoeffs_;
317 return internalCoeffs_;
324 return boundaryCoeffs_;
331 return boundaryCoeffs_;
342 return faceFluxCorrectionPtr_;
369 const bool forceReference =
false
377 const bool forceReference =
false
385 const bool forceReference =
false
555 friend Ostream& operator<< <Type>
568 const fvMatrix<Type>&,
569 const fvMatrix<Type>&,
576 const fvMatrix<Type>&,
577 const DimensionedField<Type, volMesh>&,
584 const fvMatrix<Type>&,
585 const dimensioned<Type>&,
593 SolverPerformance<Type>
solve(fvMatrix<Type>&,
const dictionary&);
600 SolverPerformance<Type>
solve
602 const tmp<fvMatrix<Type>>&,
610 SolverPerformance<Type>
solve(fvMatrix<Type>&);
617 SolverPerformance<Type>
solve(
const tmp<fvMatrix<Type>>&);
623 tmp<fvMatrix<Type>>
correction(
const fvMatrix<Type>&);
629 tmp<fvMatrix<Type>>
correction(
const tmp<fvMatrix<Type>>&);
635 tmp<fvMatrix<Type>>
operator==
637 const fvMatrix<Type>&,
638 const fvMatrix<Type>&
642 tmp<fvMatrix<Type>>
operator==
644 const tmp<fvMatrix<Type>>&,
645 const fvMatrix<Type>&
649 tmp<fvMatrix<Type>>
operator==
651 const fvMatrix<Type>&,
652 const tmp<fvMatrix<Type>>&
656 tmp<fvMatrix<Type>>
operator==
658 const tmp<fvMatrix<Type>>&,
659 const tmp<fvMatrix<Type>>&
664 tmp<fvMatrix<Type>>
operator==
666 const fvMatrix<Type>&,
667 const DimensionedField<Type, volMesh>&
671 tmp<fvMatrix<Type>>
operator==
673 const fvMatrix<Type>&,
674 const tmp<DimensionedField<Type, volMesh>>&
678 tmp<fvMatrix<Type>>
operator==
680 const fvMatrix<Type>&,
681 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
685 tmp<fvMatrix<Type>>
operator==
687 const tmp<fvMatrix<Type>>&,
688 const DimensionedField<Type, volMesh>&
692 tmp<fvMatrix<Type>>
operator==
694 const tmp<fvMatrix<Type>>&,
695 const tmp<DimensionedField<Type, volMesh>>&
699 tmp<fvMatrix<Type>>
operator==
701 const tmp<fvMatrix<Type>>&,
702 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
706 tmp<fvMatrix<Type>>
operator==
708 const fvMatrix<Type>&,
709 const dimensioned<Type>&
713 tmp<fvMatrix<Type>>
operator==
715 const tmp<fvMatrix<Type>>&,
716 const dimensioned<Type>&
721 tmp<fvMatrix<Type>>
operator==
723 const fvMatrix<Type>&,
728 tmp<fvMatrix<Type>>
operator==
730 const tmp<fvMatrix<Type>>&,
736 tmp<fvMatrix<Type>>
operator-
738 const fvMatrix<Type>&
742 tmp<fvMatrix<Type>>
operator-
744 const tmp<fvMatrix<Type>>&
749 tmp<fvMatrix<Type>>
operator+
751 const fvMatrix<Type>&,
752 const fvMatrix<Type>&
756 tmp<fvMatrix<Type>>
operator+
758 const tmp<fvMatrix<Type>>&,
759 const fvMatrix<Type>&
763 tmp<fvMatrix<Type>>
operator+
765 const fvMatrix<Type>&,
766 const tmp<fvMatrix<Type>>&
770 tmp<fvMatrix<Type>>
operator+
772 const tmp<fvMatrix<Type>>&,
773 const tmp<fvMatrix<Type>>&
778 tmp<fvMatrix<Type>>
operator+
780 const fvMatrix<Type>&,
781 const DimensionedField<Type, volMesh>&
785 tmp<fvMatrix<Type>>
operator+
787 const fvMatrix<Type>&,
788 const tmp<DimensionedField<Type, volMesh>>&
792 tmp<fvMatrix<Type>>
operator+
794 const fvMatrix<Type>&,
795 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
799 tmp<fvMatrix<Type>>
operator+
801 const tmp<fvMatrix<Type>>&,
802 const DimensionedField<Type, volMesh>&
806 tmp<fvMatrix<Type>>
operator+
808 const tmp<fvMatrix<Type>>&,
809 const tmp<DimensionedField<Type, volMesh>>&
813 tmp<fvMatrix<Type>>
operator+
815 const tmp<fvMatrix<Type>>&,
816 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
820 tmp<fvMatrix<Type>>
operator+
822 const DimensionedField<Type, volMesh>&,
823 const fvMatrix<Type>&
827 tmp<fvMatrix<Type>>
operator+
829 const tmp<DimensionedField<Type, volMesh>>&,
830 const fvMatrix<Type>&
834 tmp<fvMatrix<Type>>
operator+
836 const tmp<GeometricField<Type, fvPatchField, volMesh>>&,
837 const fvMatrix<Type>&
841 tmp<fvMatrix<Type>>
operator+
843 const DimensionedField<Type, volMesh>&,
844 const tmp<fvMatrix<Type>>&
848 tmp<fvMatrix<Type>>
operator+
850 const tmp<DimensionedField<Type, volMesh>>&,
851 const tmp<fvMatrix<Type>>&
855 tmp<fvMatrix<Type>>
operator+
857 const tmp<GeometricField<Type, fvPatchField, volMesh>>&,
858 const tmp<fvMatrix<Type>>&
863 tmp<fvMatrix<Type>>
operator+
865 const fvMatrix<Type>&,
866 const dimensioned<Type>&
870 tmp<fvMatrix<Type>>
operator+
872 const tmp<fvMatrix<Type>>&,
873 const dimensioned<Type>&
877 tmp<fvMatrix<Type>>
operator+
879 const dimensioned<Type>&,
880 const fvMatrix<Type>&
884 tmp<fvMatrix<Type>>
operator+
886 const dimensioned<Type>&,
887 const tmp<fvMatrix<Type>>&
892 tmp<fvMatrix<Type>>
operator-
894 const fvMatrix<Type>&,
895 const fvMatrix<Type>&
899 tmp<fvMatrix<Type>>
operator-
901 const tmp<fvMatrix<Type>>&,
902 const fvMatrix<Type>&
906 tmp<fvMatrix<Type>>
operator-
908 const fvMatrix<Type>&,
909 const tmp<fvMatrix<Type>>&
913 tmp<fvMatrix<Type>>
operator-
915 const tmp<fvMatrix<Type>>&,
916 const tmp<fvMatrix<Type>>&
921 tmp<fvMatrix<Type>>
operator-
923 const fvMatrix<Type>&,
924 const DimensionedField<Type, volMesh>&
928 tmp<fvMatrix<Type>>
operator-
930 const fvMatrix<Type>&,
931 const tmp<DimensionedField<Type, volMesh>>&
935 tmp<fvMatrix<Type>>
operator-
937 const fvMatrix<Type>&,
938 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
942 tmp<fvMatrix<Type>>
operator-
944 const tmp<fvMatrix<Type>>&,
945 const DimensionedField<Type, volMesh>&
949 tmp<fvMatrix<Type>>
operator-
951 const tmp<fvMatrix<Type>>&,
952 const tmp<DimensionedField<Type, volMesh>>&
956 tmp<fvMatrix<Type>>
operator-
958 const tmp<fvMatrix<Type>>&,
959 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
963 tmp<fvMatrix<Type>>
operator-
965 const DimensionedField<Type, volMesh>&,
966 const fvMatrix<Type>&
970 tmp<fvMatrix<Type>>
operator-
972 const tmp<DimensionedField<Type, volMesh>>&,
973 const fvMatrix<Type>&
977 tmp<fvMatrix<Type>>
operator-
979 const tmp<GeometricField<Type, fvPatchField, volMesh>>&,
980 const fvMatrix<Type>&
984 tmp<fvMatrix<Type>>
operator-
986 const DimensionedField<Type, volMesh>&,
987 const tmp<fvMatrix<Type>>&
991 tmp<fvMatrix<Type>>
operator-
993 const tmp<DimensionedField<Type, volMesh>>&,
994 const tmp<fvMatrix<Type>>&
998 tmp<fvMatrix<Type>>
operator-
1000 const tmp<GeometricField<Type, fvPatchField, volMesh>>&,
1001 const tmp<fvMatrix<Type>>&
1005 template<
class Type>
1006 tmp<fvMatrix<Type>>
operator-
1008 const fvMatrix<Type>&,
1009 const dimensioned<Type>&
1012 template<
class Type>
1013 tmp<fvMatrix<Type>>
operator-
1015 const tmp<fvMatrix<Type>>&,
1016 const dimensioned<Type>&
1019 template<
class Type>
1020 tmp<fvMatrix<Type>>
operator-
1022 const dimensioned<Type>&,
1023 const fvMatrix<Type>&
1026 template<
class Type>
1027 tmp<fvMatrix<Type>>
operator-
1029 const dimensioned<Type>&,
1030 const tmp<fvMatrix<Type>>&
1034 template<
class Type>
1035 tmp<fvMatrix<Type>>
operator*
1038 const fvMatrix<Type>&
1041 template<
class Type>
1042 tmp<fvMatrix<Type>>
operator*
1044 const tmp<volScalarField::Internal>&,
1045 const fvMatrix<Type>&
1048 template<
class Type>
1049 tmp<fvMatrix<Type>>
operator*
1051 const tmp<volScalarField>&,
1052 const fvMatrix<Type>&
1055 template<
class Type>
1056 tmp<fvMatrix<Type>>
operator*
1059 const tmp<fvMatrix<Type>>&
1062 template<
class Type>
1063 tmp<fvMatrix<Type>>
operator*
1065 const tmp<volScalarField::Internal>&,
1066 const tmp<fvMatrix<Type>>&
1069 template<
class Type>
1070 tmp<fvMatrix<Type>>
operator*
1072 const tmp<volScalarField>&,
1073 const tmp<fvMatrix<Type>>&
1077 template<
class Type>
1078 tmp<fvMatrix<Type>>
operator*
1080 const dimensioned<scalar>&,
1081 const fvMatrix<Type>&
1084 template<
class Type>
1085 tmp<fvMatrix<Type>>
operator*
1087 const dimensioned<scalar>&,
1088 const tmp<fvMatrix<Type>>&
void checkMethod(const faMatrix< Type > &, const faMatrix< Type > &, const char *)
tmp< Field< Type > > residual() const
Return the matrix residual.
SolverPerformance< Type > solve()
Solve returning the solution statistics.
tmp< GeometricField< Type, fvPatchField, volMesh > > H() const
Return the H operation source.
void addBoundarySource(Field< Type > &source, const bool couples=true) const
void boundaryManipulate(typename GeometricField< Type, fvPatchField, volMesh >::Boundary &values)
Manipulate based on a boundary field.
void addCmptAvBoundaryDiag(scalarField &diag) const
A field of fields is a PtrList of fields with reference counting.
A class for managing temporary objects.
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 > &)
SolverPerformance< Type > solveSegregatedOrCoupled(const dictionary &)
Solve segregated or coupled returning the solution statistics.
tmp< scalarField > D() const
Return the matrix scalar diagonal.
void subtractFromInternalField(const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const
Subtract patch contribution from internal field.
const dimensionedScalar alpha
Fine-structure constant: default SI units: [].
void operator=(const fvMatrix< Type > &)
lduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
SolverPerformance< Type > solve()
Solve returning the solution statistics.
const dimensionSet & dimensions() const
void relax()
Relax matrix (for steady-state solution).
const FieldField< Field, Type > & boundaryCoeffs() const
fvBoundary scalar field containing pseudo-matrix coeffs
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix.
void addBoundaryDiag(scalarField &diag, const direction cmpt) const
fvSolver(fvMatrix< Type > &fvMat, autoPtr< lduMatrix::solver > &&sol)
void setReference(const label celli, const Type &value, const bool forceReference=false)
Set reference level for solution.
Dimension set for the base types.
void setReferences(const labelUList &cells, const Type &value, const bool forceReference=false)
Set references level for solution.
const GeometricField< Type, fvPatchField, volMesh > & psi() const
surfaceTypeFieldPtr & faceFluxCorrectionPtr()
Return pointer to face-flux non-orthogonal correction field.
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces)
void setValues(const labelUList &cells, const UList< Type > &values)
Set solution in given cells to the specified values.
SolverPerformance< Type > solveCoupled(const dictionary &)
Solve coupled returning the solution statistics.
void operator-=(const fvMatrix< Type > &)
Generic templated field type.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
void operator*=(const volScalarField::Internal &)
DimensionedField< scalar, volMesh > Internal
Type of the internal field from which this GeometricField is derived.
tmp< volScalarField > H1() const
Return H(1)
Macro definitions for declaring ClassName(), NamespaceName(), etc.
virtual ~fvMatrix()
Destructor.
SolverPerformance< Type > solve(faMatrix< Type > &, Istream &)
Solve returning the solution statistics given convergence tolerance.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A scalar instance of fvMatrix.
tmp< Field< Type > > DD() const
Return the matrix Type diagonal.
Generic dimensioned Type class.
tmp< volScalarField > A() const
Return the central coefficient.
GeometricField< Type, fvsPatchField, surfaceMesh > * surfaceTypeFieldPtr
Declare return type of the faceFluxCorrectionPtr() function.
autoPtr< fvSolver > solver()
Construct and return the solver.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
void setValuesFromList(const labelUList &cells, const ListType< Type > &values)
Set solution in given cells to the specified values.
const Field< Type > & source() const
void operator+=(const fvMatrix< Type > &)
const dictionary & solverDict() const
Return the solver dictionary taking into account finalIteration.
tmp< fvMatrix< Type > > clone() const
Clone.
A special matrix type and solver, designed for finite volume solutions of scalar equations....
Solver class returned by the solver function.
A List with indirect addressing.
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
SolverPerformance< Type > solveSegregated(const dictionary &)
Solve segregated returning the solution statistics.
const FieldField< Field, Type > & internalCoeffs() const
fvBoundary scalar field containing pseudo-matrix coeffs
void addToInternalField(const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const
Add patch contribution to internal field.
void setComponentReference(const label patchi, const label facei, const direction cmpt, const scalar value)
Set reference level for a component of the solution.
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > flux() const
Return the face-flux field from the matrix.
fvMatrix(const GeometricField< Type, fvPatchField, volMesh > &, const dimensionSet &)
Construct given a field to solve for.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
A class representing the concept of 0 (zero) that can be used to avoid manipulating objects known to ...