# PhasicFlow: src/phasicFlow/containers/pointField/boundaryField/generalBoundary/generalBoundary.hpp Source File
PhasicFlow is an open-source parallel DEM (discrete element method) package for simulating granular flow. It is developed in C++ and can be exectued on both GPU (like CUDA) and CPU.

generalBoundary.hpp
Go to the documentation of this file.
/*------------------------------- phasicFlow ---------------------------------
O C enter of
O O E ngineering and
O O M ultiscale modeling of
OOOOOOO F luid flow
------------------------------------------------------------------------------
Copyright (C): www.cemf.ir
email: hamid.r.norouzi AT gmail.com
------------------------------------------------------------------------------
Licence:
This file is part of phasicFlow code. It is a free software for simulating
granular and multiphase flows. You can redistribute it and/or modify it under
the terms of GNU General Public License v3 or any other later versions.
phasicFlow is distributed to help others in their research in the field of
granular and multiphase flows, but WITHOUT ANY WARRANTY; without even the
implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-----------------------------------------------------------------------------*/
#ifndef __generalBoundary_hpp__
#define __generalBoundary_hpp__
// from STL
#include <any>
// from phasicFlow
#include "types.hpp"
#include "observer.hpp"
#include "boundaryBase.hpp"
namespace pFlow
{
//- forward
class pointStructure;
class Time;
class generalBoundary
:
public observer
{
private:
const boundaryBase& boundary_;
const pointStructure& pStruct_;
const bool isBoundaryMaster_;
static inline
const message defaultMessage_{message::BNDR_RESET};
public:
TypeInfo("generalBoundary");
generalBoundary(
const boundaryBase& boundary,
const pointStructure& pStruct,
const word& dataType,
const word& option);
~generalBoundary()override = default;
inline
uint32 thisBoundaryIndex()const
{
return boundary_.thisBoundaryIndex();
}
inline
uint32 mirrorBoundaryindex()const
{
return boundary_.mirrorBoundaryIndex();
}
inline
auto size()const
{
return boundary_.size();
}
inline
auto capacity()const
{
return boundary_.capacity();
}
inline
auto neighborProcSize()const
{
return boundary_.neighborProcSize();
}
inline
int neighborProcessorNo()const
{
return boundary_.neighborProcessorNo();
}
inline
int thisProcessorNo()const
{
return boundary_.thisProcessorNo();
}
inline
const auto& boundary()const
{
return boundary_;
}
inline
const auto& indexList()const
{
return boundary_.indexList();
}
inline
const auto& mirrorBoundary()const
{
return boundary_.mirrorBoundary();
}
inline
const word& boundaryName()const
{
return boundary_.name();
}
inline
const word& type()const
{
return boundary_.type();
}
inline
const auto& pStruct()const
{
return pStruct_;
}
inline
bool isBoundaryMaster()const
{
return isBoundaryMaster_;
}
const Time& time()const;
};
} // pFlow
#endif
pFlow::boundaryBase::neighborProcSize
virtual uint32 neighborProcSize() const
Return number of points in the neighbor processor boundary.
Definition: boundaryBase.hpp:382
pFlow::observer
Definition: observer.hpp:33
pFlow::generalBoundary::mirrorBoundaryindex
uint32 mirrorBoundaryindex() const
Definition: generalBoundary.hpp:72
pFlow::generalBoundary::indexList
const auto & indexList() const
Definition: generalBoundary.hpp:114
pFlow::generalBoundary::generalBoundary
generalBoundary(const boundaryBase &boundary, const pointStructure &pStruct, const word &dataType, const word &option)
Definition: generalBoundary.cpp:25
pFlow::generalBoundary::isBoundaryMaster
bool isBoundaryMaster() const
Definition: generalBoundary.hpp:144
pFlow::message
Definition: message.hpp:33
pFlow::generalBoundary::TypeInfo
TypeInfo("generalBoundary")
pFlow::boundaryBase::thisBoundaryIndex
uint32 thisBoundaryIndex() const
Definition: boundaryBase.hpp:300
types.hpp
pFlow::generalBoundary::thisProcessorNo
int thisProcessorNo() const
Definition: generalBoundary.hpp:102
observer.hpp
boundaryBase.hpp
pFlow::generalBoundary::neighborProcSize
auto neighborProcSize() const
Definition: generalBoundary.hpp:90
pFlow::uint32
unsigned int uint32
Definition: builtinTypes.hpp:56
pFlow::generalBoundary::defaultMessage_
static const message defaultMessage_
Definition: generalBoundary.hpp:51
pFlow::word
std::string word
Definition: builtinTypes.hpp:64
pFlow::boundaryBase::neighborProcessorNo
int neighborProcessorNo() const
Definition: boundaryBase.hpp:282
pFlow::boundaryBase::mirrorBoundary
boundaryBase & mirrorBoundary()
Definition: boundaryBase.cpp:259
pFlow::boundaryBase::name
const word & name() const
Definition: boundaryBase.hpp:258
pFlow::boundaryBase::thisProcessorNo
int thisProcessorNo() const
Definition: boundaryBase.hpp:288
pFlow::generalBoundary::isBoundaryMaster_
const bool isBoundaryMaster_
Definition: generalBoundary.hpp:48
pFlow::generalBoundary::pStruct
const auto & pStruct() const
Definition: generalBoundary.hpp:138
pFlow::generalBoundary::pStruct_
const pointStructure & pStruct_
Definition: generalBoundary.hpp:46
pFlow::generalBoundary::thisBoundaryIndex
uint32 thisBoundaryIndex() const
Definition: generalBoundary.hpp:66
pFlow
Definition: demGeometry.hpp:27
pFlow::boundaryBase::type
const word & type() const
Definition: boundaryBase.hpp:252
pFlow::message::BNDR_RESET
@ BNDR_RESET
Definition: message.hpp:48
pFlow::generalBoundary::type
const word & type() const
Definition: generalBoundary.hpp:132
pFlow::pointStructure
Definition: pointStructure.hpp:34
pFlow::boundaryBase::indexList
const auto & indexList() const
Definition: boundaryBase.hpp:328
pFlow::generalBoundary::time
const Time & time() const
Definition: generalBoundary.cpp:39
pFlow::generalBoundary::boundary_
const boundaryBase & boundary_
Definition: generalBoundary.hpp:44
pFlow::boundaryBase
Definition: boundaryBase.hpp:42
pFlow::boundaryBase::size
auto size() const
Definition: boundaryBase.hpp:270
pFlow::generalBoundary::boundary
const auto & boundary() const
Definition: generalBoundary.hpp:108
pFlow::generalBoundary::~generalBoundary
~generalBoundary() override=default
pFlow::boundaryBase::capacity
auto capacity() const
Definition: boundaryBase.hpp:276
pFlow::generalBoundary::size
auto size() const
Definition: generalBoundary.hpp:78
pFlow::generalBoundary::mirrorBoundary
const auto & mirrorBoundary() const
Definition: generalBoundary.hpp:120
pFlow::generalBoundary::capacity
auto capacity() const
Definition: generalBoundary.hpp:84
pFlow::boundaryBase::mirrorBoundaryIndex
uint32 mirrorBoundaryIndex() const
Definition: boundaryBase.hpp:306
pFlow::generalBoundary
Definition: generalBoundary.hpp:38
pFlow::generalBoundary::neighborProcessorNo
int neighborProcessorNo() const
Definition: generalBoundary.hpp:96
pFlow::generalBoundary::boundaryName
const word & boundaryName() const
Definition: generalBoundary.hpp:126
pFlow::Time
Definition: Time.hpp:37