45#ifndef Foam_lduCalculatedProcessorField_H
46#define Foam_lduCalculatedProcessorField_H
64 public LduInterfaceField<Type>,
113 ClassName(
"lduCalculatedProcessorField");
140 virtual bool ready()
const;
202 virtual label
comm()
const
232 virtual int rank()
const
Generic templated field type that is much like a Foam::List except that it is expected to hold numeri...
commsTypes
Communications types.
The class contains the addressing required by the lduMatrix: upper, lower and losort.
const lduPrimitiveProcessorInterface & procInterface_
Local reference cast into the interface.
virtual bool doTransform() const
Is the transform required.
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.
Field< Type > sendBuf_
Send buffer.
virtual int rank() const
Return rank of component for transform.
lduCalculatedProcessorField(const lduInterface &interface)
Construct from ldu interface.
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 void initInterfaceMatrixUpdate(Field< scalar > &result, const bool add, const lduAddressing &lduAddr, const label patchId, const Field< scalar > &psiInternal, const scalarField &coeffs, const Pstream::commsTypes commsType) const
Initialise neighbour matrix update.
ClassName("lduCalculatedProcessorField")
Runtime type information.
solveScalarField scalarSendBuf_
Scalar send buffer.
virtual int myProcNo() const
Return processor number.
Field< Type > recvBuf_
Receive buffer.
virtual bool all_ready() const
Receive and send requests have both completed.
virtual label comm() const
Return communicator used for communication.
label recvRequest_
Current (non-blocking) recv request.
solveScalarField scalarRecvBuf_
Scalar recv buffer.
virtual void updateInterfaceMatrix(Field< scalar > &result, const bool add, const lduAddressing &lduAddr, const label patchId, const Field< scalar > &psiInternal, const scalarField &coeffs, const Pstream::commsTypes commsType) const
Update result field based on interface functionality.
label sendRequest_
Current (non-blocking) send request.
virtual ~lduCalculatedProcessorField()=default
Destructor.
void addToInternalField(solveScalarField &result, const bool add, const scalarField &coeffs, const solveScalarField &vals) const
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.
const lduInterface & interface() const noexcept
Return the interface.
An abstract base class for implicitly-coupled interfaces e.g. processor and cyclic patches.
Concrete implementation of processor interface. Used to temporarily store settings.
virtual int myProcNo() const
Return processor number (rank in communicator).
virtual label comm() const
Return communicator used for sending.
virtual const tensorField & forwardT() const
Return face transformation tensor.
A traits class, which is primarily used for primitives and vector-space.
processorLduInterfaceField()=default
Default construct.
#define ClassName(TypeNameString)
Add typeName information from argument TypeNameString to a class.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
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.