KratosMultiphysics
KRATOS Multiphysics (Kratos) is a framework for building parallel, multi-disciplinary simulation software, aiming at modularity, extensibility, and high performance. Kratos is written in C++, and counts with an extensive Python interface.
Classes | Public Types | List of all members
Kratos::CompoundNosesBoundingBox Class Reference

Short class definition. More...

#include <compound_noses_bounding_box.hpp>

Inheritance diagram for Kratos::CompoundNosesBoundingBox:
Collaboration diagram for Kratos::CompoundNosesBoundingBox:

Classes

struct  BoxNoseVariables
 

Public Types

typedef array_1d< double, 3 > PointType
 
typedef ModelPart::NodeType NodeType
 
typedef ModelPart::NodesContainerType NodesContainerType
 
typedef NodesContainerType::Pointer NodesContainerTypePointer
 
typedef BeamMathUtils< doubleBeamMathUtilsType
 
typedef Quaternion< doubleQuaternionType
 
typedef ModelPart::ElementType ElementType
 
typedef ElementType::GeometryType GeometryType
 
- Public Types inherited from Kratos::SpatialBoundingBox
typedef array_1d< double, 3 > PointType
 
typedef ModelPart::NodeType NodeType
 
typedef ModelPart::NodesContainerType NodesContainerType
 
typedef NodesContainerType::Pointer NodesContainerTypePointer
 
typedef BeamMathUtils< doubleBeamMathUtilsType
 
typedef Quaternion< doubleQuaternionType
 

Public Member Functions

Type Definitions
 KRATOS_CLASS_POINTER_DEFINITION (CompoundNosesBoundingBox)
 Pointer definition of CompoundNosesBoundingBox. More...
 
Life Cycle
 CompoundNosesBoundingBox ()
 Default constructor. More...
 
 CompoundNosesBoundingBox (Parameters CustomParameters)
 
 CompoundNosesBoundingBox (Vector Radius, Vector RakeAngles, Vector ClearanceAngles, Matrix Centers, Vector Convexities, Vector Velocity, Vector AngularVelocity, Vector UpperPoint, Vector LowerPoint, Matrix InitialLocalMatrix)
 
CompoundNosesBoundingBoxoperator= (CompoundNosesBoundingBox const &rOther)
 Assignment operator. More...
 
 CompoundNosesBoundingBox (CompoundNosesBoundingBox const &rOther)
 Copy constructor. More...
 
virtual ~CompoundNosesBoundingBox ()
 Destructor. More...
 
Operations
double GetRadius (const PointType &rPoint) override
 
PointType GetCenter (const PointType &rPoint) override
 
void UpdateBoxPosition (const double &rCurrentTime) override
 
bool IsInside (const PointType &rPoint, double &rCurrentTime, double Radius=0) override
 
bool IsInside (BoundingBoxParameters &rValues, const ProcessInfo &rCurrentProcessInfo) override
 
void CreateBoundingBoxBoundaryMesh (ModelPart &rModelPart, int linear_partitions=4, int angular_partitions=4) override
 
Input and output
std::string Info () const override
 Turn back information as a string. More...
 
void PrintInfo (std::ostream &rOStream) const override
 Print information about this object. More...
 
void PrintData (std::ostream &rOStream) const override
 Print object's data. More...
 
- Public Member Functions inherited from Kratos::SpatialBoundingBox
 KRATOS_CLASS_POINTER_DEFINITION (SpatialBoundingBox)
 Pointer definition of SpatialBoundingBox. More...
 
 SpatialBoundingBox ()
 Default constructor. More...
 
 SpatialBoundingBox (Parameters CustomParameters)
 
 SpatialBoundingBox (const PointType &rLowerPoint, const PointType &rUpperPoint)
 
 SpatialBoundingBox (const PointType &rCenter, const double &rRadius)
 
 SpatialBoundingBox (ModelPart &rModelPart, const double &rRadius, double factor=0)
 
virtual SpatialBoundingBoxoperator= (SpatialBoundingBox const &rOther)
 Assignment operator. More...
 
 SpatialBoundingBox (SpatialBoundingBox const &rOther)
 Copy constructor. More...
 
virtual ~SpatialBoundingBox ()
 Destructor. More...
 
virtual bool IsInside (const PointType &rPoint)
 
virtual void GetParametricDirections (BoundingBoxParameters &rValues, Vector &rT1, Vector &rT2)
 
void SetUpperPoint (PointType &rUpperPoint)
 
void SetLowerPoint (PointType &rLowerPoint)
 
void SetVelocity (PointType &rVelocity)
 
void SetAngularVelocity (PointType &rAngularVelocity)
 
void SetDimension (int dimension)
 
void SetAxisymmetric ()
 
void SetRigidBodyCenter (NodeType::Pointer pCenter)
 
virtual double GetRadius ()
 
virtual PointType GetVelocity ()
 
virtual PointType GetCenter ()
 
std::vector< PointTypeGetHoles (ModelPart &rModelPart)
 Compute inside holes. More...
 
void GetVertices (std::vector< PointType > &rVertices, const double &rCurrentTime, const unsigned int &rDimension)
 Compute vertices. More...
 
void GetTriangularFaces (DenseMatrix< unsigned int > &rFaces, const unsigned int &rDimension)
 
void GetQuadrilateralFaces (DenseMatrix< unsigned int > &rFaces, const unsigned int &rDimension)
 

Protected Member Functions

Protected Operations
void CreateLinearBoundaryMesh (ModelPart &rModelPart, const unsigned int &rInitialNodeId)
 
void CreateQuadrilateralBoundaryMesh (ModelPart &rModelPart, const unsigned int &rFirstInitialNodeId, const unsigned int &rSecondInitialNodeId)
 
- Protected Member Functions inherited from Kratos::SpatialBoundingBox
void MapToLocalFrame (QuaternionType &rQuaternion, BoundingBoxVariables &rBox)
 
PointType GetBoxDisplacement (const double &rCurrentTime)
 
PointType GetBoxDeltaDisplacement (const double &rCurrentTime, const double &rPreviousTime)
 
void ComputeContactTangent (BoundingBoxParameters &rValues, const ProcessInfo &rCurrentProcessInfo)
 
NodeType::Pointer CreateNode (ModelPart &rModelPart, PointType &rPoint, const unsigned int &rNodeId)
 
void CalculateOrthonormalBase (PointType &rDirectionVectorX, PointType &rDirectionVectorY, PointType &rDirectionVectorZ)
 

Protected Attributes

Protected member Variables
std::vector< BoxNoseVariablesmBoxNoses
 
- Protected Attributes inherited from Kratos::SpatialBoundingBox
NodeType::Pointer mpRigidBodyCenter
 
bool mRigidBodyCenterSupplied
 
BoundingBoxVariables mBox
 

Additional Inherited Members

- Static Protected Member Functions inherited from Kratos::SpatialBoundingBox
static unsigned int GetMaxNodeId (ModelPart &rModelPart)
 
static unsigned int GetMaxElementId (ModelPart &rModelPart)
 

Detailed Description

Short class definition.

Detail class definition.

This Box represents a 2D wall composed by a set of two-line sistems called "Noses" each pair of lines are tangent to the semi-circle given by a center and a radius these semi-circles represent the "noses" or the "tips" of the box wall One line is the upper line of the nose defined by a rake angle (respect to the vertical axis) The other line is a down line defined by a clearance angle (respect to the horizontal axis)

A convexity parameter is given to determine which side of each nose is considered the internal or external boundary

This bounding box is essentially used for rigid wall contact purposes

Member Typedef Documentation

◆ BeamMathUtilsType

◆ ElementType

◆ GeometryType

◆ NodesContainerType

◆ NodesContainerTypePointer

◆ NodeType

◆ PointType

◆ QuaternionType

Constructor & Destructor Documentation

◆ CompoundNosesBoundingBox() [1/4]

Kratos::CompoundNosesBoundingBox::CompoundNosesBoundingBox ( )
inline

Default constructor.

◆ CompoundNosesBoundingBox() [2/4]

Kratos::CompoundNosesBoundingBox::CompoundNosesBoundingBox ( Parameters  CustomParameters)
inline

◆ CompoundNosesBoundingBox() [3/4]

Kratos::CompoundNosesBoundingBox::CompoundNosesBoundingBox ( Vector  Radius,
Vector  RakeAngles,
Vector  ClearanceAngles,
Matrix  Centers,
Vector  Convexities,
Vector  Velocity,
Vector  AngularVelocity,
Vector  UpperPoint,
Vector  LowerPoint,
Matrix  InitialLocalMatrix 
)
inline

◆ CompoundNosesBoundingBox() [4/4]

Kratos::CompoundNosesBoundingBox::CompoundNosesBoundingBox ( CompoundNosesBoundingBox const &  rOther)
inline

Copy constructor.

◆ ~CompoundNosesBoundingBox()

virtual Kratos::CompoundNosesBoundingBox::~CompoundNosesBoundingBox ( )
inlinevirtual

Destructor.

Member Function Documentation

◆ CreateBoundingBoxBoundaryMesh()

void Kratos::CompoundNosesBoundingBox::CreateBoundingBoxBoundaryMesh ( ModelPart rModelPart,
int  linear_partitions = 4,
int  angular_partitions = 4 
)
inlineoverridevirtual

Reimplemented from Kratos::SpatialBoundingBox.

◆ CreateLinearBoundaryMesh()

void Kratos::CompoundNosesBoundingBox::CreateLinearBoundaryMesh ( ModelPart rModelPart,
const unsigned int rInitialNodeId 
)
inlineprotected

◆ CreateQuadrilateralBoundaryMesh()

void Kratos::CompoundNosesBoundingBox::CreateQuadrilateralBoundaryMesh ( ModelPart rModelPart,
const unsigned int rFirstInitialNodeId,
const unsigned int rSecondInitialNodeId 
)
inlineprotected

◆ GetCenter()

PointType Kratos::CompoundNosesBoundingBox::GetCenter ( const PointType rPoint)
inlineoverridevirtual

Reimplemented from Kratos::SpatialBoundingBox.

◆ GetRadius()

double Kratos::CompoundNosesBoundingBox::GetRadius ( const PointType rPoint)
inlineoverridevirtual

Reimplemented from Kratos::SpatialBoundingBox.

◆ Info()

std::string Kratos::CompoundNosesBoundingBox::Info ( ) const
inlineoverridevirtual

Turn back information as a string.

Reimplemented from Kratos::SpatialBoundingBox.

◆ IsInside() [1/2]

bool Kratos::CompoundNosesBoundingBox::IsInside ( BoundingBoxParameters rValues,
const ProcessInfo rCurrentProcessInfo 
)
inlineoverridevirtual

Reimplemented from Kratos::SpatialBoundingBox.

◆ IsInside() [2/2]

bool Kratos::CompoundNosesBoundingBox::IsInside ( const PointType rPoint,
double rCurrentTime,
double  Radius = 0 
)
inlineoverridevirtual

Reimplemented from Kratos::SpatialBoundingBox.

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::CompoundNosesBoundingBox::KRATOS_CLASS_POINTER_DEFINITION ( CompoundNosesBoundingBox  )

Pointer definition of CompoundNosesBoundingBox.

◆ operator=()

CompoundNosesBoundingBox& Kratos::CompoundNosesBoundingBox::operator= ( CompoundNosesBoundingBox const &  rOther)
inline

Assignment operator.

◆ PrintData()

void Kratos::CompoundNosesBoundingBox::PrintData ( std::ostream &  rOStream) const
inlineoverridevirtual

Print object's data.

Reimplemented from Kratos::SpatialBoundingBox.

◆ PrintInfo()

void Kratos::CompoundNosesBoundingBox::PrintInfo ( std::ostream &  rOStream) const
inlineoverridevirtual

Print information about this object.

Reimplemented from Kratos::SpatialBoundingBox.

◆ UpdateBoxPosition()

void Kratos::CompoundNosesBoundingBox::UpdateBoxPosition ( const double rCurrentTime)
inlineoverridevirtual

Reimplemented from Kratos::SpatialBoundingBox.

Member Data Documentation

◆ mBoxNoses

std::vector<BoxNoseVariables> Kratos::CompoundNosesBoundingBox::mBoxNoses
protected

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