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. More...
Classes | |
class | fvSolver |
Solver class returned by the solver function used for systems in which it is useful to cache the solver for reuse. More... | |
Public Types | |
typedef GeometricField< Type, fvPatchField, volMesh > | psiFieldType |
The geometric field type for psi. More... | |
typedef GeometricField< Type, fvsPatchField, surfaceMesh > | faceFluxFieldType |
Field type for face flux (for non-orthogonal correction) More... | |
typedef GeometricField< Type, fvsPatchField, surfaceMesh > * | faceFluxFieldPtrType |
Declare return type of the faceFluxCorrectionPtr() function. More... | |
Public Types inherited from lduMatrix | |
enum | normTypes : char { NO_NORM, DEFAULT_NORM, L1_SCALED_NORM } |
Enumerated matrix normalisation types. More... | |
Public Member Functions | |
ClassName ("fvMatrix") | |
fvMatrix (const GeometricField< Type, fvPatchField, volMesh > &psi, const dimensionSet &ds) | |
Construct given a field to solve for. More... | |
fvMatrix (const fvMatrix< Type > &) | |
Copy construct. More... | |
fvMatrix (const tmp< fvMatrix< Type >> &) | |
Copy/move construct from tmp<fvMatrix<Type>> More... | |
fvMatrix (const GeometricField< Type, fvPatchField, volMesh > &psi, Istream &is) | |
Deprecated(2022-05) - construct with dimensionSet instead. More... | |
tmp< fvMatrix< Type > > | clone () const |
Construct and return a clone. More... | |
virtual | ~fvMatrix () |
Destructor. More... | |
label | nMatrices () const |
const fvMatrix< Type > & | matrix (const label i) const |
fvMatrix< Type > & | matrix (const label i) |
label | globalPatchID (const label fieldi, const label patchi) const |
void | transferFvMatrixCoeffs () |
Transfer lower, upper, diag and source to this fvMatrix. More... | |
void | createOrUpdateLduPrimitiveAssembly () |
Create or update ldu assembly. More... | |
lduPrimitiveMeshAssembly * | lduMeshPtr () |
Access to lduPrimitiveMeshAssembly. More... | |
const lduPrimitiveMeshAssembly * | lduMeshPtr () const |
Const Access to lduPrimitiveMeshAssembly. More... | |
void | manipulateMatrix (direction cmp) |
Manipulate matrix. More... | |
void | setBounAndInterCoeffs () |
Manipulate boundary/internal coeffs for coupling. More... | |
void | setInterfaces (lduInterfaceFieldPtrsList &, PtrDynList< lduInterfaceField > &newInterfaces) |
Set interfaces. More... | |
void | mapContributions (label fieldi, const FieldField< Field, Type > &fluxContrib, FieldField< Field, Type > &contrib, bool internal) const |
Add internal and boundary contribution to local patches. More... | |
const lduPrimitiveMeshAssembly & | lduMeshAssembly () |
Return optional lduAdressing. More... | |
const GeometricField< Type, fvPatchField, volMesh > & | psi (const label i=0) const |
Return psi. More... | |
GeometricField< Type, fvPatchField, volMesh > & | psi (const label i=0) |
void | clear () |
Clear multiple fvMatrices. More... | |
const dimensionSet & | dimensions () const noexcept |
Field< Type > & | source () noexcept |
const Field< Type > & | source () const noexcept |
const FieldField< Field, Type > & | internalCoeffs () const noexcept |
fvBoundary scalar field containing pseudo-matrix coeffs for internal cells More... | |
FieldField< Field, Type > & | internalCoeffs () noexcept |
fvBoundary scalar field containing pseudo-matrix coeffs for internal cells More... | |
const FieldField< Field, Type > & | boundaryCoeffs () const noexcept |
fvBoundary scalar field containing pseudo-matrix coeffs for boundary cells More... | |
FieldField< Field, Type > & | boundaryCoeffs () noexcept |
fvBoundary scalar field containing pseudo-matrix coeffs for boundary cells More... | |
faceFluxFieldPtrType & | faceFluxCorrectionPtr () |
Return pointer to face-flux non-orthogonal correction field. More... | |
bool | hasFaceFluxCorrection () const noexcept |
True if face-flux non-orthogonal correction field exists. More... | |
void | setValues (const labelUList &cellLabels, const Type &value) |
Set solution in given cells to the specified value and eliminate the corresponding equations from the matrix. More... | |
void | setValues (const labelUList &cellLabels, const UList< Type > &values) |
Set solution in given cells to the specified values and eliminate the corresponding equations from the matrix. More... | |
void | setValues (const labelUList &cellLabels, const UIndirectList< Type > &values) |
Set solution in given cells to the specified values and eliminate the corresponding equations from the matrix. More... | |
void | setReference (const label celli, const Type &value, const bool forceReference=false) |
Set reference level for solution. More... | |
void | setReferences (const labelUList &cellLabels, const Type &value, const bool forceReference=false) |
Set reference level for solution. More... | |
void | setReferences (const labelUList &cellLabels, const UList< Type > &values, const bool forceReference=false) |
Set reference level for solution. More... | |
void | setComponentReference (const label patchi, const label facei, const direction cmpt, const scalar value) |
Set reference level for a component of the solution on a given patch face. More... | |
void | addFvMatrix (fvMatrix< Type > &matrix) |
Add fvMatrix. More... | |
void | relax (const scalar alpha) |
Relax matrix (for steady-state solution). More... | |
void | relax () |
Relax matrix (for steady-state solution). More... | |
void | boundaryManipulate (typename GeometricField< Type, fvPatchField, volMesh >::Boundary &values) |
Manipulate based on a boundary field. More... | |
autoPtr< fvSolver > | solver (const dictionary &) |
Construct and return the solver. More... | |
autoPtr< fvSolver > | solver () |
Construct and return the solver. More... | |
SolverPerformance< Type > | solveSegregatedOrCoupled (const dictionary &) |
Solve segregated or coupled returning the solution statistics. More... | |
SolverPerformance< Type > | solveSegregated (const dictionary &) |
Solve segregated returning the solution statistics. More... | |
SolverPerformance< Type > | solveCoupled (const dictionary &) |
Solve coupled returning the solution statistics. More... | |
SolverPerformance< Type > | solve (const dictionary &) |
Solve returning the solution statistics. More... | |
SolverPerformance< Type > | solve () |
Solve returning the solution statistics. More... | |
tmp< Field< Type > > | residual () const |
Return the matrix residual. More... | |
tmp< scalarField > | D () const |
Return the matrix scalar diagonal. More... | |
tmp< Field< Type > > | DD () const |
Return the matrix Type diagonal. More... | |
tmp< volScalarField > | A () const |
Return the central coefficient. More... | |
tmp< GeometricField< Type, fvPatchField, volMesh > > | H () const |
Return the H operation source. More... | |
tmp< volScalarField > | H1 () const |
Return H(1) More... | |
tmp< GeometricField< Type, fvsPatchField, surfaceMesh > > | flux () const |
Return the face-flux field from the matrix. More... | |
const dictionary & | solverDict () const |
Return the solver dictionary taking into account finalIteration. More... | |
void | operator= (const fvMatrix< Type > &) |
void | operator= (const tmp< fvMatrix< Type >> &) |
void | negate () |
Inplace negate. More... | |
void | operator+= (const fvMatrix< Type > &) |
void | operator+= (const tmp< fvMatrix< Type >> &) |
void | operator-= (const fvMatrix< Type > &) |
void | operator-= (const tmp< fvMatrix< Type >> &) |
void | operator+= (const DimensionedField< Type, volMesh > &) |
void | operator+= (const tmp< DimensionedField< Type, volMesh >> &) |
void | operator+= (const tmp< GeometricField< Type, fvPatchField, volMesh >> &) |
void | operator-= (const DimensionedField< Type, volMesh > &) |
void | operator-= (const tmp< DimensionedField< Type, volMesh >> &) |
void | operator-= (const tmp< GeometricField< Type, fvPatchField, volMesh >> &) |
void | operator+= (const dimensioned< Type > &) |
void | operator-= (const dimensioned< Type > &) |
void | operator+= (const Foam::zero) |
void | operator-= (const Foam::zero) |
void | operator*= (const volScalarField::Internal &) |
void | operator*= (const tmp< volScalarField::Internal > &) |
void | operator*= (const tmp< volScalarField > &) |
void | operator*= (const dimensioned< scalar > &) |
template<> | |
void | setComponentReference (const label patchi, const label facei, const direction, const scalar value) |
template<> | |
Foam::autoPtr< Foam::fvMatrix< Foam::scalar >::fvSolver > | solver (const dictionary &solverControls) |
template<> | |
Foam::solverPerformance | solveSegregated (const dictionary &solverControls) |
template<> | |
Foam::tmp< Foam::scalarField > | residual () const |
template<> | |
Foam::tmp< Foam::volScalarField > | H () const |
template<> | |
Foam::tmp< Foam::volScalarField > | H1 () const |
template<> | |
void | setComponentReference (const label patchi, const label facei, const direction, const scalar value) |
template<> | |
autoPtr< fvMatrix< scalar >::fvSolver > | solver (const dictionary &) |
template<> | |
solverPerformance | solveSegregated (const dictionary &) |
template<> | |
tmp< scalarField > | residual () const |
template<> | |
tmp< volScalarField > | H () const |
template<> | |
tmp< volScalarField > | H1 () const |
Public Member Functions inherited from refCount | |
constexpr | refCount () noexcept |
Default construct, initializing count to 0. More... | |
int | use_count () const noexcept |
Return the current reference count. More... | |
bool | unique () const noexcept |
Return true if the reference count is zero. More... | |
void | operator++ () noexcept |
Increment the reference count. More... | |
void | operator++ (int) noexcept |
Increment the reference count. More... | |
void | operator-- () noexcept |
Decrement the reference count. More... | |
void | operator-- (int) noexcept |
Decrement the reference count. More... | |
Public Member Functions inherited from lduMatrix | |
ClassName ("lduMatrix") | |
lduMatrix (const lduMesh &) | |
Construct given an LDU addressed mesh. More... | |
lduMatrix (const lduMatrix &) | |
Construct as copy. More... | |
lduMatrix (lduMatrix &, bool reuse) | |
Construct as copy or re-use as specified. More... | |
lduMatrix (const lduMesh &, Istream &) | |
Construct given an LDU addressed mesh and an Istream from which the coefficients are read. More... | |
~lduMatrix () | |
Destructor. More... | |
const lduMesh & | mesh () const noexcept |
Return the LDU mesh from which the addressing is obtained. More... | |
void | setLduMesh (const lduMesh &m) |
Set the LDU mesh containing the addressing is obtained. More... | |
const lduAddressing & | lduAddr () const |
Return the LDU addressing. More... | |
const lduSchedule & | patchSchedule () const |
Return the patch evaluation schedule. More... | |
scalarField & | lower () |
scalarField & | diag () |
scalarField & | upper () |
scalarField & | lower (const label size) |
scalarField & | diag (const label nCoeffs) |
scalarField & | upper (const label nCoeffs) |
const scalarField & | lower () const |
const scalarField & | diag () const |
const scalarField & | upper () const |
bool | hasDiag () const noexcept |
bool | hasUpper () const noexcept |
bool | hasLower () const noexcept |
bool | diagonal () const noexcept |
bool | symmetric () const noexcept |
bool | asymmetric () const noexcept |
void | sumDiag () |
void | negSumDiag () |
void | sumMagOffDiag (scalarField &sumOff) const |
void | Amul (solveScalarField &, const tmp< solveScalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const |
Matrix multiplication with updated interfaces. More... | |
void | Tmul (solveScalarField &, const tmp< solveScalarField > &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &, const direction cmpt) const |
Matrix transpose multiplication with updated interfaces. More... | |
void | sumA (solveScalarField &, const FieldField< Field, scalar > &, const lduInterfaceFieldPtrsList &) const |
Sum the coefficients on each row of the matrix. More... | |
void | residual (solveScalarField &rA, const solveScalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const |
tmp< solveScalarField > | residual (const solveScalarField &psi, const scalarField &source, const FieldField< Field, scalar > &interfaceBouCoeffs, const lduInterfaceFieldPtrsList &interfaces, const direction cmpt) const |
void | initMatrixInterfaces (const bool add, const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const solveScalarField &psiif, solveScalarField &result, const direction cmpt) const |
Initialise the update of interfaced interfaces for matrix operations. More... | |
void | updateMatrixInterfaces (const bool add, const FieldField< Field, scalar > &interfaceCoeffs, const lduInterfaceFieldPtrsList &interfaces, const solveScalarField &psiif, solveScalarField &result, const direction cmpt, const label startRequest) const |
Update interfaced interfaces for matrix operations. More... | |
void | setResidualField (const scalarField &residual, const word &fieldName, const bool initial) const |
Set the residual field using an IOField on the object registry if it exists. More... | |
template<class Type > | |
tmp< Field< Type > > | H (const Field< Type > &) const |
template<class Type > | |
tmp< Field< Type > > | H (const tmp< Field< Type >> &) const |
tmp< scalarField > | H1 () const |
template<class Type > | |
tmp< Field< Type > > | faceH (const Field< Type > &) const |
template<class Type > | |
tmp< Field< Type > > | faceH (const tmp< Field< Type >> &) const |
InfoProxy< lduMatrix > | info () const noexcept |
Return info proxy, used to print matrix information to a stream. More... | |
void | operator= (const lduMatrix &) |
void | negate () |
void | operator+= (const lduMatrix &) |
void | operator-= (const lduMatrix &) |
void | operator*= (const scalarField &) |
void | operator*= (scalar) |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | H (const Field< Type > &psi) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | H (const tmp< Field< Type >> &tpsi) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | faceH (const Field< Type > &psi) const |
template<class Type > | |
Foam::tmp< Foam::Field< Type > > | faceH (const tmp< Field< Type >> &tpsi) const |
Protected Member Functions | |
template<class Type2 > | |
void | addToInternalField (const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const |
Add patch contribution to internal field. More... | |
template<class Type2 > | |
void | addToInternalField (const labelUList &addr, const tmp< Field< Type2 >> &tpf, Field< Type2 > &intf) const |
template<class Type2 > | |
void | subtractFromInternalField (const labelUList &addr, const Field< Type2 > &pf, Field< Type2 > &intf) const |
Subtract patch contribution from internal field. More... | |
template<class Type2 > | |
void | subtractFromInternalField (const labelUList &addr, const tmp< Field< Type2 >> &tpf, Field< Type2 > &intf) const |
bool | checkImplicit (const label fieldi=0) |
Name the implicit assembly addressing. More... | |
void | addBoundaryDiag (scalarField &diag, const direction cmpt) const |
void | addCmptAvBoundaryDiag (scalarField &diag) const |
void | addBoundarySource (Field< Type > &source, const bool couples=true) const |
template<template< class > class ListType> | |
void | setValuesFromList (const labelUList &cellLabels, const ListType< Type > &values) |
Set solution in given cells to the specified values. More... | |
Friends | |
class | fvSolver |
Declare friendship with the fvSolver class. More... | |
tmp< GeometricField< Type, fvPatchField, volMesh > > | operator & (const fvMatrix< Type > &, const DimensionedField< Type, volMesh > &) |
tmp< GeometricField< Type, fvPatchField, volMesh > > | operator & (const fvMatrix< Type > &, const tmp< GeometricField< Type, fvPatchField, volMesh >> &) |
tmp< GeometricField< Type, fvPatchField, volMesh > > | operator & (const tmp< fvMatrix< Type >> &, const DimensionedField< Type, volMesh > &) |
tmp< GeometricField< Type, fvPatchField, volMesh > > | operator & (const tmp< fvMatrix< Type >> &, const tmp< GeometricField< Type, fvPatchField, volMesh >> &) |
Ostream & | operator (Ostream &, const fvMatrix< Type > &) |
Additional Inherited Members | |
Static Public Attributes inherited from lduMatrix | |
static const Enum< normTypes > | normTypesNames_ |
Names for the normTypes. More... | |
static constexpr const label | defaultMaxIter = 1000 |
Default maximum number of iterations for solvers (1000) More... | |
static const scalar | defaultTolerance = 1e-6 |
Default (absolute) tolerance (1e-6) More... | |
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.
Definition at line 64 of file fvPatchField.H.
typedef GeometricField<Type, fvPatchField, volMesh> psiFieldType |
The geometric field type for psi.
Definition at line 126 of file fvMatrix.H.
typedef GeometricField<Type, fvsPatchField, surfaceMesh> faceFluxFieldType |
Field type for face flux (for non-orthogonal correction)
Definition at line 133 of file fvMatrix.H.
typedef GeometricField<Type, fvsPatchField, surfaceMesh>* faceFluxFieldPtrType |
Declare return type of the faceFluxCorrectionPtr() function.
Definition at line 583 of file fvMatrix.H.
fvMatrix | ( | const GeometricField< Type, fvPatchField, volMesh > & | psi, |
const dimensionSet & | ds | ||
) |
Construct given a field to solve for.
Definition at line 352 of file fvMatrix.C.
References DebugInFunction, Foam::endl(), forAll, psi, and Foam::Zero.
Copy construct.
Definition at line 396 of file fvMatrix.C.
References DebugInFunction, Foam::endl(), and IOobject::name().
Copy/move construct from tmp<fvMatrix<Type>>
Definition at line 424 of file fvMatrix.C.
References DebugInFunction, Foam::endl(), and IOobject::name().
|
inline |
Deprecated(2022-05) - construct with dimensionSet instead.
Definition at line 363 of file fvMatrix.H.
|
virtual |
Destructor.
Definition at line 464 of file fvMatrix.C.
References DebugInFunction, Foam::deleteDemandDrivenData(), and Foam::endl().
|
protected |
Add patch contribution to internal field.
Definition at line 42 of file fvMatrix.C.
References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, UList< T >::size(), and UList< Type >::size().
|
protected |
Definition at line 66 of file fvMatrix.C.
|
protected |
Subtract patch contribution from internal field.
Definition at line 80 of file fvMatrix.C.
References Foam::abort(), Foam::endl(), Foam::FatalError, FatalErrorInFunction, forAll, UList< T >::size(), and UList< Type >::size().
|
protected |
Definition at line 104 of file fvMatrix.C.
|
protected |
Name the implicit assembly addressing.
Definition at line 315 of file fvMatrix.C.
References Foam::ensightOutput::debug, Foam::endl(), forAll, Foam::name(), Foam::Pout, and psi.
|
protected |
Definition at line 117 of file fvMatrix.C.
References Foam::component(), Foam::diag(), forAll, and psi.
Referenced by fvMatrix< Type >::residual().
|
protected |
Definition at line 145 of file fvMatrix.C.
References Foam::cmptAv(), Foam::diag(), forAll, and psi.
|
protected |
Definition at line 170 of file fvMatrix.C.
References Foam::cmptMultiply(), fvPatchFieldBase::coupled(), forAll, fvPatchField< Type >::patchNeighbourField(), and psi.
Referenced by fvMatrix< Type >::residual().
|
protected |
Set solution in given cells to the specified values.
Definition at line 220 of file fvMatrix.C.
References cells, Foam::diag(), forAll, Foam::stringOps::lower(), mesh, primitiveFieldRef(), psi, Foam::stringOps::upper(), Foam::HashTableOps::values(), and Foam::Zero.
ClassName | ( | "fvMatrix< Type >" | ) |
Construct and return a clone.
Definition at line 374 of file fvMatrix.H.
References Foam::New().
Referenced by fvMatrix< Type >::addFvMatrix().
|
inline |
Definition at line 392 of file fvMatrix.H.
|
inline |
Definition at line 397 of file fvMatrix.H.
Referenced by fvMatrix< Type >::psi().
|
inline |
Definition at line 402 of file fvMatrix.H.
|
inline |
Definition at line 408 of file fvMatrix.H.
References fvMatrix< Type >::lduMeshPtr(), and lduPrimitiveMeshAssembly::patchMap().
void transferFvMatrixCoeffs | ( | ) |
Transfer lower, upper, diag and source to this fvMatrix.
Definition at line 821 of file fvMatrix.C.
References Foam::diag(), Foam::faceMap(), forAll, Foam::stringOps::lower(), List< Type >::setSize(), UList< T >::size(), Foam::stringOps::upper(), and Foam::Zero.
void createOrUpdateLduPrimitiveAssembly | ( | ) |
Create or update ldu assembly.
Definition at line 914 of file fvMatrix.C.
References lduAddressing::clearOut(), Foam::endl(), Foam::Info, io(), lduPrimitiveMesh::lduAddr(), DimensionedField< Type, GeoMesh >::mesh(), IOobjectOption::NO_READ, IOobjectOption::NO_WRITE, psi, IOobjectOption::REGISTER, UPtrList< T >::set(), regIOobject::store(), and lduPrimitiveMeshAssembly::update().
Foam::lduPrimitiveMeshAssembly * lduMeshPtr | ( | ) |
Access to lduPrimitiveMeshAssembly.
Definition at line 888 of file fvMatrix.C.
References lduPrimitiveMesh::mesh(), and lduMesh::thisDb().
Referenced by fvMatrix< Type >::globalPatchID(), and fvMatrix< Type >::lduMeshAssembly().
const Foam::lduPrimitiveMeshAssembly * lduMeshPtr | ( | ) | const |
Const Access to lduPrimitiveMeshAssembly.
Definition at line 901 of file fvMatrix.C.
void manipulateMatrix | ( | direction | cmp | ) |
Manipulate matrix.
Definition at line 798 of file fvMatrix.C.
References GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), forAll, and psi.
void setBounAndInterCoeffs | ( | ) |
Manipulate boundary/internal coeffs for coupling.
Definition at line 668 of file fvMatrix.C.
References boundary, GeometricField< Type, PatchField, GeoMesh >::boundaryField(), forAll, DimensionedField< Type, GeoMesh >::mesh(), psi, List< T >::set(), and Foam::Zero.
void setInterfaces | ( | lduInterfaceFieldPtrsList & | interfaces, |
PtrDynList< lduInterfaceField > & | newInterfaces | ||
) |
Set interfaces.
Definition at line 478 of file fvMatrix.C.
References PtrDynList< T, SizeMin >::append(), GeometricField< Type, PatchField, GeoMesh >::boundaryField(), forAll, UPtrList< T >::last(), psi, UPtrList< T >::set(), and UPtrList< T >::setSize().
void mapContributions | ( | label | fieldi, |
const FieldField< Field, Type > & | fluxContrib, | ||
FieldField< Field, Type > & | contrib, | ||
bool | internal | ||
) | const |
Add internal and boundary contribution to local patches.
Definition at line 556 of file fvMatrix.C.
References GeometricField< Type, PatchField, GeoMesh >::boundaryField(), lduPrimitiveMeshAssembly::cellBoundMap(), cellId, Foam::cmptMultiply(), faceId(), lduPrimitiveMeshAssembly::facePatchFaceMap(), forAll, DimensionedField< Type, GeoMesh >::mesh(), lduPrimitiveMeshAssembly::patchLocalToGlobalMap(), lduPrimitiveMeshAssembly::patchMap(), pp(), psi, List< Type >::setSize(), and PtrList< Field< Type > >::setSize().
|
inline |
Return optional lduAdressing.
Definition at line 476 of file fvMatrix.H.
References fvMatrix< Type >::lduMeshPtr().
Referenced by mixedEnergyFvPatchScalarField::manipulateMatrix(), cyclicFvPatchField< vector >::manipulateMatrix(), cyclicAMIFvPatchField< scalar >::manipulateMatrix(), and cyclicACMIFvPatchField< Type >::manipulateMatrix().
|
inline |
Return psi.
Definition at line 485 of file fvMatrix.H.
References fvMatrix< Type >::matrix().
Referenced by MRFZone::addCoriolis(), velocityDampingConstraint::addDamping(), oversetFvMeshBase::addInterpolation(), solver::addOptimisationTypeSource(), radiation::addSup(), multiphaseMangrovesSource::addSup(), patchCellsSource::addSup(), multiphaseMangrovesTurbulenceModel::addSup(), atmPlantCanopyUSource::addSup(), PhaseLimitStabilization< Type >::addSup(), radialActuationDiskSource::addSup(), explicitPorositySource::addSup(), interRegionExplicitPorositySource::addSup(), atmCoriolisUSource::addSup(), acousticDampingSource::addSup(), multiphaseStabilizedTurbulence::addSup(), interRegionHeatTransferModel::addSup(), jouleHeatingSource::addSup(), SemiImplicitSource< Type >::addSup(), solidificationMeltingSource::addSup(), rotorDiskSource::addSup(), Foam::checkMethod(), optionList::constrain(), oversetFvPatchField< Type >::fringeFlux(), cyclicFvPatchField< vector >::manipulateMatrix(), cyclicAMIFvPatchField< scalar >::manipulateMatrix(), cyclicACMIFvPatchField< Type >::manipulateMatrix(), MomentumTransferPhaseSystem< BasePhaseSystem >::momentumTransfer(), oversetFvMeshBase::normalisation(), Foam::oversetPatchPhiErr(), fvMatrix< Type >::psi(), oversetFvMeshBase::solveOverset(), and oversetFvMeshBase::write().
|
inline |
Definition at line 497 of file fvMatrix.H.
References fvMatrix< Type >::matrix(), and fvMatrix< Type >::psi().
|
inline |
Clear multiple fvMatrices.
Definition at line 521 of file fvMatrix.H.
References PtrList< T >::clear().
|
inlinenoexcept |
Definition at line 528 of file fvMatrix.H.
Referenced by fvMatrix< Type >::addFvMatrix(), patchCellsSource::addSup(), explicitPorositySource::addSup(), interRegionExplicitPorositySource::addSup(), meanVelocityForce::addSup(), fanMomentumSource::addSup(), SemiImplicitSource< Type >::addSup(), directionalPressureGradientExplicitSource::addSup(), rotorDiskSource::addSup(), Foam::checkMethod(), and fvMatrix< Type >::operator*=().
|
inlinenoexcept |
Definition at line 533 of file fvMatrix.H.
Referenced by MRFZone::addCoriolis(), oversetFvMeshBase::addInterpolation(), radialActuationDiskSource::addSup(), interRegionExplicitPorositySource::addSup(), heatExchangerSource::addSup(), solidificationMeltingSource::addSup(), adjointkOmegaSST::addWallFunctionTerms(), EulerD2dt2Scheme< Type >::fvmD2dt2(), EulerDdtScheme< Type >::fvmDdt(), CoEulerDdtScheme< Type >::fvmDdt(), backwardDdtScheme< Type >::fvmDdt(), SLTSDdtScheme< Type >::fvmDdt(), localEulerDdtScheme< Type >::fvmDdt(), CrankNicolsonDdtScheme< Type >::fvmDdt(), gaussLaplacianScheme< Type, GType >::fvmLaplacian(), relaxedNonOrthoGaussLaplacianScheme< Type, GType >::fvmLaplacian(), kaqRWallFunctionFvPatchScalarField::manipulateMatrix(), adjointOutletVelocityFluxFvPatchVectorField::manipulateMatrix(), adjointWallVelocityFvPatchVectorField::manipulateMatrix(), mixedEnergyFvPatchScalarField::manipulateMatrix(), ThermoCloud< Foam::DSMCCloud >::Sh(), oversetFvMeshBase::solveOverset(), ReactingCloud< Foam::DSMCCloud >::Srho(), KinematicCloud< Cloud< basicKinematicCollidingParcel > >::SU(), ReactingCloud< Foam::DSMCCloud >::SYi(), and oversetFvMeshBase::write().
|
inlinenoexcept |
Definition at line 538 of file fvMatrix.H.
|
inlinenoexcept |
fvBoundary scalar field containing pseudo-matrix coeffs for internal cells
Definition at line 547 of file fvMatrix.H.
Referenced by oversetFvMeshBase::addInterpolation(), gaussConvectionScheme< Type >::fvmDiv(), gaussLaplacianScheme< Type, GType >::fvmLaplacianUncorrected(), relaxedNonOrthoGaussLaplacianScheme< Type, GType >::fvmLaplacianUncorrected(), waWallFunctionFvPatchScalarField::manipulateMatrix(), mixedEnergyFvPatchScalarField::manipulateMatrix(), cyclicFvPatchField< vector >::manipulateMatrix(), cyclicAMIFvPatchField< scalar >::manipulateMatrix(), cyclicACMIFvPatchField< Type >::manipulateMatrix(), oversetFvPatchField< Type >::manipulateMatrix(), oversetFvMeshBase::normalisation(), oversetFvMeshBase::solveOverset(), oversetFvPatchField< Type >::storeFringeCoefficients(), and oversetFvMeshBase::write().
|
inlinenoexcept |
fvBoundary scalar field containing pseudo-matrix coeffs for internal cells
Definition at line 556 of file fvMatrix.H.
|
inlinenoexcept |
fvBoundary scalar field containing pseudo-matrix coeffs for boundary cells
Definition at line 565 of file fvMatrix.H.
Referenced by oversetFvMeshBase::addInterpolation(), gaussConvectionScheme< Type >::fvmDiv(), gaussLaplacianScheme< Type, GType >::fvmLaplacianUncorrected(), relaxedNonOrthoGaussLaplacianScheme< Type, GType >::fvmLaplacianUncorrected(), waWallFunctionFvPatchScalarField::manipulateMatrix(), cyclicFvPatchField< vector >::manipulateMatrix(), cyclicAMIFvPatchField< scalar >::manipulateMatrix(), cyclicACMIFvPatchField< Type >::manipulateMatrix(), oversetFvPatchField< Type >::manipulateMatrix(), oversetFvMeshBase::solveOverset(), oversetFvPatchField< Type >::storeFringeCoefficients(), and oversetFvMeshBase::write().
|
inlinenoexcept |
fvBoundary scalar field containing pseudo-matrix coeffs for boundary cells
Definition at line 574 of file fvMatrix.H.
|
inline |
Return pointer to face-flux non-orthogonal correction field.
Definition at line 588 of file fvMatrix.H.
Referenced by gaussLaplacianScheme< Type, GType >::fvmLaplacian(), and relaxedNonOrthoGaussLaplacianScheme< Type, GType >::fvmLaplacian().
|
inlinenoexcept |
True if face-flux non-orthogonal correction field exists.
Definition at line 596 of file fvMatrix.H.
void setValues | ( | const labelUList & | cellLabels, |
const Type & | value | ||
) |
Set solution in given cells to the specified value and eliminate the corresponding equations from the matrix.
Definition at line 978 of file fvMatrix.C.
Referenced by FixedValueConstraint< Type >::constrain(), fixedTemperatureConstraint::constrain(), fixedInternalValueFvPatchField< Type >::manipulateMatrix(), omegaWallFunctionFvPatchScalarField::manipulateMatrix(), and epsilonWallFunctionFvPatchScalarField::manipulateMatrix().
void setValues | ( | const labelUList & | cellLabels, |
const UList< Type > & | values | ||
) |
Set solution in given cells to the specified values and eliminate the corresponding equations from the matrix.
Definition at line 989 of file fvMatrix.C.
References Foam::HashTableOps::values().
void setValues | ( | const labelUList & | cellLabels, |
const UIndirectList< Type > & | values | ||
) |
Set solution in given cells to the specified values and eliminate the corresponding equations from the matrix.
Definition at line 1000 of file fvMatrix.C.
References Foam::HashTableOps::values().
void setReference | ( | const label | celli, |
const Type & | value, | ||
const bool | forceReference = false |
||
) |
Set reference level for solution.
Definition at line 1011 of file fvMatrix.C.
References Foam::diag().
Referenced by Foam::CorrectPhi(), simple::mainIter(), and adjointSimple::mainIter().
void setReferences | ( | const labelUList & | cellLabels, |
const Type & | value, | ||
const bool | forceReference = false |
||
) |
Set reference level for solution.
Definition at line 1027 of file fvMatrix.C.
References cellId, Foam::diag(), and forAll.
void setReferences | ( | const labelUList & | cellLabels, |
const UList< Type > & | values, | ||
const bool | forceReference = false |
||
) |
Set reference level for solution.
Definition at line 1050 of file fvMatrix.C.
References cellId, Foam::diag(), forAll, and Foam::HashTableOps::values().
void setComponentReference | ( | const label | patchi, |
const label | facei, | ||
const direction | cmpt, | ||
const scalar | value | ||
) |
Set reference level for a component of the solution on a given patch face.
Definition at line 31 of file fvMatrixSolve.C.
References Foam::diag().
void addFvMatrix | ( | fvMatrix< Type > & | matrix | ) |
Add fvMatrix.
Definition at line 1072 of file fvMatrix.C.
References Foam::abort(), fvMatrix< Type >::clone(), fvMatrix< Type >::dimensions(), Foam::endl(), Foam::FatalError, and FatalErrorInFunction.
void relax | ( | const scalar | alpha | ) |
Relax matrix (for steady-state solution).
alpha = 1 : diagonally equal alpha < 1 : diagonally dominant alpha = 0 : do nothing Note: Requires positive diagonal.
Definition at line 1101 of file fvMatrix.C.
References Foam::constant::atomic::alpha, Foam::cmptMag(), Foam::cmptMax(), Foam::cmptMin(), Foam::component(), fvPatchFieldBase::coupled(), D, Foam::ensightOutput::debug, DebugInFunction, Foam::diag(), Foam::endl(), forAll, InfoInFunction, Foam::mag(), Foam::max(), UPstream::msgType(), Foam::nl, Foam::reduce(), Foam::returnReduce(), UList< Type >::size(), and Foam::Zero.
Referenced by jouleHeatingSource::addSup(), hydrostaticPressure::calculateAndWrite(), IATE::correct(), dynamicLagrangian< BasicTurbulenceModel >::correct(), thixotropicViscosity::correct(), SpalartAllmarasBase< eddyViscosity< RASModel< BasicTurbulenceModel > > >::correct(), kineticTheoryModel::correct(), kOmegaSSTBase< eddyViscosity< RASModel< BasicTurbulenceModel > > >::correct(), incompressiblePrimalSolver::correctBoundaryConditions(), waxSolventEvaporation::correctModel(), age::execute(), scalarTransport::execute(), electricPotential::execute(), energyTransport::execute(), simple::mainIter(), twoPhaseSystem::solve(), adjointEikonalSolver::solve(), populationBalanceModel::solve(), thermalBaffle::solveEnergy(), and thermalShell::solveEnergy().
void relax | ( | ) |
Relax matrix (for steady-state solution).
alpha is read from controlDict
Definition at line 1249 of file fvMatrix.C.
References Foam::name(), and relax().
void boundaryManipulate | ( | typename GeometricField< Type, fvPatchField, volMesh >::Boundary & | values | ) |
Manipulate based on a boundary field.
Definition at line 1266 of file fvMatrix.C.
References forAll.
Referenced by kOmegaSSTBase< eddyViscosity< RASModel< BasicTurbulenceModel > > >::correct(), adjointSimple::mainIter(), adjointMeshMovementSolver::solve(), multiphaseSystem::solveAlphas(), and oversetFvMeshBase::solveOverset().
autoPtr<fvSolver> solver | ( | const dictionary & | ) |
Construct and return the solver.
Use the given solver controls
Foam::autoPtr< typename Foam::fvMatrix< Type >::fvSolver > solver | ( | ) |
Construct and return the solver.
Solver controls read from fvSolution
Definition at line 322 of file fvMatrixSolve.C.
Foam::SolverPerformance< Type > solveSegregatedOrCoupled | ( | const dictionary & | solverControls | ) |
Solve segregated or coupled returning the solution statistics.
Use the given solver controls
Definition at line 55 of file fvMatrixSolve.C.
References addProfiling, Foam::ensightOutput::debug, Foam::endl(), Foam::exit(), Foam::FatalIOError, FatalIOErrorInFunction, dictionary::getOrDefault(), Foam::Info, messageStream::masterStream(), mesh, regionName, and solve().
Referenced by velocityComponentLaplacianFvMotionSolver::solve(), velocityLaplacianFvMotionSolver::solve(), displacementComponentLaplacianFvMotionSolver::solve(), displacementSBRStressFvMotionSolver::solve(), solidBodyDisplacementLaplacianFvMotionSolver::solve(), displacementLaplacianFvMotionSolver::solve(), and fvMesh::solve().
Foam::SolverPerformance< Type > solveSegregated | ( | const dictionary & | solverControls | ) |
Solve segregated returning the solution statistics.
Use the given solver controls
Definition at line 105 of file fvMatrixSolve.C.
References Field< Type >::component(), Foam::ensightOutput::debug, Foam::diag(), Foam::endl(), Foam::exit(), Foam::FatalError, FatalErrorInFunction, dictionary::getOrDefault(), Foam::Info, messageStream::masterStream(), mesh, Foam::New(), SolverPerformance< Type >::print(), psi, refPtr< Container< Type > >::ref(), solve(), and SolverPerformance< Type >::solverName().
Foam::SolverPerformance< Type > solveCoupled | ( | const dictionary & | solverControls | ) |
Solve coupled returning the solution statistics.
Use the given solver controls
Definition at line 245 of file fvMatrixSolve.C.
References Foam::ensightOutput::debug, Foam::diag(), LduMatrix< Type, DType, LUType >::diag(), Foam::endl(), dictionary::getOrDefault(), Foam::Info, Foam::stringOps::lower(), messageStream::masterStream(), mesh, SolverPerformance< Type >::print(), psi, and Foam::stringOps::upper().
Foam::SolverPerformance< Type > solve | ( | const dictionary & | solverControls | ) |
Solve returning the solution statistics.
Use the given solver controls
Definition at line 312 of file fvMatrixSolve.C.
Referenced by jouleHeatingSource::addSup(), Implicit< CloudType >::cacheFields(), hydrostaticPressure::calculateAndWrite(), dynamicLagrangian< BasicTurbulenceModel >::correct(), kineticTheoryModel::correct(), Foam::CorrectPhi(), age::execute(), scalarTransport::execute(), electricPotential::execute(), energyTransport::execute(), simple::mainIter(), adjointSimple::mainIter(), laplacianMotionSolver::solve(), elasticityMotionSolver::solve(), twoPhaseSystem::solve(), adjointEikonalSolver::solve(), multiphaseSystem::solveAlphas(), reactingOneDim::solveContinuity(), thermalBaffle::solveEnergy(), thermalShell::solveEnergy(), sensitivityBezierFI::solveMeshMovementEqn(), kinematicSingleLayer::solveThickness(), and MultiComponentPhaseModel< BasePhaseModel, phaseThermo >::solveYi().
Foam::SolverPerformance< Type > solve | ( | ) |
Solve returning the solution statistics.
Solver controls read from fvSolution
Definition at line 336 of file fvMatrixSolve.C.
References fvMatrix< Type >::solverDict().
Foam::tmp< Foam::Field< Type > > residual | ( | ) | const |
Return the matrix residual.
Definition at line 343 of file fvMatrixSolve.C.
References fvMatrix< Type >::addBoundaryDiag(), fvMatrix< Type >::addBoundarySource(), GeometricField< Type, PatchField, GeoMesh >::boundaryField(), Field< Type >::component(), GeometricField< Type, PatchField, GeoMesh >::primitiveField(), tmp< T >::ref(), Field< Type >::replace(), lduMatrix::residual(), GeometricBoundaryField< Type, PatchField, GeoMesh >::scalarInterfaces(), UList< T >::size(), and Foam::Zero.
Foam::tmp< Foam::scalarField > D | ( | ) | const |
Return the matrix scalar diagonal.
Definition at line 1279 of file fvMatrix.C.
References Foam::diag(), and tmp< T >::New().
Foam::tmp< Foam::Field< Type > > DD | ( | ) | const |
Return the matrix Type diagonal.
Definition at line 1288 of file fvMatrix.C.
References fvPatchFieldBase::coupled(), Foam::diag(), forAll, tmp< T >::ref(), and UList< Type >::size().
Foam::tmp< Foam::volScalarField > A | ( | ) | const |
Return the central coefficient.
Definition at line 1312 of file fvMatrix.C.
References D, Foam::dimVol, fvPatchFieldBase::extrapolatedCalculatedType(), and GeometricField< scalar, fvPatchField, volMesh >::New().
Referenced by meanVelocityForce::constrain(), directionalPressureGradientExplicitSource::constrain(), incompressiblePrimalSolver::correctBoundaryConditions(), and simple::mainIter().
Foam::tmp< Foam::GeometricField< Type, Foam::fvPatchField, Foam::volMesh > > H | ( | ) | const |
Return the H operation source.
Definition at line 1331 of file fvMatrix.C.
References GeometricField< Type, PatchField, GeoMesh >::correctBoundaryConditions(), DimensionedField< Type, GeoMesh >::dimensions(), Foam::dimVol, fvPatchFieldBase::extrapolatedCalculatedType(), lduMatrix::H(), GeometricField< Type, PatchField, GeoMesh >::New(), GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef(), GeometricField< Type, PatchField, GeoMesh >::replace(), and Foam::Zero.
Referenced by incompressiblePrimalSolver::correctBoundaryConditions(), and simple::mainIter().
Foam::tmp< Foam::volScalarField > H1 | ( | ) | const |
Return H(1)
Definition at line 1383 of file fvMatrix.C.
References Foam::component(), fvPatchFieldBase::coupled(), Foam::dimVol, fvPatchFieldBase::extrapolatedCalculatedType(), forAll, lduMatrix::H1(), GeometricField< scalar, fvPatchField, volMesh >::New(), and UList< Type >::size().
Referenced by simple::mainIter().
Foam::tmp< Foam::GeometricField< Type, Foam::fvsPatchField, Foam::surfaceMesh > > flux | ( | ) | const |
Return the face-flux field from the matrix.
Definition at line 1421 of file fvMatrix.C.
References Foam::abort(), GeometricField< Type, PatchField, GeoMesh >::boundaryFieldRef(), Foam::cmptMultiply(), lduMatrix::faceH(), Foam::FatalError, FatalErrorInFunction, forAll, GeometricField< Type, PatchField, GeoMesh >::New(), GeometricField< Type, PatchField, GeoMesh >::primitiveFieldRef(), and DimensionedField< Type, GeoMesh >::setOriented().
Referenced by Implicit< CloudType >::cacheFields(), incompressiblePrimalSolver::correctBoundaryConditions(), Foam::CorrectPhi(), scalarTransport::execute(), simple::mainIter(), adjointSimple::mainIter(), twoPhaseSystem::solve(), multiphaseSystem::solveAlphas(), kinematicSingleLayer::solveThickness(), and MultiComponentPhaseModel< BasePhaseModel, phaseThermo >::solveYi().
const Foam::dictionary & solverDict | ( | ) | const |
Return the solver dictionary taking into account finalIteration.
Definition at line 1524 of file fvMatrix.C.
Referenced by velocityComponentLaplacianFvMotionSolver::solve(), velocityLaplacianFvMotionSolver::solve(), displacementComponentLaplacianFvMotionSolver::solve(), displacementSBRStressFvMotionSolver::solve(), solidBodyDisplacementLaplacianFvMotionSolver::solve(), displacementLaplacianFvMotionSolver::solve(), and fvMatrix< Type >::solve().
Definition at line 1540 of file fvMatrix.C.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, and lduMatrix::operator=().
Definition at line 1577 of file fvMatrix.C.
void negate | ( | ) |
Inplace negate.
Definition at line 1585 of file fvMatrix.C.
References lduMatrix::negate().
Definition at line 1600 of file fvMatrix.C.
References Foam::checkMethod(), and lduMatrix::operator+=().
Definition at line 1630 of file fvMatrix.C.
Definition at line 1638 of file fvMatrix.C.
References Foam::checkMethod(), and lduMatrix::operator-=().
Definition at line 1666 of file fvMatrix.C.
void operator+= | ( | const DimensionedField< Type, volMesh > & | su | ) |
Definition at line 1675 of file fvMatrix.C.
References Foam::checkMethod().
void operator+= | ( | const tmp< DimensionedField< Type, volMesh >> & | tsu | ) |
Definition at line 1686 of file fvMatrix.C.
void operator+= | ( | const tmp< GeometricField< Type, fvPatchField, volMesh >> & | tsu | ) |
Definition at line 1697 of file fvMatrix.C.
void operator-= | ( | const DimensionedField< Type, volMesh > & | su | ) |
Definition at line 1708 of file fvMatrix.C.
References Foam::checkMethod().
void operator-= | ( | const tmp< DimensionedField< Type, volMesh >> & | tsu | ) |
Definition at line 1719 of file fvMatrix.C.
void operator-= | ( | const tmp< GeometricField< Type, fvPatchField, volMesh >> & | tsu | ) |
Definition at line 1730 of file fvMatrix.C.
void operator+= | ( | const dimensioned< Type > & | su | ) |
Definition at line 1741 of file fvMatrix.C.
References DimensionedField< Type, GeoMesh >::mesh(), and psi.
void operator-= | ( | const dimensioned< Type > & | su | ) |
Definition at line 1751 of file fvMatrix.C.
References DimensionedField< Type, GeoMesh >::mesh(), and psi.
void operator+= | ( | const Foam::zero | ) |
Definition at line 1760 of file fvMatrix.C.
void operator-= | ( | const Foam::zero | ) |
Definition at line 1765 of file fvMatrix.C.
void operator*= | ( | const volScalarField::Internal & | dsf | ) |
Definition at line 1771 of file fvMatrix.C.
References Foam::abort(), fvMatrix< Type >::dimensions(), Foam::FatalError, FatalErrorInFunction, forAll, and lduMatrix::operator*=().
void operator*= | ( | const tmp< volScalarField::Internal > & | tfld | ) |
Definition at line 1801 of file fvMatrix.C.
void operator*= | ( | const tmp< volScalarField > & | tfld | ) |
Definition at line 1812 of file fvMatrix.C.
void operator*= | ( | const dimensioned< scalar > & | ds | ) |
Definition at line 1823 of file fvMatrix.C.
References lduMatrix::operator*=().
void setComponentReference | ( | const label | patchi, |
const label | facei, | ||
const direction | , | ||
const scalar | value | ||
) |
Definition at line 34 of file fvScalarMatrix.C.
References Foam::diag().
Foam::autoPtr< Foam::fvMatrix< Foam::scalar >::fvSolver > solver | ( | const dictionary & | solverControls | ) |
Definition at line 59 of file fvScalarMatrix.C.
References addProfiling, Foam::ensightOutput::debug, Foam::diag(), Foam::endl(), Foam::Info, messageStream::masterStream(), mesh, Foam::New(), regionName, and solve().
Foam::solverPerformance solveSegregated | ( | const dictionary & | solverControls | ) |
Definition at line 159 of file fvScalarMatrix.C.
References GeometricField< Type, PatchField, GeoMesh >::correctBoundaryConditions(), Foam::ensightOutput::debug, Foam::diag(), Foam::endl(), forAll, dictionary::getOrDefault(), Foam::Info, Foam::stringOps::lower(), messageStream::masterStream(), mesh, Foam::name(), Foam::New(), primitiveFieldRef(), SolverPerformance< Type >::print(), psi, tmp< T >::ref(), UList< T >::size(), Foam::stringOps::upper(), and Foam::Zero.
Foam::tmp< Foam::scalarField > residual | ( | ) | const |
Definition at line 321 of file fvScalarMatrix.C.
References psi, refPtr< Container< Type > >::ref(), and Foam::Zero.
Foam::tmp< Foam::volScalarField > H | ( | ) | const |
Definition at line 350 of file fvScalarMatrix.C.
References Foam::dimVol, Foam::fieldTypes::extrapolatedCalculatedType, H(), and Foam::New().
Foam::tmp< Foam::volScalarField > H1 | ( | ) | const |
Definition at line 372 of file fvScalarMatrix.C.
References Foam::dimVol, Foam::fieldTypes::extrapolatedCalculatedType, and Foam::New().
void setComponentReference | ( | const label | patchi, |
const label | facei, | ||
const direction | , | ||
const scalar | value | ||
) |
autoPtr< fvMatrix< scalar >::fvSolver > solver | ( | const dictionary & | ) |
solverPerformance solveSegregated | ( | const dictionary & | ) |
tmp< scalarField > residual | ( | ) | const |
tmp< volScalarField > H | ( | ) | const |
tmp< volScalarField > H1 | ( | ) | const |
|
friend |
Declare friendship with the fvSolver class.
Definition at line 203 of file fvMatrix.H.
|
friend |
|
friend |
|
friend |
|
friend |
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.