All Classes Namespaces Files Functions Variables Typedefs
Typedefs | Functions
MA.h File Reference
#include "pumi_mesh.h"
#include "MeshAdapt.h"
#include "curveMesh.h"
Include dependency graph for MA.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Typedefs

typedef struct meshAdapt * pMAdapt
 
typedef struct curveMeshpCrvMesh
 
typedef pMAdapt pMSAdapt
 

Functions

void MA_Adapt (pMAdapt pMAdaptDrvr)
 Provide adaptation routines. More...
 
void MA_Del (pMAdapt pMAdaptDrvr)
 Delete Mesh Adaptation Driver. More...
 
void MA_NewMeshAdaptDrvr (pMAdapt &pMAdaptDrvr, pMeshMdl pMeshInstance, int iSizeFldType)
 Create an object of class (struct) pMAdapt. More...
 
void MA_NewMeshAdaptDrvr_ModelType (pMAdapt &pMAdaptDrvr, pMeshMdl pMeshInstance, int iSizeFldType, int iModelType)
 Same as above, but with the ability to specifically provide the model type: 0 - no snapping, 1 - Not parametric, 2 - Parametric. More...
 
void MA_SetAnisoVtxSize (pMAdapt pMAdaptDrvr, pumi::pVertex pVertexVtx, double ddSize[3][3])
 Set anisotropic size for a specific vertex. More...
 
void MA_SetCB (pMAdapt pMAdaptDrvr, CBFunction CB, void *userData)
 Set a callback function. More...
 
void MA_SetIsoVtxSize (pMAdapt pMAdaptDrvr, pumi::pVertex pVertexVtx, double dSize)
 Set isotropic size for a specific vertex. More...
 
void MA_SetNumIt (pMAdapt pMAdaptDrvr, int iNumIt)
 Set the number of mesh modification steps (iterations). More...
 
void MA_SetPredLoadBal (pMAdapt pMAdaptDrvr, int iPredLoadBal)
 Set the option for providing predictive load balance. More...
 
void MA_SetRefLvl (pMAdapt pMAdaptDrvr, pumi::pEntity pEntityEnt, int iRefLvl)
 Set refinement level for an entity. More...
 
void MA_GetRefLvl (pMAdapt pMAdaptDrvr, pumi::pEntity pEntityEnt, int &iRefLvl)
 Get refinement level for an entity. More...
 
void MA_SetSizeFldFunc (pMAdapt pMAdaptDrvr, adaptSFunc SizeFldFunc)
 Set analytical size field function. More...
 
void MA_SetSizeFldType (pMAdapt pMAdaptDrvr, int iSizeFldType)
 Set size field type. More...
 
int MA_AnisoSmooth (pMAdapt pMAdaptDrvr, double dBeta[3])
 Anisotropic mesh gradation control. More...
 
int MA_Vtx_Size (pumi::pVertex pVertexVtx, double dAnisoSize[3][3])
 Calculate the mesh size associated with vertex. More...
 
void MA_SetQualityThreshold (pMAdapt pMAdaptDrvr, double dQualThreshold)
 
void MA_SetFirstLayerThicknessFlag (pMAdapt pMAdaptDrvr, int isFirstLayerThicknessSet)
 Set the flag for first layer thickness in boundary layer mesh. More...
 
int MA_SetFirstLayerThickness (pMAdapt pMAdaptDrvr, pumi::pVertex pVertexVtx, double dFirstNodalSpacing)
 Attach information about first nodal spacing to the vertex. More...
 
int MA_SetAdaptiveDecompFlag (pMAdapt pMAdaptDrvr, int iFlag)
 Set the flag for performing the adaptive trimming in boundary layer mesh. More...
 
int MA_SetAdaptiveDecomp_AspectRatioLimit (pMAdapt pMAdaptDrvr, double dAspectRatioLimit)
 Set the aspect ratio square limit for adaptive trimming in boundary layer mesh. More...
 
int MA_TetrahedralizeBL (pMAdapt pMAdaptDrvr)
 Tetrahedralize mesh. More...
 
int MA_Mesh_TetrahedralizeBLs (pMeshMdl pMeshModel)
 
int MA_DecompositionBL_AspectRatio (pMAdapt pMAdaptDrvr, double dAspectRatioLimit)
 Decomposition with aspect ratio, aspect ratio is a square of growth edge / layer edge. More...
 
int MA_DecompositionBL_ForQuality (pMAdapt pMAdaptDrvr)
 
int MA_Mesh_DecompositionBL_ForQuality (pMeshMdl pMeshModel)
 
int CMA_New (pCrvMesh &pcrv_mesh_obj, pMeshMdl pmesh_inst, int iSizeFldType, int iModelType)
 Create an object of class (struct) pCrvMesh. More...
 
int CMA_Del (pCrvMesh pcrv_mesh_obj)
 Delete an object of class (struct) pCrvMesh. More...
 
int CMA_SetModelType (pCrvMesh pCrvMeshObj, int iModelType)
 Set the type of geometric model. More...
 
int CMA_Curve (pCrvMesh pCrvMeshObj)
 Curve a given linear(straight-sided) mesh to be a high-order(curved) mesh. More...
 
int CMA_Untangle (pCrvMesh pCrvMeshObj)
 Fix the invalid curved elements of a given high-order(curved) mesh. More...
 
int CMA_Linearize (pCrvMesh pcrv_mesh_obj)
 Make all mesh entities linear by removing edge nodes if there is any. More...
 
int CMA_Optimize (pCrvMesh pCrvMeshObj)
 The main routine to perform the shape quality improvement capability. More...
 
int CMA_Adapt (pCrvMesh pcrv_mesh_obj)
 The main routine to do curved mesh adaptation. More...
 
int CMA_SetQualityLimit (pCrvMesh pCrvMeshObj, double dThreshold)
 Set the user-defined shape quality threshold for mesh improvement operations. More...
 
int CMA_DisplayStats (pCrvMesh pCrvMeshObj)
 Display the quality statistics of the mesh. More...
 
int CMA_Check (pCrvMesh pcrv_mesh_obj)
 Validity checks specifically designed for curved meshes. More...
 
int CMA_GlobPtn (pCrvMesh pcrv_mesh_obj)
 Global partition for curved meshes with edge nodes. More...
 

Typedef Documentation

typedef struct curveMesh* pCrvMesh
typedef struct meshAdapt* pMAdapt
typedef pMAdapt pMSAdapt

Function Documentation

int CMA_Adapt ( pCrvMesh  pcrv_mesh_obj)

The main routine to do curved mesh adaptation.

Parameters
pcrv_mesh_obj(In) Curved Mesh Object.
int CMA_Check ( pCrvMesh  pcrv_mesh_obj)

Validity checks specifically designed for curved meshes.

Parameters
pcrv_mesh_obj(In) Curved Mesh Object.

Here is the call graph for this function:

int CMA_Curve ( pCrvMesh  pCrvMeshObj)

Curve a given linear(straight-sided) mesh to be a high-order(curved) mesh.

This function does the mesh curving. The mesh need to be classified on a geometric model with appropriate parametric coordinates. Validity is not checked in this routine.

Parameters
pCrvMeshObj(In) Curved Mesh Object.

Here is the call graph for this function:

int CMA_Del ( pCrvMesh  pcrv_mesh_obj)

Delete an object of class (struct) pCrvMesh.

This function deletes a curved mesh object and de-allocates the memory.

Parameters
pcrv_mesh_obj(In) Curved Mesh Object.
int CMA_DisplayStats ( pCrvMesh  pCrvMeshObj)

Display the quality statistics of the mesh.

Parameters
pCrvMeshObj(In) Curved Mesh Object.

Here is the call graph for this function:

int CMA_GlobPtn ( pCrvMesh  pcrv_mesh_obj)

Global partition for curved meshes with edge nodes.

Parameters
pcrv_mesh_obj(In) Curved Mesh Object.

Here is the call graph for this function:

int CMA_Linearize ( pCrvMesh  pcrv_mesh_obj)

Make all mesh entities linear by removing edge nodes if there is any.

Parameters
pcrv_mesh_obj(In) Curved Mesh Object

Here is the call graph for this function:

int CMA_New ( pCrvMesh pcrv_mesh_obj,
pMeshMdl  pmesh_inst,
int  iSizeFldType,
int  iModelType 
)

Create an object of class (struct) pCrvMesh.

C APIs for curved mesh adaptationGiven a mesh, the function creates a curved mesh object with the default configuration.

Parameters
pcrv_mesh_obj(In/Out) Curved Mesh Object.
pmesh_inst(In) Input mesh.
iSizeFldType(In) Input size-field type
iModelType(In) Input model type
int CMA_Optimize ( pCrvMesh  pCrvMeshObj)

The main routine to perform the shape quality improvement capability.

Parameters
pCrvMeshObj(In) Curved Mesh Object.

Here is the call graph for this function:

int CMA_SetModelType ( pCrvMesh  pCrvMeshObj,
int  iModelType 
)

Set the type of geometric model.

This function tells the curving code what type of geometric model information is available. Currently supports: 0– no model, 1– mesh model with no parametric coordinates, and 2– CAD model with parametric coordinates.

Parameters
pCrvMeshObj(In) Curved Mesh Object.
iModelType(In) Flag of Model type info.

Here is the call graph for this function:

int CMA_SetQualityLimit ( pCrvMesh  pCrvMeshObj,
double  dThreshold 
)

Set the user-defined shape quality threshold for mesh improvement operations.

Parameters
pCrvMeshObj(In) Curved Mesh Object.
dThreshold(In) Input Shape Threshold.

Here is the call graph for this function:

int CMA_Untangle ( pCrvMesh  pCrvMeshObj)

Fix the invalid curved elements of a given high-order(curved) mesh.

This function does topological and geometric modifications to the cavity defined by the invalid element, and yields an all valid output mesh.

Parameters
pCrvMeshObj(In) Curved Mesh Object.

Here is the call graph for this function:

void MA_Adapt ( pMAdapt  pMAdaptDrvr)

Provide adaptation routines.

Given a Mesh Adaptation Driver, the function provides mesh adaptation routines based on the sequential execution of mesh modification operations to achieve the desired size and quality of the mesh.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
int MA_AnisoSmooth ( pMAdapt  pMAdaptDrvr,
double  dBeta[3] 
)

Anisotropic mesh gradation control.

Given a mesh adaptation driver and the smoothness prescribed value, the function smoothes the size field to control the element size and shape variation to avoid significant size jumps between the neighboring vertices.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
dBeta(In) Smoothness control value.
int MA_DecompositionBL_AspectRatio ( pMAdapt  pMAdaptDrvr,
double  dAspectRatioLimit 
)

Decomposition with aspect ratio, aspect ratio is a square of growth edge / layer edge.

int MA_DecompositionBL_ForQuality ( pMAdapt  pMAdaptDrvr)
void MA_Del ( pMAdapt  pMAdaptDrvr)

Delete Mesh Adaptation Driver.

Given a Mesh Adaptation Driver, the function deallocates it.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
void MA_GetRefLvl ( pMAdapt  pMAdaptDrvr,
pumi::pEntity  pEntityEnt,
int &  iRefLvl 
)

Get refinement level for an entity.

Given a mesh adaptation driver, the entity and the variable for refinement level, the function assigns the refinement level for the specific entity provided. The levels are: 0 - no refinement level assigned, 1 - refinement requested.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
pEntityEnt(In) Mesh entity.
iRefLvl(Out) Refinement level.
int MA_Mesh_DecompositionBL_ForQuality ( pMeshMdl  pMeshModel)
int MA_Mesh_TetrahedralizeBLs ( pMeshMdl  pMeshModel)
void MA_NewMeshAdaptDrvr ( pMAdapt pMAdaptDrvr,
pMeshMdl  pMeshInstance,
int  iSizeFldType 
)

Create an object of class (struct) pMAdapt.

Given a mesh, the function allocates a Mesh Adaptation Driver with the default configuration.

Parameters
pMAdaptDrvr(In/Out) Mesh Adaptation Driver.
pMeshInstance(In) Input mesh.
iSizeFldType(In) Input Size Field Type
void MA_NewMeshAdaptDrvr_ModelType ( pMAdapt pMAdaptDrvr,
pMeshMdl  pMeshInstance,
int  iSizeFldType,
int  iModelType 
)

Same as above, but with the ability to specifically provide the model type: 0 - no snapping, 1 - Not parametric, 2 - Parametric.

int MA_SetAdaptiveDecomp_AspectRatioLimit ( pMAdapt  pMAdaptDrvr,
double  dAspectRatioLimit 
)

Set the aspect ratio square limit for adaptive trimming in boundary layer mesh.

The function sets the aspect ratio square limit for the ability to provide adaptive trimming in boundary layer adaptation. If the aspect ratio of boundary layer entities goes higher than the limit is set, adaptive trimming routines are performed. Note that for the trimming routines to be executed it is needed to set the flag in MA_SetAdaptiveTrimmingFlag().

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
dAspectRatioLimit(In) Aspect ratio limit for the trimming.
int MA_SetAdaptiveDecompFlag ( pMAdapt  pMAdaptDrvr,
int  iFlag 
)

Set the flag for performing the adaptive trimming in boundary layer mesh.

The function sets the flag for the ability to provide adaptive trimming in boundary layer adaptation if the aspect ratio of boundary layer entities goes wrong. 0 means that that the no adaptive trimming will be performed. 1 stands for applying the trimming routines ones the wrong aspect ratio is identified.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
iFlag(In) Flag for trimming.
void MA_SetAnisoVtxSize ( pMAdapt  pMAdaptDrvr,
pumi::pVertex  pVertexVtx,
double  ddSize[3][3] 
)

Set anisotropic size for a specific vertex.

Given a mesh adaptation driver, a vertex and the desired anisotropic size, sets remembers the size for this specific vertex in order to achive the desired size during mesh modification operations.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
pVertexVtx(In) Input vertex.
ddSize(In) Desired anisotropic size.
void MA_SetCB ( pMAdapt  pMAdaptDrvr,
CBFunction  CB,
void *  userData 
)

Set a callback function.

Given a Mesh Adaptation Driver, the function remembers the callbck function and needed user (application) data in order to call the callback function while doing mesh adaptation.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
CB(In) Callback function.
userData(In) User (application) data.
int MA_SetFirstLayerThickness ( pMAdapt  pMAdaptDrvr,
pumi::pVertex  pVertexVtx,
double  dFirstNodalSpacing 
)

Attach information about first nodal spacing to the vertex.

Given a mesh vertex, the function attaches the first layer thickness to it.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
pVertexVtx(In) Mesh vertex.
dFirstNodalSpacing(In) Nodal spacing.
void MA_SetFirstLayerThicknessFlag ( pMAdapt  pMAdaptDrvr,
int  isFirstLayerThicknessSet 
)

Set the flag for first layer thickness in boundary layer mesh.

The function sets the flag for the first layer thickness in boundary layer adaptation. 0 means that that the first nodal spacing off the wall is not going to be considered. 1 stands for using the first layer thickness which is supposed to be attached to the originating nodes.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
isFirstLayerThicknessSet(In) First layer thickness flag.
void MA_SetIsoVtxSize ( pMAdapt  pMAdaptDrvr,
pumi::pVertex  pVertexVtx,
double  dSize 
)

Set isotropic size for a specific vertex.

Given a mesh adaptation driver, a vertex and the desired isotropic size, sets remembers the size for this specific vertex in order to achive the desired size during mesh modification operations.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
pVertexVtx(In) Input vertex.
dSize(In) Desired isotropic size.
void MA_SetNumIt ( pMAdapt  pMAdaptDrvr,
int  iNumIt 
)

Set the number of mesh modification steps (iterations).

Given a mesh adaptation driver, the function sets the number of mesh modification steps (iterations).

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
iNumIt(In) Number of mesh modification steps (iterations).
void MA_SetPredLoadBal ( pMAdapt  pMAdaptDrvr,
int  iPredLoadBal 
)

Set the option for providing predictive load balance.

Given a mesh adaptation driver, the function sets the option for providing predictive load balance. The options are: 0 - no predictive load balance, 1 - predictive load balance.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
iPredLoadBal(In) Predictive load balance option.
void MA_SetQualityThreshold ( pMAdapt  pMAdaptDrvr,
double  dQualThreshold 
)
void MA_SetRefLvl ( pMAdapt  pMAdaptDrvr,
pumi::pEntity  pEntityEnt,
int  iRefLvl 
)

Set refinement level for an entity.

Given a mesh adaptation driver, the entity and the refinement level, the function remembers the refinement level for this specific entity. The levels are: 0 - no refinement needed, 1 - refinement requested.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
pEntityEnt(In) Mesh entity.
iRefLvl(In) Refinement level.
void MA_SetSizeFldFunc ( pMAdapt  pMAdaptDrvr,
adaptSFunc  SizeFldFunc 
)

Set analytical size field function.

Given a mesh adaptation driver, the function sets the analytical size field function which will be called to calculate the size for each mesh vertex.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
SizeFldFunc(In) Pointer to the analytical size field function.
void MA_SetSizeFldType ( pMAdapt  pMAdaptDrvr,
int  iSizeFldType 
)

Set size field type.

Given a mesh adaptation driver, the function sets the size field type. The options are from SizeFldType enum: Application - the size field will be provided by the application (default). TagDriven - tag driven size field. Analytical - analytical size field.

Parameters
pMAdaptDrvr(In) Mesh Adaptation Driver.
iSizeFldType(In) Size field type.
int MA_TetrahedralizeBL ( pMAdapt  pMAdaptDrvr)

Tetrahedralize mesh.

int MA_Vtx_Size ( pumi::pVertex  pVertexVtx,
double  dAnisoSize[3][3] 
)

Calculate the mesh size associated with vertex.

Given a mesh vertex, the function calculates the mesh size associated with the vertex. The anisotropic size is returned in the order of increasing magnitude

Parameters
pVertexVtx(In) Mesh vertex.
dAnisoSize(In) Anisotropic size.