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.
List of all members
Kratos::FindIntersectedGeometricalObjectsProcess Class Reference

This class takes two modelparts and marks the intersected ones with SELECTED flag. More...

#include <find_intersected_geometrical_objects_process.h>

Inheritance diagram for Kratos::FindIntersectedGeometricalObjectsProcess:
Collaboration diagram for Kratos::FindIntersectedGeometricalObjectsProcess:

Public Member Functions

Life Cycle
 FindIntersectedGeometricalObjectsProcess ()=delete
 Default constructor. More...
 
 FindIntersectedGeometricalObjectsProcess (ModelPart &rModelPartIntersected, ModelPart &rModelPartIntersecting, const Flags Options=INTERSECTING_CONDITIONS|INTERSECTING_ELEMENTS|INTERSECTED_CONDITIONS|INTERSECTED_ELEMENTS)
 Constructor to be used. More...
 
 FindIntersectedGeometricalObjectsProcess (Model &rModel, Parameters ThisParameters)
 Constructor to be used. (with model and Parameters) More...
 
 FindIntersectedGeometricalObjectsProcess (FindIntersectedGeometricalObjectsProcess const &rOther)=delete
 Copy constructor. More...
 
 ~FindIntersectedGeometricalObjectsProcess () override=default
 Destructor. More...
 
Operations
virtual void Initialize ()
 This function is designed for being called at the beginning of the computations right after reading the model and the groups. More...
 
virtual void FindIntersectedSkinObjects (std::vector< PointerVector< GeometricalObject >> &rResults)
 This method finds the intersected objects with the skin. More...
 
virtual void FindIntersections ()
 This method finds different intersections. More...
 
virtual std::vector< PointerVector< GeometricalObject > > & GetIntersections ()
 This method returns the intersections. More...
 
virtual ModelPartGetModelPart1 ()
 Returns the first model part. More...
 
virtual ModelPartGetModelPart2 ()
 Returns the second model part. More...
 
virtual OctreePointerTypeGetOctreePointer ()
 This method returns the Octree conatined in the class. More...
 
void Clear () override
 This clears the database. More...
 
void Execute () override
 Execute method is used to execute the Process algorithms. More...
 
void ExecuteInitialize () override
 this function is designed for being called at the beginning of the computations right after reading the model and the groups More...
 
virtual void IdentifyNearEntitiesAndCheckEntityForIntersection (GeometricalObject::Pointer pGeometricalObject, OtreeCellVectorType &rLeaves)
 This method indetifies near entities and marks if intersected. More...
 
const Parameters GetDefaultParameters () const override
 This method provides the defaults parameters to avoid conflicts between the different constructors. More...
 
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::Process
 KRATOS_CLASS_POINTER_DEFINITION (Process)
 Pointer definition of Process. More...
 
 Process ()
 Default constructor. More...
 
 Process (const Flags options)
 
 ~Process () override
 Destructor. More...
 
void operator() ()
 This operator is provided to call the process as a function and simply calls the Execute method. More...
 
virtual Process::Pointer Create (Model &rModel, Parameters ThisParameters)
 This method creates an pointer of the process. More...
 
virtual void ExecuteBeforeSolutionLoop ()
 This function is designed for being execute once before the solution loop but after all of the solvers where built. More...
 
virtual void ExecuteInitializeSolutionStep ()
 This function will be executed at every time step BEFORE performing the solve phase. More...
 
virtual void ExecuteFinalizeSolutionStep ()
 This function will be executed at every time step AFTER performing the solve phase. More...
 
virtual void ExecuteBeforeOutputStep ()
 This function will be executed at every time step BEFORE writing the output. More...
 
virtual void ExecuteAfterOutputStep ()
 This function will be executed at every time step AFTER writing the output. More...
 
virtual void ExecuteFinalize ()
 This function is designed for being called at the end of the computations. More...
 
virtual int Check ()
 This function is designed for being called after ExecuteInitialize ONCE to verify that the input is correct. More...
 
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::Flags
Flagsoperator= (Flags const &rOther)
 Assignment operator. More...
 
 operator bool () const
 
Flags operator~ () const
 
bool operator! () const
 
void AssignFlags (Flags const &rOther)
 
void Set (const Flags ThisFlag)
 
void Set (const Flags ThisFlag, bool Value)
 
void Reset (const Flags ThisFlag)
 
void Flip (const Flags ThisFlag)
 
void SetPosition (IndexType Position, bool Value=true)
 
bool GetPosition (IndexType Position) const
 
void FlipPosition (IndexType Position)
 
void ClearPosition (IndexType Position)
 
void Clear ()
 
Flags AsFalse () const
 
bool Is (Flags const &rOther) const
 
bool IsDefined (Flags const &rOther) const
 
bool IsNot (Flags const &rOther) const
 
bool IsNotDefined (Flags const &rOther) const
 
 KRATOS_CLASS_POINTER_DEFINITION (Flags)
 Pointer definition of Flags. More...
 
const Flagsoperator|= (const Flags &Other)
 
const Flagsoperator&= (const Flags &Other)
 
 Flags ()
 Default constructor. More...
 
 Flags (Flags const &rOther)
 Copy constructor. More...
 
virtual ~Flags ()
 Destructor. More...
 

Public Attributes

Member Variables
std::vector< PointerVector< GeometricalObject > > mIntersectedObjects
 

Protected Member Functions

Protected Operations
virtual void SetOctreeBoundingBox ()
 This method sets the Octree bounding box. More...
 
virtual void MarkIfIntersected (GeometricalObject &rIntersectedGeometricalObject, OtreeCellVectorType &rLeaves)
 This method marks if intersected. More...
 
virtual bool HasIntersection (GeometryType &rFirstGeometry, GeometryType &rSecondGeometry)
 This method check if there is an intersection between two geometries. More...
 

Protected Attributes

Protected member Variables
ModelPartmrModelPartIntersected
 
ModelPartmrModelPartIntersecting
 Model part intersected. More...
 
Flags mOptions
 Model part intersecting. More...
 
OctreePointerType mpOctree
 Local flags. More...
 

Type Definitions

using ConfigurationType = Internals::DistanceSpatialContainersConfigure
 Octree definitions. More...
 
using CellType = OctreeBinaryCell< ConfigurationType >
 
using OctreeType = OctreeBinary< CellType >
 
using OctreePointerType = unique_ptr< OctreeType >
 
using CellNodeDataType = typename ConfigurationType::cell_node_data_type
 
typedef std::vector< typename OctreeType::cell_type * > OtreeCellVectorType
 
typedef std::size_t IndexType
 Definition of the index type. More...
 
typedef std::size_t SizeType
 Definition of the size type. More...
 
typedef Point PointType
 Definition of the point type. More...
 
using NodeType = Node
 Definition of the node type. More...
 
using GeometryType = Geometry< NodeType >
 Definition of the geometry type. More...
 
 KRATOS_CLASS_POINTER_DEFINITION (FindIntersectedGeometricalObjectsProcess)
 Pointer definition of FindIntersectedGeometricalObjectsProcess. More...
 
 KRATOS_DEFINE_LOCAL_FLAG (INTERSECTING_CONDITIONS)
 Local Flags. More...
 
 KRATOS_DEFINE_LOCAL_FLAG (INTERSECTING_ELEMENTS)
 
 KRATOS_DEFINE_LOCAL_FLAG (INTERSECTED_CONDITIONS)
 
 KRATOS_DEFINE_LOCAL_FLAG (INTERSECTED_ELEMENTS)
 

Additional Inherited Members

- Public Types inherited from Kratos::Flags
enum  FlagsList {
  Flag0 = BlockType(1) , Flag1 = BlockType(1) << 1 , Flag2 = BlockType(1) << 2 , Flag3 = BlockType(1) << 3 ,
  Flag4 = BlockType(1) << 4 , Flag5 = BlockType(1) << 5 , Flag6 = BlockType(1) << 6 , Flag7 = BlockType(1) << 7 ,
  Flag8 = BlockType(1) << 8 , Flag9 = BlockType(1) << 9 , Flag10 = BlockType(1) << 10 , Flag11 = BlockType(1) << 11 ,
  Flag12 = BlockType(1) << 12 , Flag13 = BlockType(1) << 13 , Flag14 = BlockType(1) << 14 , Flag15 = BlockType(1) << 15 ,
  Flag16 = BlockType(1) << 16 , Flag17 = BlockType(1) << 17 , Flag18 = BlockType(1) << 18 , Flag19 = BlockType(1) << 19 ,
  Flag20 = BlockType(1) << 20 , Flag21 = BlockType(1) << 21 , Flag22 = BlockType(1) << 22 , Flag23 = BlockType(1) << 23 ,
  Flag24 = BlockType(1) << 24 , Flag25 = BlockType(1) << 25 , Flag26 = BlockType(1) << 26 , Flag27 = BlockType(1) << 27 ,
  Flag28 = BlockType(1) << 28 , Flag29 = BlockType(1) << 29 , Flag30 = BlockType(1) << 30
}
 
typedef int64_t BlockType
 
typedef int64_t FlagType
 
typedef std::size_t IndexType
 
- Static Public Member Functions inherited from Kratos::Flags
static const Flags AllDefined ()
 
static const Flags AllTrue ()
 
static Flags Create (IndexType ThisPosition, bool Value=true)
 

Detailed Description

This class takes two modelparts and marks the intersected ones with SELECTED flag.

It creates a spatial datastructure and search for interaction. It also provides some helper methods for derived classes to check individual element or condition interesections.

Author
Pooyan Dadvand
Ruben Zorrilla Martinez
Vicente Mataix Ferrandiz

Member Typedef Documentation

◆ CellNodeDataType

◆ CellType

◆ ConfigurationType

Octree definitions.

◆ GeometryType

Definition of the geometry type.

◆ IndexType

Definition of the index type.

◆ NodeType

Definition of the node type.

◆ OctreePointerType

◆ OctreeType

◆ OtreeCellVectorType

◆ PointType

Definition of the point type.

◆ SizeType

Definition of the size type.

Constructor & Destructor Documentation

◆ FindIntersectedGeometricalObjectsProcess() [1/4]

Kratos::FindIntersectedGeometricalObjectsProcess::FindIntersectedGeometricalObjectsProcess ( )
delete

Default constructor.

Removed

◆ FindIntersectedGeometricalObjectsProcess() [2/4]

Kratos::FindIntersectedGeometricalObjectsProcess::FindIntersectedGeometricalObjectsProcess ( ModelPart rModelPartIntersected,
ModelPart rModelPartIntersecting,
const Flags  Options = INTERSECTING_CONDITIONS|INTERSECTING_ELEMENTS|INTERSECTED_CONDITIONS|INTERSECTED_ELEMENTS 
)

Constructor to be used.

Parameters
rModelPartIntersectedFirst model part (the one to compute the intersection)
rModelPartIntersectingSecond model part (the "skin" model part)

◆ FindIntersectedGeometricalObjectsProcess() [3/4]

Kratos::FindIntersectedGeometricalObjectsProcess::FindIntersectedGeometricalObjectsProcess ( Model rModel,
Parameters  ThisParameters 
)

Constructor to be used. (with model and Parameters)

Parameters
rModelThe model containing all model parts
ThisParametersThe configuration parameters

◆ FindIntersectedGeometricalObjectsProcess() [4/4]

Kratos::FindIntersectedGeometricalObjectsProcess::FindIntersectedGeometricalObjectsProcess ( FindIntersectedGeometricalObjectsProcess const &  rOther)
delete

Copy constructor.

◆ ~FindIntersectedGeometricalObjectsProcess()

Kratos::FindIntersectedGeometricalObjectsProcess::~FindIntersectedGeometricalObjectsProcess ( )
overridedefault

Destructor.

Member Function Documentation

◆ Clear()

void Kratos::FindIntersectedGeometricalObjectsProcess::Clear ( )
overridevirtual

This clears the database.

Warning
This conflicts with flags Clear

Reimplemented from Kratos::Process.

◆ Execute()

void Kratos::FindIntersectedGeometricalObjectsProcess::Execute ( )
overridevirtual

Execute method is used to execute the Process algorithms.

Reimplemented from Kratos::Process.

◆ ExecuteInitialize()

void Kratos::FindIntersectedGeometricalObjectsProcess::ExecuteInitialize ( )
overridevirtual

this function is designed for being called at the beginning of the computations right after reading the model and the groups

Reimplemented from Kratos::Process.

◆ FindIntersectedSkinObjects()

void Kratos::FindIntersectedGeometricalObjectsProcess::FindIntersectedSkinObjects ( std::vector< PointerVector< GeometricalObject >> &  rResults)
virtual

This method finds the intersected objects with the skin.

Parameters
rResultsThe vector containing the intersected objects with the skin

◆ FindIntersections()

void Kratos::FindIntersectedGeometricalObjectsProcess::FindIntersections ( )
virtual

This method finds different intersections.

◆ GetDefaultParameters()

const Parameters Kratos::FindIntersectedGeometricalObjectsProcess::GetDefaultParameters ( ) const
overridevirtual

This method provides the defaults parameters to avoid conflicts between the different constructors.

Reimplemented from Kratos::Process.

Reimplemented in Kratos::FindIntersectedGeometricalObjectsWithOBBProcess, and Kratos::FindIntersectedGeometricalObjectsWithOBBContactSearchProcess.

◆ GetIntersections()

std::vector< PointerVector< GeometricalObject > > & Kratos::FindIntersectedGeometricalObjectsProcess::GetIntersections ( )
virtual

This method returns the intersections.

Returns
The vector containing the intersections found

◆ GetModelPart1()

ModelPart & Kratos::FindIntersectedGeometricalObjectsProcess::GetModelPart1 ( )
virtual

Returns the first model part.

Returns
The first model part

◆ GetModelPart2()

ModelPart & Kratos::FindIntersectedGeometricalObjectsProcess::GetModelPart2 ( )
virtual

Returns the second model part.

Returns
The second model part

◆ GetOctreePointer()

FindIntersectedGeometricalObjectsProcess::OctreePointerType & Kratos::FindIntersectedGeometricalObjectsProcess::GetOctreePointer ( )
virtual

This method returns the Octree conatined in the class.

Returns
The octree contained in this process

◆ HasIntersection()

bool Kratos::FindIntersectedGeometricalObjectsProcess::HasIntersection ( GeometryType rFirstGeometry,
GeometryType rSecondGeometry 
)
protectedvirtual

This method check if there is an intersection between two geometries.

Parameters
rFirstGeometryThe first geometry
rSecondGeometryThe second geometry

Reimplemented in Kratos::FindIntersectedGeometricalObjectsWithOBBProcess.

◆ IdentifyNearEntitiesAndCheckEntityForIntersection()

void Kratos::FindIntersectedGeometricalObjectsProcess::IdentifyNearEntitiesAndCheckEntityForIntersection ( GeometricalObject::Pointer  pGeometricalObject,
OtreeCellVectorType rLeaves 
)
virtual

This method indetifies near entities and marks if intersected.

Parameters
pGeometricalObjectThe pointer to the entity of interest
rLeavesThe Octree cells vectors

◆ Info()

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

◆ Initialize()

void Kratos::FindIntersectedGeometricalObjectsProcess::Initialize ( )
virtual

This function is designed for being called at the beginning of the computations right after reading the model and the groups.

Todo:
This should be moved to ExecuteInitialize (base class of Process)

◆ KRATOS_CLASS_POINTER_DEFINITION()

Kratos::FindIntersectedGeometricalObjectsProcess::KRATOS_CLASS_POINTER_DEFINITION ( FindIntersectedGeometricalObjectsProcess  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [1/4]

Kratos::FindIntersectedGeometricalObjectsProcess::KRATOS_DEFINE_LOCAL_FLAG ( INTERSECTED_CONDITIONS  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [2/4]

Kratos::FindIntersectedGeometricalObjectsProcess::KRATOS_DEFINE_LOCAL_FLAG ( INTERSECTED_ELEMENTS  )

◆ KRATOS_DEFINE_LOCAL_FLAG() [3/4]

Kratos::FindIntersectedGeometricalObjectsProcess::KRATOS_DEFINE_LOCAL_FLAG ( INTERSECTING_CONDITIONS  )

Local Flags.

◆ KRATOS_DEFINE_LOCAL_FLAG() [4/4]

Kratos::FindIntersectedGeometricalObjectsProcess::KRATOS_DEFINE_LOCAL_FLAG ( INTERSECTING_ELEMENTS  )

◆ MarkIfIntersected()

void Kratos::FindIntersectedGeometricalObjectsProcess::MarkIfIntersected ( GeometricalObject rIntersectedGeometricalObject,
OtreeCellVectorType rLeaves 
)
protectedvirtual

This method marks if intersected.

Parameters
rIntersectedGeometricalObjectThe element of interest
rLeavesThe Octree cells vectors

Reimplemented in Kratos::FindIntersectedGeometricalObjectsWithOBBContactSearchProcess.

◆ PrintData()

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

◆ PrintInfo()

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

◆ SetOctreeBoundingBox()

void Kratos::FindIntersectedGeometricalObjectsProcess::SetOctreeBoundingBox ( )
protectedvirtual

Member Data Documentation

◆ mIntersectedObjects

std::vector<PointerVector<GeometricalObject> > Kratos::FindIntersectedGeometricalObjectsProcess::mIntersectedObjects

◆ mOptions

Flags Kratos::FindIntersectedGeometricalObjectsProcess::mOptions
protected

Model part intersecting.

◆ mpOctree

OctreePointerType Kratos::FindIntersectedGeometricalObjectsProcess::mpOctree
protected

Local flags.

◆ mrModelPartIntersected

ModelPart& Kratos::FindIntersectedGeometricalObjectsProcess::mrModelPartIntersected
protected

◆ mrModelPartIntersecting

ModelPart& Kratos::FindIntersectedGeometricalObjectsProcess::mrModelPartIntersecting
protected

Model part intersected.


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