39#ifndef Foam_lduInterfaceField_H
40#define Foam_lduInterfaceField_H
69 mutable bool updatedMatrix_;
119 virtual bool ready()
const
127 return updatedMatrix_;
133 bool old(updatedMatrix_);
134 updatedMatrix_ = flag;
148 const label interfacei,
163 const label interfacei,
188 return updatedMatrix_;
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
commsTypes
Communications types.
Smooth ATC in cells next to a set of patches supplied by type.
The class contains the addressing required by the lduMatrix: upper, lower and losort.
An abstract base class for implicitly-coupled interface fields e.g. processor and cyclic patch fields...
virtual const word & interfaceFieldType() const
Return the interface type.
virtual ~lduInterfaceField()=default
Destructor.
bool updatedMatrix(bool flag) const noexcept
Set matrix as update-to-date, return the previous value.
TypeName("lduInterfaceField")
Runtime type information.
virtual void updateInterfaceMatrix(solveScalarField &result, const bool add, const lduAddressing &, const label interfacei, const solveScalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const =0
Update result field based on interface functionality. Add/subtract coupled contributions to matrix.
virtual bool ready() const
Are all (receive) data available?
lduInterfaceField(const lduInterfaceField &)=delete
No copy construct.
lduInterfaceField(const lduInterface &patch)
Construct given coupled patch.
bool updatedMatrix() const noexcept
Whether matrix has been updated.
virtual void initInterfaceMatrixUpdate(solveScalarField &result, const bool add, const lduAddressing &, const label interfacei, const solveScalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const
Initialise neighbour matrix update. Add/subtract coupled contributions to matrix.
void addToInternalField(Field< Type > &result, const bool add, const labelUList &faceCells, const scalarField &coeffs, const Field< Type > &vals) const
Add/subtract weighted contributions to internal field.
void operator=(const lduInterfaceField &)=delete
No copy assignment.
const lduInterface & interface() const noexcept
Return the interface.
bool & updatedMatrix() noexcept
Adjust whether matrix has been updated.
An abstract base class for implicitly-coupled interfaces e.g. processor and cyclic patches.
lduMatrix is a general matrix class in which the coefficients are stored as three arrays,...
A class for handling words, derived from Foam::string.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
void add(DimensionedField< scalar, GeoMesh > &result, const dimensioned< scalar > &dt1, const DimensionedField< scalar, GeoMesh > &f2)
Field< solveScalar > solveScalarField
UList< label > labelUList
A UList of labels.
Forward declarations of the specialisations of Field<T> for scalar, vector and tensor.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.