ASL  0.1.7
Advanced Simulation Library
Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
asl::BCLinearGrowthMap1 Class Reference

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

#include <aslCrystalGrowthBC.h>

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

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...
 
- Public Member Functions inherited from asl::BCondWithMap
const VectorTemplategetVT ()
 
- Public Member Functions inherited from asl::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< TemplateVEmapTVE
 
unique_ptr< TemplateVEcDomainTVE
 

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)
 

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

Definition at line 123 of file aslCrystalGrowthBC.h.

Constructor & Destructor Documentation

◆ BCLinearGrowthMap1() [1/2]

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

◆ BCLinearGrowthMap1() [2/2]

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

◆ ~BCLinearGrowthMap1()

asl::BCLinearGrowthMap1::~BCLinearGrowthMap1 ( )

Member Function Documentation

◆ execute()

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

Executes the numerical procedure.

Implements asl::NumMethod.

◆ init()

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: