Netgen自带的网格控制
所有的网格控制参数存储在Ng_Meshing_Parameters中
//重新计算一边网格
void Widget::geranmesh()
{
if(pOccgeo){
int np, ne; // Set the Meshing Parameters to be used
nglib::Ng_Result ng_res;
Ng_OCC_SetLocalMeshSize(pOccgeo, m_pMesh, &m_mparam);
ng_res = nglib::Ng_OCC_GenerateEdgeMesh(pOccgeo, m_pMesh, &m_mparam);
QString strInfo;
if(ng_res != nglib::NG_OK)
{
strInfo +=QString("Error in Edge Meshing....Aborting!!");
ui->textBrowser->setText(strInfo);
return;
}
ng_res = nglib::Ng_OCC_GenerateSurfaceMesh(pOccgeo, m_pMesh, &m_mparam);
if(ng_res != nglib::NG_OK){
strInfo +="\n";
strInfo +=QString("Error in Surface Meshing....Aborting!!");
ui->textBrowser->setText(strInfo);
return;
}
//4面体计算会出错
if(!m_mparam.quad_dominated)
Ng_GenerateVolumeMesh(m_pMesh,&m_mparam);
np = nglib::Ng_GetNP(m_pMesh);
strInfo +=QString("Points: %1").arg(np);
ui->textBrowser->setText(strInfo);
ne = nglib::Ng_GetNE(m_pMesh);
strInfo +=QString("\nelemet: %1").arg(ne);
ui->textBrowser->setText(strInfo);
}
}