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

Bondary condition corresponding to a free surface. More...

#include <aslFDElasticityBC.h>

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

Public Member Functions

 BCZeroStressMap (SPAbstractDataWithGhostNodes displacement, acl::VectorOfElements lambda, acl::VectorOfElements mu, SPAbstractDataWithGhostNodes map, const VectorTemplate *const t)
 
 ~BCZeroStressMap ()
 
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 ()
 

Protected Attributes

SPAbstractDataWithGhostNodes displacement
 
acl::VectorOfElements lambda
 
acl::VectorOfElements mu
 
acl::SPKernel kernel
 
- 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

Bondary condition corresponding to a free surface.

The class is a realisation of 1st order explicit free boundary conditions for rectangular grid and arbitrary geometry. The geometry is defined by a levelset The algorithm computes value in a ghost node. This is done by cell subdivision. The unit cell containing the ghost node in the center. It is splited into elementary cells the spliting is described by the corresponding VTObjects.

The gradient in the elementary cells is computed by the following expression:

\[ \nabla_i u_j = (u^k_j - u^0_j E_k) T_{ki}, \]

where \( u^k_j\) is the \( k^{th}\) point of the elementary cell, \( E_k \) is the vector filled by 1 and \( T_{ki} \) is the baricentric coordinates transformation matrix.

The free boundary condition has the following expression:

\[ \lambda n_i\nabla_k u_k+\mu n_j \left( \nabla_i u_j + \nabla_j u_i \right) = F_i, \]

where \( \lambda \) is a Lame first parameter, \( \mu \) is shear modulus. This expression can be rewriten in terms of the elementary cell expresion:

\[ \lambda n_i(u^k_j - u^0_j E_k) T_{kj} + \mu n_j \left( (u^k_j - u^0_j E_k) T_{ki} + (u^k_i - u^0_i E_k) T_{kj} \right) = F_i, \]

This equation can be rewritten in form of \( A_{ij} u^0_j = b_i \):

\[ A_{ij}=\lambda n_i E_kT_{kj} + \mu n_j E_k T_{ki} + \mu n_l E_k T_{kl} \delta_{ij}, \]

\[ b_i = \lambda n_i u^k_j T_{kj} + \mu n_j (u^k_j T_{ki}+ u^k_i T_{kj}) - F_i. \]

The solution of the system of equations is the seeking boundary condition.

The class should obtain list of the ghost points

Definition at line 194 of file aslFDElasticityBC.h.

Constructor & Destructor Documentation

◆ BCZeroStressMap()

asl::BCZeroStressMap::BCZeroStressMap ( SPAbstractDataWithGhostNodes  displacement,
acl::VectorOfElements  lambda,
acl::VectorOfElements  mu,
SPAbstractDataWithGhostNodes  map,
const VectorTemplate *const  t 
)

◆ ~BCZeroStressMap()

asl::BCZeroStressMap::~BCZeroStressMap ( )

Member Function Documentation

◆ execute()

virtual void asl::BCZeroStressMap::execute ( )
virtual

Executes the numerical procedure.

Implements asl::NumMethod.

◆ init()

virtual void asl::BCZeroStressMap::init ( )
virtual

Builds the necesery internal data and kernels.

Implements asl::NumMethod.

Member Data Documentation

◆ displacement

SPAbstractDataWithGhostNodes asl::BCZeroStressMap::displacement
protected

Definition at line 197 of file aslFDElasticityBC.h.

◆ kernel

acl::SPKernel asl::BCZeroStressMap::kernel
protected

Definition at line 200 of file aslFDElasticityBC.h.

◆ lambda

acl::VectorOfElements asl::BCZeroStressMap::lambda
protected

Definition at line 198 of file aslFDElasticityBC.h.

◆ mu

acl::VectorOfElements asl::BCZeroStressMap::mu
protected

Definition at line 199 of file aslFDElasticityBC.h.


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