binaryNode< ThermoType > Class Template Reference

Node of the binary tree. More...

Collaboration diagram for binaryNode< ThermoType >:

Public Member Functions

void calcV (chemPointISAT< ThermoType > *&elementLeft, chemPointISAT< ThermoType > *&elementRight, scalarField &v)
 Compute vector v: More...
 
scalar calcA (chemPointISAT< ThermoType > *elementLeft, chemPointISAT< ThermoType > *elementRight)
 Compute a the product v^T.phih, with phih = (phi0 + phiq)/2. More...
 
 binaryNode ()
 Construct null. More...
 
 binaryNode (chemPointISAT< ThermoType > *elementLeft, chemPointISAT< ThermoType > *elementRight, binaryNode< ThermoType > *parent)
 Construct from components. More...
 
chemPointISAT< ThermoType > *& leafLeft ()
 Access. More...
 
chemPointISAT< ThermoType > *& leafRight ()
 
binaryNode< ThermoType > *& nodeLeft ()
 
binaryNode< ThermoType > *& nodeRight ()
 
binaryNode< ThermoType > *& parent ()
 
const scalarFieldv () const
 Topology. More...
 
scalarFieldv ()
 
const scalar & a () const
 
scalar & a ()
 

Public Attributes

chemPointISAT< ThermoType > * leafLeft_
 Element on the left. More...
 
chemPointISAT< ThermoType > * leafRight_
 Element on the right. More...
 
binaryNode< ThermoType > * nodeLeft_
 Node which follows on the left. More...
 
binaryNode< ThermoType > * nodeRight_
 Node which follows on the right. More...
 
binaryNode< ThermoType > * parent_
 Parent node. More...
 
scalarField v_
 
scalar a_
 

Detailed Description

template<class ThermoType>
class Foam::binaryNode< ThermoType >

Node of the binary tree.

SourceFile binaryNode.C

Definition at line 49 of file binaryNode.H.

Constructor & Destructor Documentation

◆ binaryNode() [1/2]

Construct null.

Definition at line 31 of file binaryNode.C.

◆ binaryNode() [2/2]

binaryNode ( chemPointISAT< ThermoType > *  elementLeft,
chemPointISAT< ThermoType > *  elementRight,
binaryNode< ThermoType > *  parent 
)

Construct from components.

Definition at line 43 of file binaryNode.C.

References binaryNode< ThermoType >::a_, binaryNode< ThermoType >::calcA(), binaryNode< ThermoType >::calcV(), and binaryNode< ThermoType >::v_.

Here is the call graph for this function:

Member Function Documentation

◆ calcV()

void calcV ( chemPointISAT< ThermoType > *&  elementLeft,
chemPointISAT< ThermoType > *&  elementRight,
scalarField v 
)

Compute vector v:

Let E be the ellipsoid which covers the region of accuracy of the left leaf (previously defined). E is described by E={phi| ||L^T.(phi-phi0)|| <= 1}, (see chemPoint for more details). let E' be the transformation of E in a space where E' is a hypersphere centered at the origin, in this space y=L^T.(phi-phi0) and then E'={y| ||y||<=1} let u be the unit vector joining the center of E' and the newly added composition point in the transformed space (y2=L^T.(phiq-phi0)),u = y2/||y2| Then the hyperplane separating the two points is defined as the perpendicular bisector of the segment linking 0 to y2 H' = {y| u^T.(y-yh) = 0}, where yh = y2/2. In the original composition space, the hyperplane H is defined by H = {y| v^T(phi-phih) = 0}, where phih = phi0 + L^-T.yh = (phi0 + phiq) / 2 and v is L.L^T (phiq-phi0) v = ——————– . ||L.L^T (phiq-phi0)||

Note : v is not normalised in this implementation since it is used on both side of an equality to know if one should go on the left or the right in the binary tree Parameter: elementLeft : chemPoint of the left element elementRight: chemPoint of the right element v : empty scalar field to store v Returnq: void (v is stored in the empty scalarField)

Definition at line 65 of file binaryNode.C.

References binaryNode< ThermoType >::calcA(), chemPointISAT< ThermoType >::chemistry(), chemPointISAT< ThermoType >::completeSpaceSize(), chemPointISAT< ThermoType >::completeToSimplifiedIndex(), k, chemPointISAT< ThermoType >::LT(), Foam::min(), chemPointISAT< ThermoType >::nActiveSpecies(), chemPointISAT< ThermoType >::phi(), chemPointISAT< ThermoType >::scaleFactor(), Foam::sqr(), and chemPointISAT< ThermoType >::tolerance().

Referenced by binaryNode< ThermoType >::binaryNode().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ calcA()

Foam::scalar calcA ( chemPointISAT< ThermoType > *  elementLeft,
chemPointISAT< ThermoType > *  elementRight 
)

Compute a the product v^T.phih, with phih = (phi0 + phiq)/2.

When travelling in the binary tree, to know in which part of the composition space the query point 'phi' belongs to, v^T.phi is performed. If the result is "> a" then it belongs to the right part (where phiq is), otherwise it belongs to the left part (where phi0 is).

Definition at line 147 of file binaryNode.C.

References binaryNode< ThermoType >::a(), forAll, chemPointISAT< ThermoType >::phi(), and binaryNode< ThermoType >::v_.

Referenced by binaryNode< ThermoType >::binaryNode(), and binaryNode< ThermoType >::calcV().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ leafLeft()

chemPointISAT<ThermoType>*& leafLeft ( )
inline

Access.

Definition at line 139 of file binaryNode.H.

References binaryNode< ThermoType >::leafLeft_.

Referenced by binaryTree< ThermoType >::binaryTreeSearch(), and binaryTree< ThermoType >::treeMin().

Here is the caller graph for this function:

◆ leafRight()

chemPointISAT<ThermoType>*& leafRight ( )
inline

Definition at line 144 of file binaryNode.H.

References binaryNode< ThermoType >::leafRight_.

Referenced by binaryTree< ThermoType >::binaryTreeSearch().

Here is the caller graph for this function:

◆ nodeLeft()

binaryNode<ThermoType>*& nodeLeft ( )
inline

Definition at line 149 of file binaryNode.H.

References binaryNode< ThermoType >::nodeLeft_.

Referenced by binaryTree< ThermoType >::binaryTreeSearch(), binaryTree< ThermoType >::depth(), and binaryTree< ThermoType >::treeMin().

Here is the caller graph for this function:

◆ nodeRight()

binaryNode<ThermoType>*& nodeRight ( )
inline

Definition at line 154 of file binaryNode.H.

References binaryNode< ThermoType >::nodeRight_.

Referenced by binaryTree< ThermoType >::binaryTreeSearch(), and binaryTree< ThermoType >::depth().

Here is the caller graph for this function:

◆ parent()

binaryNode<ThermoType>*& parent ( )
inline

◆ v() [1/2]

const scalarField& v ( ) const
inline

Topology.

Definition at line 166 of file binaryNode.H.

References binaryNode< ThermoType >::v_.

Referenced by binaryTree< ThermoType >::binaryTreeSearch().

Here is the caller graph for this function:

◆ v() [2/2]

scalarField& v ( )
inline

Definition at line 171 of file binaryNode.H.

References binaryNode< ThermoType >::v_.

◆ a() [1/2]

const scalar& a ( ) const
inline

Definition at line 176 of file binaryNode.H.

References binaryNode< ThermoType >::a_.

Referenced by binaryTree< ThermoType >::binaryTreeSearch(), and binaryNode< ThermoType >::calcA().

Here is the caller graph for this function:

◆ a() [2/2]

scalar& a ( )
inline

Definition at line 181 of file binaryNode.H.

References binaryNode< ThermoType >::a_.

Member Data Documentation

◆ leafLeft_

chemPointISAT<ThermoType>* leafLeft_

Element on the left.

Definition at line 55 of file binaryNode.H.

Referenced by binaryNode< ThermoType >::leafLeft().

◆ leafRight_

chemPointISAT<ThermoType>* leafRight_

Element on the right.

Definition at line 58 of file binaryNode.H.

Referenced by binaryNode< ThermoType >::leafRight().

◆ nodeLeft_

binaryNode<ThermoType>* nodeLeft_

Node which follows on the left.

Definition at line 61 of file binaryNode.H.

Referenced by binaryNode< ThermoType >::nodeLeft().

◆ nodeRight_

binaryNode<ThermoType>* nodeRight_

Node which follows on the right.

Definition at line 64 of file binaryNode.H.

Referenced by binaryNode< ThermoType >::nodeRight().

◆ parent_

binaryNode<ThermoType>* parent_

Parent node.

Definition at line 67 of file binaryNode.H.

Referenced by binaryNode< ThermoType >::parent().

◆ v_

◆ a_

scalar a_

The documentation for this class was generated from the following files: