67 #include <lifev/core/LifeV.hpp> 69 #include <lifev/core/util/LifeDebug.hpp> 71 #include <lifev/core/array/VectorEpetra.hpp> 73 #include <lifev/core/mesh/MarkerDefinitions.hpp> 75 #include <lifev/core/fem/BCIdentifier.hpp> 76 #include <lifev/core/fem/DOF.hpp> 77 #include <lifev/core/fem/CurrentFE.hpp> 78 #include <lifev/core/fem/CurrentFEManifold.hpp> 79 #include <lifev/core/fem/BCVector.hpp> 80 #include <lifev/core/fem/BCFunction.hpp> 218 const UInt& numberOfComponents );
270 const UInt& numberOfComponents );
320 const UInt& numberOfComponents );
411 std::ostream&
showMe (
bool verbose =
false, std::ostream& outStream = std::cout )
const;
443 const Real& z,
const ID& iComponent )
const;
456 const Real& z,
const ID& iComponent,
const Real& u )
const;
548 std::string
name()
const;
BCBase & operator=(const BCBase &bcBase)
The assignment operator for BCBase.
BCBase(const bcName_Type &name, const bcFlag_Type &flag, const bcType_Type &type, const bcMode_Type &mode, BCVectorBase &vector, const bcComponentsVec_Type &components)
Constructor for BCBase to prescribe a boundary condition from a vector of dof values.
bool isBetaCoeffAVector() const
Returns true if beta coefficient (in BC Vector ) is a VectorEpetra (betaVec) (default betaCoef=1) ...
bool isRobinCoeffAVector() const
Returns true if robin coefficient (in BC Vector ) is a VectorEpetra, false if it is scalar (default a...
bcMode_Type M_mode
the boundary condition mode of application
BCBase(const bcName_Type &name, const bcFlag_Type &flag, const bcType_Type &type, const bcMode_Type &mode, BCVectorBase &bcVector, const UInt &numberOfComponents)
Constructor for BCBase to prescribe a boundary condition from a vector of dof values without specifyi...
BCBase(const bcName_Type &name, const bcFlag_Type &flag, const bcType_Type &type, const bcMode_Type &mode, BCFunctionUDepBase &bcFunctionFEVectorDependent, const UInt &numberOfComponents)
Constructor for BCBase without specifying components for Full mode problems. The BC function depends ...
bcType_Type type() const
Returns the boundary condition type.
BCFunctionUDepBase - class that holds the function used for prescribing boundary conditions.
markerID_Type bcFlag_Type
Real betaCoeffVector(const ID &iDof, const ID &iComponent) const
Returns the value of the beta coefficient vector (in BC Vector)
Real robinCoeffVector(const ID &iDof, const ID &iComponent) const
Returns the value of the robin coefficient vector (in BC Vector)
bcComponentsVec_Type M_components
void addBCIdentifier(BCIdentifierBase *identifierToAddPtr)
Adds a new identifier to the list.
Real betaCoeff() const
Returns the value of the beta coefficient (in BC Vector)
BCHandler - class for handling boundary conditions.
std::string M_name
name of the boundary condition
bcFlag_Type flag() const
Returns the flag associated to the boundary condition name.
std::shared_ptr< BCVectorBase > M_bcVector
Pointer to a user given BC vector.
bcType_Type M_type
the boundary condition type
BCBase(const bcName_Type &name, const bcFlag_Type &flag, const bcType_Type &type, const bcMode_Type &mode, BCFunctionBase &bcFunction, const UInt &numberOfComponents)
Constructor for BCBase without specifying components for without list of components for Full mode pro...
bool isDataAVector() const
Returns True if a FE BCVector has been provided to the class, False otherwise.
ID markerID_Type
markerID_Type is the type used to store the geometric entity marker IDs
void updateInverseJacobian(const UInt &iQuadPt)
std::shared_ptr< BCFunctionBase > M_bcFunction
the list of components involved in this BC
BCBase(const bcName_Type &name, const bcFlag_Type &flag, const bcType_Type &type, const bcMode_Type &mode, BCFunctionBase &bcFunction, const bcComponentsVec_Type &components)
Constructor for BCBase.
Real operator()(const Real &t, const Real &x, const Real &y, const Real &z, const ID &iComponent) const
Overloading function operator by calling the BCFunctionBase user specified function.
BCFunctionBase - class that holds the function used for prescribing boundary conditions.
UInt numberOfComponents() const
Returns the number of components involved in this boundary condition.
std::vector< ID > bcComponentsVec_Type
bool M_finalized
True, when M_idVector is finalized.
BCVectorBase - class that holds the FE vectors used for prescribing boundary conditions.
BCBase(const bcName_Type &name, const bcFlag_Type &flag, const bcType_Type &type, const bcMode_Type &mode, BCFunctionUDepBase &bcFunctionFEVectorDependent)
Constructor for BCBase without specifying components for Scalar, Tangential or Normal mode problems...
void setBCFunction(const BCFunctionBase &bcFunction)
set BCFunctionBase boundary condition
bcMode_Type mode() const
Returns the boundary condition mode.
void setBCVector(const BCVectorBase &bcVector)
set BCVectorBase boundary condition
bool M_isStored_BcFunctionVectorDependent
True if a FE BCVector has been provided.
BCBase()
Empty constructor.
const int & offset() const
Returns the offset associated to this boundary condition.
friend bool operator<(const BCBase &bcBase1, const BCBase &bcBase2)
Overloading "less-than" operator between BCBase objects.
bool finalized() const
Returns whether the list is finalized and the vector of ID's is then accessible.
std::shared_ptr< BCFunctionUDepBase > M_bcFunctionFEVectorDependent
Pointer to a user defined BC function (depending on a generic FE vector)
Real operator()(const ID &iDof, const ID &iComponent) const
Overloading function operator by querying the BCVector in DOF iDof and component iComponent.
BCBase(const bcName_Type &name, const bcFlag_Type &flag, const bcType_Type &type, const bcMode_Type &mode, BCVectorBase &bcVector)
Constructor for BCBase to prescribe a boundary condition from a vector of dof values without specifyi...
bool isUDep() const
Returns True if the BCBase is based on a BCFunctionUDepBase function, False otherwise.
BCIdentifierBase - Base class holding DOF identifiers for implementing BC.
int M_offset
boundary condition offset
Real resistanceCoeff() const
Returns the value of the resistance coefficient (in BC Vector)
std::ostream & showMe(bool verbose=false, std::ostream &outStream=std::cout) const
Method that writes info in output.
void setOffset(int bcOffset)
Set the BC offset.
double Real
Generic real data.
BCBase(const bcName_Type &name, const bcFlag_Type &flag, const bcType_Type &type, const bcMode_Type &mode, BCFunctionBase &bcFunction)
Constructor for BCBase without specifying components for Scalar, Tangential or Normal mode problems...
const BCIdentifierBase * operator[](const ID &i) const
Returns a pointer to the (i)-th element of the list of identifiers.
friend bool operator==(const BCBase &bcBase, const bcFlag_Type flag)
Overloading "is-equal" operator for BCBase objects.
void setType(const bcType_Type &bcType)
Set the BC type.
void setBCFunction(const BCFunctionUDepBase &bcFunctionFEVectorDependent)
set BCFunctionUDepBase boundary condition
ID component(const ID i) const
Returns the index of the component of the solution associated to the iComponent-th component prescrib...
const BCFunctionBase * pointerToFunctor() const
Returns a pointer to the BCFunctionBase object.
Real operator()(const Real &t, const Real &x, const Real &y, const Real &z, const ID &iComponent, const Real &u) const
Overloading function operator by calling the BCFunctionUDepBase user specified function.
UInt list_size() const
Returns the size of the identifiers list.
void copyIdSetIntoIdVector()
bcFlag_Type M_flag
flag identifying a specific part of the mesh boundary
std::vector< std::shared_ptr< BCIdentifierBase > > M_idVector
container for id's when the list is finalized
std::string name() const
Returns the boundary condition name.
Real robinCoeff() const
Returns the value of the robin coefficient (in BC Vector)
const BCFunctionUDepBase * pointerToFunctorUDep() const
Returns a pointer to the BCFunctionUDepBase object.
BCBase(const bcName_Type &name, const bcFlag_Type &flag, const bcType_Type &type, const bcMode_Type &mode, BCFunctionUDepBase &bcFunctionFEVectorDependent, const bcComponentsVec_Type &components)
Constructor for BCBase. The BC function depends on a generic FE vector (e.g. the solution at the prev...
uint32_type UInt
generic unsigned integer (used mainly for addressing)
const BCVectorBase * pointerToBCVector() const
Returns a pointer to the BCVector object.
BCBase(const BCBase &bcBase)
Copy constructor for BCBase.