asl::BCLinearGrowthMap1 Class Reference
Numerics » Boundary Conditions

Boundary condition that makes gradient proportional to a surface concentration. More...

`#include <aslCrystalGrowthBC.h>`

Inheritance diagram for asl::BCLinearGrowthMap1:
[legend]
Collaboration diagram for asl::BCLinearGrowthMap1:
[legend]

## Public Types

typedef SPAbstractDataWithGhostNodes | Data
typedef SPAbstractDataWithGhostNodes | Data

## Public Member Functions

| BCLinearGrowthMap1 (Data d, const acl::VectorOfElements &cEq, const acl::VectorOfElements &beta, Data map, const VectorTemplate *const t)
| BCLinearGrowthMap1 (Data d, const acl::VectorOfElements &cEq, const acl::VectorOfElements &beta, Data map, Data computationalDomain, const VectorTemplate *const t)
| ~BCLinearGrowthMap1 ()
virtual void | execute ()
| Executes the numerical procedure. More...
virtual void | init ()
| Builds the necesery internal data and kernels. More...
| BCLinearGrowthMap1 (Data d, const acl::VectorOfElements &cEq, const acl::VectorOfElements &beta, Data map, const VectorTemplate *const t)
| BCLinearGrowthMap1 (Data d, const acl::VectorOfElements &cEq, const acl::VectorOfElements &beta, Data map, Data computationalDomain, const VectorTemplate *const t)
| ~BCLinearGrowthMap1 ()
virtual void | execute ()
| Executes the numerical procedure. More...
virtual void | init ()
| Builds the necesery internal data and kernels. More...
Public Member Functions inherited from asl::BCondWithMap
const VectorTemplate * | getVT ()
const VectorTemplate * | getVT ()
Public Member Functions inherited from asl::NumMethod
virtual | ~NumMethod ()
virtual | ~NumMethod ()

## Public Attributes

acl::SPKernel | kernel

## Protected Attributes

Data | data
acl::VectorOfElements | cEq
acl::VectorOfElements | beta
Protected Attributes inherited from asl::BCondWithMap
bool | pointsListFlag
| flag whether the point list to be generated or not More...
acl::VectorOfElements | currentPoint
const VectorTemplate *const | templ
Block | bl
| block More...
SPAbstractDataWithGhostNodes | map
| boundary description for the particular BC More...
SPDistanceFunction | mapDF
SPAbstractDataWithGhostNodes | computationalDomain
| Computational domain which contains all boundaries and the particular boundary as well. More...
SPDistanceFunction | computationalDomainDF
unique_ptr< TemplateVE > | mapTVE
unique_ptr< TemplateVE > | cDomainTVE

## Additional Inherited Members

Protected Member Functions inherited from asl::BCondWithMap
virtual void | initMapInfrastructure (acl::ExpressionContainer &ec)
| initialize mapTVE and cDomainTVE More...
acl::VectorOfElements | isGhostNode (unsigned int i)
| returns expression corresponding to check if the node in i^th direction is ghost one More...
acl::VectorOfElements | isComputationNode (unsigned int i)
| returns expression corresponding to check if the node in i^th direction is computation one More...
acl::VectorOfElements | isComputationNode (const vector< unsigned int > &ii)
| returns expression corresponding to check if nodes in directions `ii` are computation ones More...
acl::VectorOfElements | isGhostNode ()
| returns expression corresponding to check if the current node is ghost one More...
acl::VectorOfElements | isComputationNode ()
| returns expression corresponding to check if the current node is computation one More...
| BCondWithMap (SPAbstractDataWithGhostNodes m, const VectorTemplate *const vt)
| BCondWithMap (SPDistanceFunction m, const Block &b, const VectorTemplate *const vt)
| BCondWithMap (SPAbstractDataWithGhostNodes m, SPAbstractDataWithGhostNodes cd, const VectorTemplate *const vt)
| BCondWithMap (SPAbstractDataWithGhostNodes m, SPDistanceFunction cd, const VectorTemplate *const vt)
| BCondWithMap (SPDistanceFunction m, SPDistanceFunction cd, const Block &b, const VectorTemplate *const vt)
virtual void | initMapInfrastructure (acl::ExpressionContainer &ec)
| initialize mapTVE and cDomainTVE More...
acl::VectorOfElements | isGhostNode (unsigned int i)
| returns expression corresponding to check if the node in i^th direction is ghost one More...
acl::VectorOfElements | isComputationNode (unsigned int i)
| returns expression corresponding to check if the node in i^th direction is computation one More...
acl::VectorOfElements | isComputationNode (const vector< unsigned int > &ii)
| returns expression corresponding to check if nodes in directions `ii` are computation ones More...
acl::VectorOfElements | isGhostNode ()
| returns expression corresponding to check if the current node is ghost one More...
acl::VectorOfElements | isComputationNode ()
| returns expression corresponding to check if the current node is computation one More...
| BCondWithMap (SPAbstractDataWithGhostNodes m, const VectorTemplate *const vt)
| BCondWithMap (SPDistanceFunction m, const Block &b, const VectorTemplate *const vt)
| BCondWithMap (SPAbstractDataWithGhostNodes m, SPAbstractDataWithGhostNodes cd, const VectorTemplate *const vt)
| BCondWithMap (SPAbstractDataWithGhostNodes m, SPDistanceFunction cd, const VectorTemplate *const vt)
| BCondWithMap (SPDistanceFunction m, SPDistanceFunction cd, const Block &b, const VectorTemplate *const vt)

## Detailed Description

Boundary condition that makes gradient proportional to a surface concentration.

The boundary condition corresponds to different system with surface reaction.

Fist system is temperature reliase during the crystal growth process from melt. There growth velocity defined by the following equation

\[ \vec v = \vec n \beta (T -T^{eq}) \]

where \( \beta \) is a kinetic coefficient and \( T^{eq} \) is an equilibrium temperature. This condition can be expressed in terms of flux for puarlly diffusion equation

\[ \vec j = D \vec \nabla T, \]

\[ \vec j = v L, \]

where \( L \) is latent heat. These two equation allow to write an expression for temperature on the boundary as follows:

\[ \beta^* (T-T^{eq}) = \vec n \cdot \vec \nabla T, \]

where \( \beta^* \equiv \frac{\beta L}{D} \) it corresponds to `::beta`. In the discrete case the two eequations for flux can not be combines so simply. Fist of all let us introduce two help values surface area per ghost node and flux per ghost point. There is set of template directions dirrectod towards computational domain \( \Omega\). The flux per ghost point can be expressed as follows

\[ j^{gh} = \sum_{i \in \Omega} w_i(T_i - T_0) \]

It is seen that this equation doen not contains the surface area explicetely.

\[ j^{gh} = S^{gh} \beta^* (T-T^{eq}) \]

. Note, \( T \) is temperature on the surface It can be expressed as alinear combunation of \( T_0 \) and \( T_i \) like this:

\[ T = A T_0 + \sum_{i \in \Omega} B_i T_i \]

Than the \( T_0 \) can be computed as follows:

\[ T_0 = \frac{ \sum_{i\in \Omega} (w_i - S^{gh}\beta^* B_i ) T_i + S^{gh}\beta^* T^{eq} } {S^{gh}\beta^* A + \sum_{i\in \Omega} w_i} \]

The coefficients \( A \) and \( B_i \) can be chosen as follows.

\[ T = \left(\sum_{i \in \Omega}\vec n \cdot\vec a_i\right)^{-1} \sum_{i \in \Omega} (T_0(1-x_i) + T_i x_i) \vec n \cdot\vec a_i \]

thus

\[ A = \left(\sum_{i \in \Omega}\vec n \cdot\vec a_i\right)^{-1} \sum_{i \in \Omega} (1-x_i) \vec n \cdot\vec a_i \]

\[ B_i = \left(\sum_{i \in \Omega}\vec n \cdot\vec a_i\right)^{-1} x_i \vec n \cdot\vec a_i \]

Note
  The function is realized for 1 component only!

Definition at line 120 of file aslCrystalGrowthBC.h.

## Member Typedef Documentation

## Data [1/2]

typedef SPAbstractDataWithGhostNodes asl::BCLinearGrowthMap1::Data

Definition at line 123 of file aslCrystalGrowthBC.h.

## Data [2/2]

typedef SPAbstractDataWithGhostNodes asl::BCLinearGrowthMap1::Data

Definition at line 123 of file aslCrystalGrowthBC.h.

## Constructor & Destructor Documentation

## BCLinearGrowthMap1() [1/4]

asl::BCLinearGrowthMap1::BCLinearGrowthMap1 | ( | Data | d,
|  | const acl::VectorOfElements & | cEq,
|  | const acl::VectorOfElements & | beta,
|  | Data | map,
|  | const VectorTemplate *const | t
| ) |  |

## BCLinearGrowthMap1() [2/4]

asl::BCLinearGrowthMap1::BCLinearGrowthMap1 | ( | Data | d,
|  | const acl::VectorOfElements & | cEq,
|  | const acl::VectorOfElements & | beta,
|  | Data | map,
|  | Data | computationalDomain,
|  | const VectorTemplate *const | t
| ) |  |

## ~BCLinearGrowthMap1() [1/2]

asl::BCLinearGrowthMap1::~BCLinearGrowthMap1 | ( |  | ) |

## BCLinearGrowthMap1() [3/4]

asl::BCLinearGrowthMap1::BCLinearGrowthMap1 | ( | Data | d,
|  | const acl::VectorOfElements & | cEq,
|  | const acl::VectorOfElements & | beta,
|  | Data | map,
|  | const VectorTemplate *const | t
| ) |  |

## BCLinearGrowthMap1() [4/4]

asl::BCLinearGrowthMap1::BCLinearGrowthMap1 | ( | Data | d,
|  | const acl::VectorOfElements & | cEq,
|  | const acl::VectorOfElements & | beta,
|  | Data | map,
|  | Data | computationalDomain,
|  | const VectorTemplate *const | t
| ) |  |

## ~BCLinearGrowthMap1() [2/2]

asl::BCLinearGrowthMap1::~BCLinearGrowthMap1 | ( |  | ) |

## Member Function Documentation

## execute() [1/2]

virtual void asl::BCLinearGrowthMap1::execute | ( |  | ) |

virtual

Executes the numerical procedure.

Implements asl::NumMethod.

## execute() [2/2]

virtual void asl::BCLinearGrowthMap1::execute | ( |  | ) |

virtual

Executes the numerical procedure.

Implements asl::NumMethod.

## init() [1/2]

virtual void asl::BCLinearGrowthMap1::init | ( |  | ) |

virtual

Builds the necesery internal data and kernels.

Implements asl::NumMethod.

## init() [2/2]

virtual void asl::BCLinearGrowthMap1::init | ( |  | ) |

virtual

Builds the necesery internal data and kernels.

Implements asl::NumMethod.

## Member Data Documentation

## beta

acl::VectorOfElements asl::BCLinearGrowthMap1::beta

protected

Definition at line 128 of file aslCrystalGrowthBC.h.

## cEq

acl::VectorOfElements asl::BCLinearGrowthMap1::cEq

protected

Definition at line 127 of file aslCrystalGrowthBC.h.

## data

Data asl::BCLinearGrowthMap1::data

protected

Definition at line 126 of file aslCrystalGrowthBC.h.

## kernel

acl::SPKernel asl::BCLinearGrowthMap1::kernel

Definition at line 124 of file aslCrystalGrowthBC.h.

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

- /build/asl-1Fw6fH/asl-0.1.7/debian/tmp/usr/include/ASL/num/aslCrystalGrowthBC.h