#ifndef NGINTERFACE #define NGINTERFACE /**************************************************************************/ /* File: nginterface.hh */ /* Author: Joachim Schoeberl */ /* Date: 20. Nov. 99 */ /**************************************************************************/ /* Application program interface to Netgen */ // max number of nodes per element #define NG_ELEMENT_MAXPOINTS 10 // implemented element types: enum NG_ELEMENT_TYPE { NG_TET = 1, NG_PYRAMID = 2, NG_PRISM = 3, NG_TET10 = 4 }; // max number of nodes per surface element #define NG_SURFACE_ELEMENT_MAXPOINTS 6 // implemented element types: enum NG_SURFACE_ELEMENT_TYPE { NG_TRIG = 1, NG_QUAD = 2, NG_TRIG6 = 3 }; #ifdef __cplusplus extern "C" { #endif // load geomtry from file void Ng_LoadGeometry (char * filename); // load netgen mesh void Ng_LoadMesh (char * filename); // number of mesh points int Ng_GetNP (); // number of mesh elements int Ng_GetNE (); // number of surface triangles int Ng_GetNSE (); // Get Point coordintes, index from 1 .. np void Ng_GetPoint (int pi, double * p); // Get Element Points NG_ELEMENT_TYPE Ng_GetElement (int ei, int * epi, int * np = NULL); // Get Element Index int Ng_GetElementIndex (int ei); // Get Surface Element Points NG_SURFACE_ELEMENT_TYPE Ng_GetSurfaceElement (int ei, int * epi, int * np = NULL); // Get Surface Element Index int Ng_GetSurfaceElementIndex (int ei); // Mark element for refinement void Ng_SetRefinementFlag (int ei, int flag); // Do local refinement void Ng_Refine (); // Use second order elements void Ng_SecondOrder (); // Multilevel functions: // number of levels: int Ng_GetNLevels (); // get two parent nodes of node ni void Ng_GetParentNodes (int ni, int * parents); // representant of anisotropic cluster int Ng_GetClusterRepresentant (int pi); enum Ng_SolutionType { NG_SOLUTION_NODAL = 1, NG_SOLUTION_ELEMENT = 2 }; struct Ng_SolutionData { char * name; // name of gridfunction double * data; // solution values int components; // used components in solution vector int dist; // num of doubles per entry (alignment!) Ng_SolutionType soltype; // type of solution function }; // initialize solution data with default arguments void Ng_InitSolutionData (Ng_SolutionData * soldata); // set solution data void Ng_SetSolutionData (Ng_SolutionData * soldata); #ifdef __cplusplus } #endif #endif