38#ifndef Foam_processorGAMGInterfaceField_H
39#define Foam_processorGAMGInterfaceField_H
54class processorGAMGInterfaceField
56 public GAMGInterfaceField,
74 mutable label sendRequest_;
77 mutable label recvRequest_;
90 processorGAMGInterfaceField
92 const processorGAMGInterfaceField&
96 void operator=(
const processorGAMGInterfaceField&) =
delete;
108 processorGAMGInterfaceField
115 processorGAMGInterfaceField
123 processorGAMGInterfaceField
138 new processorGAMGInterfaceField
159 return procInterface_.size();
166 virtual bool ready()
const;
198 virtual label
comm()
const
200 return procInterface_.comm();
224 return procInterface_.forwardT();
228 virtual int rank()
const
Abstract base class for GAMG agglomerated interfaces.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
commsTypes
Communications types.
A list of pointers to objects of type <T>, without allocation/deallocation management of the pointers...
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
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 bool doTransform() const
Does the interface field perform the transformation.
virtual autoPtr< GAMGInterfaceField > clone(const GAMGInterface &patch, const UPtrList< lduInterfaceField > &other) const
Construct by assembling and return a clone.
virtual void initInterfaceMatrixUpdate(solveScalarField &result, const bool add, const lduAddressing &lduAddr, const label patchId, const solveScalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const
Initialise neighbour matrix update.
virtual ~processorGAMGInterfaceField()=default
Destructor.
virtual int rank() const
Return rank of component for transform.
virtual void updateInterfaceMatrix(solveScalarField &result, const bool add, const lduAddressing &lduAddr, const label patchId, const solveScalarField &psiInternal, const scalarField &coeffs, const direction cmpt, const Pstream::commsTypes commsType) const
Update result field based on interface functionality.
virtual int myProcNo() const
Return processor number.
virtual label comm() const
Processor interface functions.
label size() const
Return size.
TypeName("processor")
Runtime type information.
virtual bool ready() const
Are all (receive) data available?
virtual int neighbProcNo() const
Return neighbour processor number.
virtual const tensorField & forwardT() const
Return face transformation tensor.
GAMG agglomerated processor interface.
virtual int myProcNo() const
Return processor number (rank in communicator).
virtual int neighbProcNo() const
Return neighbour processor number (rank in communicator).
processorLduInterfaceField()=default
Default construct.
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
Field< tensor > tensorField
Specialisation of Field<T> for tensor.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.