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.
|
REMARK: the location function is threadsafe, and can be used in OpenMP loops. More...
#include <binbased_nodes_in_element_locator.h>
Public Types | |
typedef Node | PointType |
typedef Node::Pointer | PointTypePointer |
typedef std::vector< PointType::Pointer > | PointVector |
typedef std::vector< PointType::Pointer >::iterator | PointIterator |
typedef std::vector< double > | DistanceVector |
typedef std::vector< double >::iterator | DistanceIterator |
typedef Bins< TDim, PointType, PointVector, PointTypePointer, PointIterator, DistanceIterator > | StaticBins |
Public Member Functions | |
KRATOS_CLASS_POINTER_DEFINITION (BinBasedNodesInElementLocator) | |
BinBasedNodesInElementLocator (ModelPart &model_part) | |
~BinBasedNodesInElementLocator () | |
void | UpdateSearchDatabase () |
Function to construct or update the search database. More... | |
void | UpdateSearchDatabaseAssignedSize (double CellSize) |
unsigned int | FindNodesInElement (Element::Pointer &pelement, DenseVector< int > &positions, Matrix &Nmat, const unsigned int max_results, PointIterator work_results, DistanceIterator work_distances, Node &work_point) |
function to find all teh nodes of a fixed mesh contained in the elements of a moving mesh More... | |
REMARK: the location function is threadsafe, and can be used in OpenMP loops.
This class is designed to allow the fast location of the nodes of a fixed mesh with respect to a moving mesh. The utility relies on the creation of a static Bin that allows finding quikly the nodes of a fixed mesh that are inside each of the elements of the moving one. After the creation of the "BinBasedNodesInElementLocator", the user should call the function "UpdateSearchDatabase" or"UpdateSearchDatabaseAssignedSize(hmin)" to mount the bin and subsequently locate the points as needed An application of this utility can be found in
typedef std::vector<double>::iterator Kratos::BinBasedNodesInElementLocator< TDim >::DistanceIterator |
typedef std::vector<double> Kratos::BinBasedNodesInElementLocator< TDim >::DistanceVector |
typedef std::vector<PointType::Pointer >::iterator Kratos::BinBasedNodesInElementLocator< TDim >::PointIterator |
typedef Node Kratos::BinBasedNodesInElementLocator< TDim >::PointType |
typedef Node::Pointer Kratos::BinBasedNodesInElementLocator< TDim >::PointTypePointer |
typedef std::vector<PointType::Pointer > Kratos::BinBasedNodesInElementLocator< TDim >::PointVector |
typedef Bins< TDim, PointType, PointVector, PointTypePointer, PointIterator, DistanceIterator > Kratos::BinBasedNodesInElementLocator< TDim >::StaticBins |
|
inline |
|
inline |
|
inline |
function to find all teh nodes of a fixed mesh contained in the elements of a moving mesh
It is called each time a projection from a moving to a fixed mesh is performed using the function of
pelement | The pointer to the element to be studied |
positions | The indexes of the relative positions |
Nmat | Shape functions |
max_results | Maximum number of results to be searched |
work_results | The point iterator with the points to be studied |
work_distances | The iterator containing the relative distances |
work_point | The node of study |
Kratos::BinBasedNodesInElementLocator< TDim >::KRATOS_CLASS_POINTER_DEFINITION | ( | BinBasedNodesInElementLocator< TDim > | ) |
|
inline |
Function to construct or update the search database.
|
inline |
Function to construct or update the search database The cell size is requested as input parameter. This action reduces consideribly the searching procedure. One possibility is to give the dimension of the mesh.
CellSize | The bin cell size |