28#include <data/aslBlocks.h>
29#include <acl/aclMath/aclVectorOfElementsDef.h>
34 class ExpressionContainer;
41 template <
typename V>
class DataWithGhostNodes;
47 class DistanceFunction;
51 class AbstractDataWithGhostNodes;
58 class BCond:
public NumMethod
62 const VectorTemplate *
const templ;
88 typedef std::shared_ptr<BCond>
SPBCond;
The class represents several Element.
Virtual class describes general interface for boundary conditions which connect two datas.
const Block & getBlock1()
acl::SPVectorOfElementsData directions1ACL
BCondConnector(const Block &b1, const Block &b2)
void loadDirectionsToACL()
void addGhostPoint(AVec< int > a1, int d1, AVec< int > a2, int d2)
std::vector< int > indices1
std::vector< int > directions2
acl::SPVectorOfElementsData indices1ACL
std::vector< int > directions1
void addGhostPoint(AVec< int > a1, AVec< int > a2)
acl::SPVectorOfElementsData directions2ACL
std::vector< int > indices2
const Block & getBlock2()
acl::SPVectorOfElementsData indices2ACL
Virtual class describes general interface for boundary conditions which connect two datas.
AVec< int > sliceDimentions1
AVec< int > sliceIncrements1
void addGhostSlice2(AVec< int > pB, AVec< int > pE, int dir)
const Block & getBlock1()
AVec< int > sliceIncrements2
AVec< int > sliceDimentions2
void addGhostSlice1(AVec< int > pB, AVec< int > pE, int dir)
BCondConnectorSlice(const Block &b1, const Block &b2, const VectorTemplate *const t)
const Block & getBlock2()
const VectorTemplate *const templ
Virtual class describes general interface for boundary conditions.
const VectorTemplate * getVT()
const VectorTemplate *const templ
BCondDynamic(const Block &b, const VectorTemplate *const t)
acl::SPVectorOfElementsData normalsACL
acl::SPVectorOfElementsData pointsACL
BCondDynamic(const Block &b)
std::vector< int > neighbourIndices
BCond(const Block &b, const VectorTemplate *const t)
std::vector< double > fractions
std::vector< int > indices
acl::SPVectorOfElementsData neighbourIndicesACL
std::vector< int > directions
void loadDirectionsToACL()
acl::SPVectorOfElementsData directionsACL
void addPoint(AVec< int > a, int d=0, double fr=0)
void loadNeighbourIndicesToACL()
const VectorTemplate *const templ
const VectorTemplate * getVT()
acl::SPVectorOfElementsData indicesACL
acl::SPVectorOfElementsData fractionsACL
Virtual class describes general interface for boundary conditions.
AVec< int > sliceIncrements
AVec< int > sliceDimentions
BCondSlice(const Block &b)
BCondSlice(const Block &b, const VectorTemplate *const t)
void addGhostSlice(AVec< int > pB, AVec< int > pE, int dir)
const VectorTemplate *const templ
Virtual class describes general interface for boundary conditions.
acl::VectorOfElements isGhostNode(unsigned int i)
returns expression corresponding to check if the node in i^th direction is ghost one
unique_ptr< TemplateVE > mapTVE
const VectorTemplate * getVT()
acl::VectorOfElements currentPoint
unique_ptr< TemplateVE > cDomainTVE
BCondWithMap(SPDistanceFunction m, SPDistanceFunction cd, const Block &b, const VectorTemplate *const vt)
BCondWithMap(SPDistanceFunction m, const Block &b, const VectorTemplate *const vt)
acl::VectorOfElements isComputationNode(const vector< unsigned int > &ii)
returns expression corresponding to check if nodes in directions ii are computation ones
SPAbstractDataWithGhostNodes map
boundary description for the particular BC
BCondWithMap(SPAbstractDataWithGhostNodes m, SPAbstractDataWithGhostNodes cd, const VectorTemplate *const vt)
const VectorTemplate *const templ
bool pointsListFlag
flag whether the point list to be generated or not
BCondWithMap(SPAbstractDataWithGhostNodes m, const VectorTemplate *const vt)
acl::VectorOfElements isComputationNode(unsigned int i)
returns expression corresponding to check if the node in i^th direction is computation one
SPAbstractDataWithGhostNodes computationalDomain
Computational domain which contains all boundaries and the particular boundary as well.
BCondWithMap(SPAbstractDataWithGhostNodes m, SPDistanceFunction cd, const VectorTemplate *const vt)
SPDistanceFunction computationalDomainDF
acl::VectorOfElements isGhostNode()
returns expression corresponding to check if the current node is ghost one
virtual void initMapInfrastructure(acl::ExpressionContainer &ec)
initialize mapTVE and cDomainTVE
acl::VectorOfElements isComputationNode()
returns expression corresponding to check if the current node is computation one
Defines set of vectros with several properties.
void addSliceY(BCond &, int y)
void addSliceZ(BCond &, int z)
void addSliceX(BCond &, int x)
SlicesNames
defines names of walls of a box
SPDataWrapperACLData generateDataContainerACL_SP(const Block &b, unsigned int n=1)
generates pointer to ACL Data field with n components
std::shared_ptr< DistanceFunction > SPDistanceFunction
Advanced Computational Language.
shared_ptr< VectorOfElementsData > SPVectorOfElementsData
Advanced Simulation Library.
DataWithGhostNodes< acl::VectorOfElementsData > DataWithGhostNodesACLData
void addSlices(BCond &, const vector< SlicesNames > &)
std::shared_ptr< AbstractDataWithGhostNodes > SPAbstractDataWithGhostNodes
std::shared_ptr< BCond > SPBCond
DataWithGhostNodes< acl::VectorOfElements > DataWithGhostNodesACL
std::shared_ptr< DataWithGhostNodesACL > SPDataWithGhostNodesACL
std::shared_ptr< DataWithGhostNodesACLData > SPDataWithGhostNodesACLData