63 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
65 const fvMatrix<Type>&,
66 const DimensionedField<Type, volMesh>&
70 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
72 const fvMatrix<Type>&,
73 const tmp<DimensionedField<Type, volMesh>>&
77 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
79 const fvMatrix<Type>&,
80 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
84 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
86 const tmp<fvMatrix<Type>>&,
87 const DimensionedField<Type, volMesh>&
91 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
93 const tmp<fvMatrix<Type>>&,
94 const tmp<DimensionedField<Type, volMesh>>&
98 tmp<GeometricField<Type, fvPatchField, volMesh>>
operator&
100 const tmp<fvMatrix<Type>>&,
101 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
105 Ostream& operator<<(Ostream&, const fvMatrix<Type>&);
143 *faceFluxCorrectionPtr_;
154 template<
class Type2>
162 template<
class Type2>
171 template<
class Type2>
179 template<
class Type2>
201 const bool couples=
true 207 template<
template<
class>
class ListType>
211 const ListType<Type>& values
223 fvMatrix<Type>& fvMat_;
272 tmp<fvMatrix<Type>>
clone()
const;
307 return internalCoeffs_;
314 return boundaryCoeffs_;
325 return faceFluxCorrectionPtr_;
352 const bool forceReference =
false 491 const fvMatrix<Type>&,
498 const fvMatrix<Type>&,
505 const tmp<fvMatrix<Type>>&,
512 const tmp<fvMatrix<Type>>&,
519 friend Ostream& operator<< <Type>
522 const fvMatrix<Type>&
532 const fvMatrix<Type>&,
533 const fvMatrix<Type>&,
540 const fvMatrix<Type>&,
548 const fvMatrix<Type>&,
565 const tmp<fvMatrix<Type>>&,
583 tmp<fvMatrix<Type>>
correction(
const fvMatrix<Type>&);
594 tmp<fvMatrix<Type>>
operator==
596 const fvMatrix<Type>&,
597 const fvMatrix<Type>&
601 tmp<fvMatrix<Type>>
operator==
603 const tmp<fvMatrix<Type>>&,
604 const fvMatrix<Type>&
608 tmp<fvMatrix<Type>>
operator==
610 const fvMatrix<Type>&,
611 const tmp<fvMatrix<Type>>&
615 tmp<fvMatrix<Type>>
operator==
617 const tmp<fvMatrix<Type>>&,
618 const tmp<fvMatrix<Type>>&
623 tmp<fvMatrix<Type>>
operator==
625 const fvMatrix<Type>&,
630 tmp<fvMatrix<Type>>
operator==
632 const fvMatrix<Type>&,
637 tmp<fvMatrix<Type>>
operator==
639 const fvMatrix<Type>&,
644 tmp<fvMatrix<Type>>
operator==
646 const tmp<fvMatrix<Type>>&,
651 tmp<fvMatrix<Type>>
operator==
653 const tmp<fvMatrix<Type>>&,
658 tmp<fvMatrix<Type>>
operator==
660 const tmp<fvMatrix<Type>>&,
665 tmp<fvMatrix<Type>>
operator==
667 const fvMatrix<Type>&,
672 tmp<fvMatrix<Type>>
operator==
674 const tmp<fvMatrix<Type>>&,
680 tmp<fvMatrix<Type>>
operator==
682 const fvMatrix<Type>&,
687 tmp<fvMatrix<Type>>
operator==
689 const tmp<fvMatrix<Type>>&,
695 tmp<fvMatrix<Type>>
operator-
697 const fvMatrix<Type>&
701 tmp<fvMatrix<Type>>
operator-
703 const tmp<fvMatrix<Type>>&
708 tmp<fvMatrix<Type>>
operator+
710 const fvMatrix<Type>&,
711 const fvMatrix<Type>&
715 tmp<fvMatrix<Type>>
operator+
717 const tmp<fvMatrix<Type>>&,
718 const fvMatrix<Type>&
722 tmp<fvMatrix<Type>>
operator+
724 const fvMatrix<Type>&,
725 const tmp<fvMatrix<Type>>&
729 tmp<fvMatrix<Type>>
operator+
731 const tmp<fvMatrix<Type>>&,
732 const tmp<fvMatrix<Type>>&
737 tmp<fvMatrix<Type>>
operator+
739 const fvMatrix<Type>&,
744 tmp<fvMatrix<Type>>
operator+
746 const fvMatrix<Type>&,
751 tmp<fvMatrix<Type>>
operator+
753 const fvMatrix<Type>&,
758 tmp<fvMatrix<Type>>
operator+
760 const tmp<fvMatrix<Type>>&,
765 tmp<fvMatrix<Type>>
operator+
767 const tmp<fvMatrix<Type>>&,
772 tmp<fvMatrix<Type>>
operator+
774 const tmp<fvMatrix<Type>>&,
779 tmp<fvMatrix<Type>>
operator+
782 const fvMatrix<Type>&
786 tmp<fvMatrix<Type>>
operator+
789 const fvMatrix<Type>&
793 tmp<fvMatrix<Type>>
operator+
796 const fvMatrix<Type>&
800 tmp<fvMatrix<Type>>
operator+
802 const DimensionedField<Type, volMesh>&,
803 const tmp<fvMatrix<Type>>&
807 tmp<fvMatrix<Type>>
operator+
809 const tmp<DimensionedField<Type, volMesh>>&,
810 const tmp<fvMatrix<Type>>&
814 tmp<fvMatrix<Type>>
operator+
816 const tmp<GeometricField<Type, fvPatchField, volMesh>>&,
817 const tmp<fvMatrix<Type>>&
822 tmp<fvMatrix<Type>>
operator+
824 const fvMatrix<Type>&,
829 tmp<fvMatrix<Type>>
operator+
831 const tmp<fvMatrix<Type>>&,
836 tmp<fvMatrix<Type>>
operator+
839 const fvMatrix<Type>&
843 tmp<fvMatrix<Type>>
operator+
845 const dimensioned<Type>&,
846 const tmp<fvMatrix<Type>>&
851 tmp<fvMatrix<Type>>
operator-
853 const fvMatrix<Type>&,
854 const fvMatrix<Type>&
858 tmp<fvMatrix<Type>>
operator-
860 const tmp<fvMatrix<Type>>&,
861 const fvMatrix<Type>&
865 tmp<fvMatrix<Type>>
operator-
867 const fvMatrix<Type>&,
868 const tmp<fvMatrix<Type>>&
872 tmp<fvMatrix<Type>>
operator-
874 const tmp<fvMatrix<Type>>&,
875 const tmp<fvMatrix<Type>>&
880 tmp<fvMatrix<Type>>
operator-
882 const fvMatrix<Type>&,
883 const DimensionedField<Type, volMesh>&
887 tmp<fvMatrix<Type>>
operator-
889 const fvMatrix<Type>&,
890 const tmp<DimensionedField<Type, volMesh>>&
894 tmp<fvMatrix<Type>>
operator-
896 const fvMatrix<Type>&,
897 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
901 tmp<fvMatrix<Type>>
operator-
903 const tmp<fvMatrix<Type>>&,
904 const DimensionedField<Type, volMesh>&
908 tmp<fvMatrix<Type>>
operator-
910 const tmp<fvMatrix<Type>>&,
911 const tmp<DimensionedField<Type, volMesh>>&
915 tmp<fvMatrix<Type>>
operator-
917 const tmp<fvMatrix<Type>>&,
918 const tmp<GeometricField<Type, fvPatchField, volMesh>>&
922 tmp<fvMatrix<Type>>
operator-
924 const DimensionedField<Type, volMesh>&,
925 const fvMatrix<Type>&
929 tmp<fvMatrix<Type>>
operator-
931 const tmp<DimensionedField<Type, volMesh>>&,
932 const fvMatrix<Type>&
936 tmp<fvMatrix<Type>>
operator-
938 const tmp<GeometricField<Type, fvPatchField, volMesh>>&,
939 const fvMatrix<Type>&
943 tmp<fvMatrix<Type>>
operator-
945 const DimensionedField<Type, volMesh>&,
946 const tmp<fvMatrix<Type>>&
950 tmp<fvMatrix<Type>>
operator-
952 const tmp<DimensionedField<Type, volMesh>>&,
953 const tmp<fvMatrix<Type>>&
957 tmp<fvMatrix<Type>>
operator-
959 const tmp<GeometricField<Type, fvPatchField, volMesh>>&,
960 const tmp<fvMatrix<Type>>&
965 tmp<fvMatrix<Type>>
operator-
967 const fvMatrix<Type>&,
968 const dimensioned<Type>&
972 tmp<fvMatrix<Type>>
operator-
974 const tmp<fvMatrix<Type>>&,
975 const dimensioned<Type>&
979 tmp<fvMatrix<Type>>
operator-
981 const dimensioned<Type>&,
982 const fvMatrix<Type>&
986 tmp<fvMatrix<Type>>
operator-
988 const dimensioned<Type>&,
989 const tmp<fvMatrix<Type>>&
994 tmp<fvMatrix<Type>>
operator*
997 const fvMatrix<Type>&
1000 template<
class Type>
1001 tmp<fvMatrix<Type>>
operator*
1004 const fvMatrix<Type>&
1007 template<
class Type>
1008 tmp<fvMatrix<Type>>
operator*
1011 const fvMatrix<Type>&
1014 template<
class Type>
1015 tmp<fvMatrix<Type>>
operator*
1017 const volScalarField::Internal&,
1018 const tmp<fvMatrix<Type>>&
1021 template<
class Type>
1022 tmp<fvMatrix<Type>>
operator*
1024 const tmp<volScalarField::Internal>&,
1025 const tmp<fvMatrix<Type>>&
1028 template<
class Type>
1029 tmp<fvMatrix<Type>>
operator*
1031 const tmp<volScalarField>&,
1032 const tmp<fvMatrix<Type>>&
1036 template<
class Type>
1037 tmp<fvMatrix<Type>>
operator*
1040 const fvMatrix<Type>&
1043 template<
class Type>
1044 tmp<fvMatrix<Type>>
operator*
1046 const dimensioned<scalar>&,
1047 const tmp<fvMatrix<Type>>&
void addToInternalField(const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const
Add patch contribution to internal field.
tmp< fvMatrix< Type > > correction(const fvMatrix< Type > &)
Return the correction form of the given matrix.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
void addBoundaryDiag(scalarField &diag, const direction cmpt) const
Reference counter for various OpenFOAM components.
void relax()
Relax matrix (for steady-state solution).
A list of keyword definitions, which are a keyword followed by any number of values (e...
FieldField< Field, Type > & internalCoeffs()
fvBoundary scalar field containing pseudo-matrix coeffs
const GeometricField< Type, fvPatchField, volMesh > & psi() const
void addCmptAvBoundaryDiag(scalarField &diag) const
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
void setReference(const label celli, const Type &value, const bool forceReference=false)
Set reference level for solution.
tmp< GeometricField< Type, fvPatchField, volMesh > > H() const
Return the H operation source.
void operator-=(const fvMatrix< Type > &)
Solver class returned by the solver function.
Generic GeometricField class.
Generic dimensioned Type class.
tmp< volScalarField > H1() const
Return H(1)
void subtractFromInternalField(const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const
Subtract patch contribution from internal field.
DimensionedField< scalar, volMesh > Internal
Type of the internal field from which this GeometricField is derived.
tmp< scalarField > D() const
Return the matrix scalar diagonal.
void operator=(const fvMatrix< Type > &)
SolverPerformance< Type > solveCoupled(const dictionary &)
Solve coupled returning the solution statistics.
surfaceTypeFieldPtr & faceFluxCorrectionPtr()
Return pointer to face-flux non-orthogonal correction field.
fvSolver(fvMatrix< Type > &fvMat, autoPtr< lduMatrix::solver > sol)
Dimension set for the base types.
SolverPerformance< Type > solve()
Solve returning the solution statistics.
Pre-declare SubField and related Field type.
A class for handling words, derived from string.
void setValues(const labelUList &cells, const UList< Type > &values)
Set solution in given cells to the specified values.
FieldField< Field, Type > & boundaryCoeffs()
fvBoundary scalar field containing pseudo-matrix coeffs
virtual ~fvMatrix()
Destructor.
A special matrix type and solver, designed for finite volume solutions of scalar equations. Face addressing is used to make all matrix assembly and solution loops vectorise.
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
tmp< fvMatrix< Type > > clone() const
Clone.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void operator*=(const volScalarField::Internal &)
word name(const complex &)
Return a string representation of a complex.
void operator+=(const fvMatrix< Type > &)
tmp< Field< Type > > DD() const
Return the matrix Type diagonal.
lduMatrix is a general matrix class in which the coefficients are stored as three arrays...
GeometricField< Type, fvsPatchField, surfaceMesh > * surfaceTypeFieldPtr
Declare return type of the faceFluxCorrectionPtr() function.
tmp< volScalarField > A() const
Return the central coefficient.
A scalar instance of fvMatrix.
Macro definitions for declaring ClassName(), NamespaceName(), etc.
A List with indirect addressing.
autoPtr< fvSolver > solver()
Construct and return the solver.
Field with dimensions and associated with geometry type GeoMesh which is used to size the field and a...
void setValuesFromList(const labelUList &cells, const ListType< Type > &values)
Set solution in given cells to the specified values.
void checkMethod(const fvMatrix< Type > &, const fvMatrix< Type > &, const char *)
A class representing the concept of 0 used to avoid unnecessary manipulations for objects that are kn...
void addBoundarySource(Field< Type > &source, const bool couples=true) const
An auto-pointer similar to the STL auto_ptr but with automatic casting to a reference to the type and...
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.
SolverPerformance< Type > solveSegregated(const dictionary &)
Solve segregated returning the solution statistics.
void boundaryManipulate(typename GeometricField< Type, fvPatchField, volMesh >::Boundary &values)
Manipulate based on a boundary field.
volScalarField alpha(IOobject("alpha", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE), lambda *max(Ua &U, zeroSensitivity))
A class for managing temporary objects.
tmp< Field< Type > > residual() const
Return the matrix residual.
fvMatrix(const GeometricField< Type, fvPatchField, volMesh > &, const dimensionSet &)
Construct given a field to solve for.
const dimensionSet & dimensions() const