14 #if !defined( KRATOS_UNIFORM_REFINEMENT_UTILITY_H_INCLUDED )
15 #define KRATOS_UNIFORM_REFINEMENT_UTILITY_H_INCLUDED
21 #include <unordered_map>
163 void Refine(
int& rFinalRefinementLevel);
202 virtual std::string
Info()
const;
205 virtual void PrintInfo(std::ostream& rOStream)
const;
208 virtual void PrintData(std::ostream& rOStream)
const;
300 void ExecuteDivision(
301 const int& rDivision,
314 typename NodeType::Pointer GetNodeInEdge(
316 const int& rNumberOfDivisions,
330 typename NodeType::Pointer CreateNodeInEdge(
332 const int& rNumberOfDivisions,
343 typename NodeType::Pointer GetNodeInFace(
345 const int& rNumberOfDivisions,
358 typename NodeType::Pointer CreateNodeInFace(
360 const int& rNumberOfDivisions,
371 typename NodeType::Pointer GetNodeInBody(
373 const int& rNumberOfDivisions,
385 void CalculateNodalStepData(
386 NodeType::Pointer pNewNode,
387 const NodeType::Pointer pNode0,
388 const NodeType::Pointer pNode1
400 void CalculateNodalStepData(
401 NodeType::Pointer pNewNode,
402 const NodeType::Pointer pNode0,
403 const NodeType::Pointer pNode1,
404 const NodeType::Pointer pNode2,
405 const NodeType::Pointer pNode3
414 void CalculateNodalStepData(
415 NodeType::Pointer pNewNode,
425 void AddOtherFatherNodes(
427 std::vector<double>& rThisFatherWeights,
429 const std::vector<double>& rOtherFatherWeights,
430 const double& rWeight = 0.5
440 ElementsArrayType::iterator pOriginElement,
442 const int& rNumberOfDivisions,
452 void CreateCondition(
453 ConditionsArrayType::iterator pOriginCondition,
455 const int& rNumberOfDivisions,
469 NodeType::Pointer& rMiddleNode
483 std::vector<NodeType::Pointer>& rMiddleNodes
497 std::vector<NodeType::Pointer>& rMiddleNodes
511 std::vector<NodeType::Pointer>& rMiddleNodes
525 std::vector<NodeType::Pointer>& rMiddleNodes
574 rOStream << std::endl;
Geometry base class.
Definition: geometry.h:71
This class is a vector which stores global pointers.
Definition: global_pointers_vector.h:61
An eight node hexahedra geometry with linear shape functions.
Definition: hexahedra_3d_8.h:55
An two node 3D line geometry with linear shape functions.
Definition: line_3d_2.h:64
This class aims to manage meshes for multi-physics simulations.
Definition: model_part.h:77
MeshType::ConditionsContainerType ConditionsContainerType
Condintions container. A vector set of Conditions with their Id's as key.
Definition: model_part.h:183
MeshType::ElementsContainerType ElementsContainerType
Element container. A vector set of Elements with their Id's as key.
Definition: model_part.h:168
MeshType::NodesContainerType NodesContainerType
Nodes container. Which is a vector set of nodes with their Id's as key.
Definition: model_part.h:128
This class defines the node.
Definition: node.h:65
std::vector< std::unique_ptr< Dof< double > >> DofsContainerType
The DoF container type definition.
Definition: node.h:92
PointerVector is a container like stl vector but using a vector to store pointers to its data.
Definition: pointer_vector.h:72
A four node 3D quadrilateral geometry with bi-linear shape functions.
Definition: quadrilateral_3d_4.h:76
REF: G. R. Cowper, GAUSSIAN QUADRATURE FORMULAS FOR TRIANGLES.
Definition: mesh_condition.cpp:21
std::istream & operator>>(std::istream &rIStream, LinearMasterSlaveConstraint &rThis)
input stream function
std::ostream & operator<<(std::ostream &rOStream, const LinearMasterSlaveConstraint &rThis)
output stream function
Definition: linear_master_slave_constraint.h:432
This is a key comparer of general pourpose between two classes.
Definition: key_hash.h:100