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.
gid_mesh_library.h
Go to the documentation of this file.
1 #ifndef GID_MESH_LIBRARY_H
2 #define GID_MESH_LIBRARY_H
3 
4 #include <cstdlib>
5 
6 typedef void *GiDInput_Handle;
7 typedef void *GiDOutput_Handle;
8 
9 //TYPES OF ELEMENTS
10 // GiD_NoElement=0
11 // GiD_Point=1
12 // GiD_Linear=2
13 // GiD_Triangle=3
14 // GiD_Quadrilateral=4
15 // GiD_Tetrahedra=5
16 // GiD_Hexahedra=6
17 // GiD_Prism=7
18 // GiD_Pyramid=8
19 // GiD_Sphere=9
20 // GiD_Circle=10
21 // GiD_Cluster=11
22 
23 
24 //FUNCTIONS OF THE LIBRARY
25 
26 //this function initializies an input Handle with a first type of elements and its nodes.
27 GiDInput_Handle GetGidInputHandleWithBoundaryMesh(int ndime,int nlen,double* coords,int flen,int* faces,int type_faces_mesh);
28 GiDInput_Handle GetGidInputHandleWithBoundaryMesh(int ndime,int nlen,double* coords,int flen,int* faces,int number_of_types,int* flen_by_types,int* type_faces_mesh);
29 GiDInput_Handle GetGidInputHandleWithVolumeMesh(int ndime,int nlen,double* coords,int elen,int* elems,int type_elem_mesh);
30 GiDInput_Handle GetGidInputHandleWithVolumeMesh(int ndime,int nlen,double* coords,int elen,int* elems,int number_of_types,int* elen_by_types,int* type_elem_mesh);
32 //Add nodes to in the entry structure because user wants that the mesher use
33 // in the generation.
34 void AddNodesInMesh(GiDInput_Handle hdl_gin,int nlen,double* coord);
35 //Add attributes to the nodes of the entry
36 void AddAttributeMeshNodes(GiDInput_Handle hdl_gin, double* attributes);
37 //Add markers to the nodes of the entry
38 void AddMarkersMeshNodes(GiDInput_Handle hdl_gin,double* markers);
39 
41 
43 double* GetCoordNodes(GiDOutput_Handle hdl_gout);
59 
60 //functions that returns several results: mesh nodes,mesh elems,attributes nodes,markers nodes, added nodes in the final mesh
61 //....
62 
63 
64 //************************************************************************
65 //mesh generation functions
66 //************************************************************************
67 
68 //Mesh generation using Delaunay method
69 //int GiDML_DelaunayConstrainedTetrahedraMesher(GiDInput_Handle hdl_gin, GiDOutput_Handle hdl_gout,double size_user,void* interface_gid=0);
70 //int DelaunayConstrainedTetrahedraMesher_CheckConsistency(GiDInput_Handle hdl_gin);
71 
72 
73 //Mesh generation using IsoStuffing method
74 void GiDML_IsoSurfaceTetrahedraMesher(GiDInput_Handle hdl_gin, GiDOutput_Handle hdl_gout, double size_user,void* interface_gid=0);
77 
78 
79 //************************************************************************
80 //mesh editing functions
81 //************************************************************************
82 
83 //Improves local connectivities of bad quality tetras
84 //int GiDML_ImproveConectivitiesOfTetrahedralMesh(GiDInput_Handle hdl_gin, GiDOutput_Handle hdl_gout);
85 
86 
87 //************************************************************************
88 //mesh analysis functions
89 //************************************************************************
90 
91 //Gets nodes distance (in a tetrahedra mesh) to a defined triangles skin
92 void GiDML_GetNodesDistanceRadiusInTetrahedraMesh(GiDInput_Handle hdl_gin, GiDOutput_Handle hdl_gout, double Radius,int cuadratic_distances);
93 void GiDML_GetNodesDistanceInTetrahedraMesh(GiDInput_Handle hdl_gin, GiDOutput_Handle hdl_gout,int cuadratic_distances);
94 
95 
96 //Detects if the input nodes are inside or outside a certain skin of triangles.
98 
99 #endif //GID_MESH_LIBRARY_H
int * GetMarkersOfNodes(GiDOutput_Handle hdl_gout)
int GetNumberOfMarkersByNode(GiDOutput_Handle hdl_gout)
void DeleteOutputHandle(GiDOutput_Handle hdl_gout)
int GetNumberOfAttributesByNode(GiDOutput_Handle hdl_gout)
double * GetAttributesOfNodes(GiDOutput_Handle hdl_gout)
void * GetGidOutputHandle()
int GetNumberOfNodesForInterpolation(GiDOutput_Handle hdl_gout)
void AddMarkersMeshNodes(GiDInput_Handle hdl_gin, double *markers)
void GiDML_DetectInsideAndOutsideNodesInTetrahedraMesh(GiDInput_Handle hdl_gin, GiDOutput_Handle hdl_gout)
int * GetBaseNodesForInterpolation(GiDOutput_Handle hdl_gout)
void GiDML_IsoSurfaceTetrahedraMesher(GiDInput_Handle hdl_gin, GiDOutput_Handle hdl_gout, double size_user, void *interface_gid=0)
GiDInput_Handle GetGidInputHandleWithVolumeMesh(int ndime, int nlen, double *coords, int elen, int *elems, int type_elem_mesh)
GiDInput_Handle GetGidInputHandleWithBoundaryMesh(int ndime, int nlen, double *coords, int flen, int *faces, int type_faces_mesh)
int GetNumberOfNodes(GiDOutput_Handle hdl_gout)
int IsoSurfaceTetrahedraMesher_CheckConsistency(GiDInput_Handle hdl_gin)
const char * IsoSurfaceTetrahedraMesher_CheckState(int state)
void * GiDInput_Handle
Definition: gid_mesh_library.h:6
double * GetWightsNodesForInterpolation(GiDOutput_Handle hdl_gout)
void AddAttributeMeshNodes(GiDInput_Handle hdl_gin, double *attributes)
int GetNumberOfElements(GiDOutput_Handle hdl_gout)
int * GetMarkersOfAddedNodes(GiDOutput_Handle hdl_gout)
void DeleteInputHandle(GiDInput_Handle hdl_gin)
void AddNodesInMesh(GiDInput_Handle hdl_gin, int nlen, double *coord)
int * GetNeighborsByFaces(GiDOutput_Handle hdl_gout)
int GeNumberOftMarkersByAddedNode(GiDOutput_Handle hdl_gout)
int GetNumberOfAddedNodes(GiDOutput_Handle hdl_gout)
void GiDML_GetNodesDistanceInTetrahedraMesh(GiDInput_Handle hdl_gin, GiDOutput_Handle hdl_gout, int cuadratic_distances)
void GiDML_GetNodesDistanceRadiusInTetrahedraMesh(GiDInput_Handle hdl_gin, GiDOutput_Handle hdl_gout, double Radius, int cuadratic_distances)
void * GiDOutput_Handle
Definition: gid_mesh_library.h:7
double * GetCoordAddedNodes(GiDOutput_Handle hdl_gout)
int * GetConnecElements(GiDOutput_Handle hdl_gout)
double * GetCoordNodes(GiDOutput_Handle hdl_gout)