ASL
0.1.7
Advanced Simulation Library
|
Boundary condition that makes gradient proportional to a surface concentration. More...
#include <aslCrystalGrowthBC.h>
Public Types | |
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... | |
![]() | |
const VectorTemplate * | getVT () |
![]() | |
virtual | ~NumMethod () |
Public Attributes | |
acl::SPKernel | kernel |
Protected Attributes | |
Data | data |
acl::VectorOfElements | cEq |
acl::VectorOfElements | beta |
![]() | |
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 | |
![]() | |
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) | |
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 \]
Definition at line 120 of file aslCrystalGrowthBC.h.
Definition at line 123 of file aslCrystalGrowthBC.h.
asl::BCLinearGrowthMap1::BCLinearGrowthMap1 | ( | Data | d, |
const acl::VectorOfElements & | cEq, | ||
const acl::VectorOfElements & | beta, | ||
Data | map, | ||
const VectorTemplate *const | t | ||
) |
asl::BCLinearGrowthMap1::BCLinearGrowthMap1 | ( | Data | d, |
const acl::VectorOfElements & | cEq, | ||
const acl::VectorOfElements & | beta, | ||
Data | map, | ||
Data | computationalDomain, | ||
const VectorTemplate *const | t | ||
) |
asl::BCLinearGrowthMap1::~BCLinearGrowthMap1 | ( | ) |
|
virtual |
Executes the numerical procedure.
Implements asl::NumMethod.
|
virtual |
Builds the necesery internal data and kernels.
Implements asl::NumMethod.
|
protected |
Definition at line 128 of file aslCrystalGrowthBC.h.
|
protected |
Definition at line 127 of file aslCrystalGrowthBC.h.
|
protected |
Definition at line 126 of file aslCrystalGrowthBC.h.
acl::SPKernel asl::BCLinearGrowthMap1::kernel |
Definition at line 124 of file aslCrystalGrowthBC.h.