Adding comments + removing SMESH_Gen argument
This commit is contained in:
parent
fbfd90a1f8
commit
75f2fd83a4
@ -198,11 +198,20 @@ bool NETGENPlugin_NETGEN_3D::CheckHypothesis (SMESH_Mesh& aMesh,
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
/**
|
||||
* @brief Get an iterator on the Surface element with their orientation
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* @brief Compute the list of already meshed Surface elements and info
|
||||
* on their orientation and if they are internal
|
||||
*
|
||||
* @param aMesh Global Mesh
|
||||
* @param aShape Shape associated to the mesh
|
||||
* @param proxyMesh pointer to mesh used fo find the elements
|
||||
* @param internals information on internal sub shapes
|
||||
* @param helper helper associated to the mesh
|
||||
* @param listElements map of surface element associated with
|
||||
* their orientation and internal status
|
||||
* @return true if their was some error
|
||||
*/
|
||||
bool NETGENPlugin_NETGEN_3D::getSurfaceElements(
|
||||
SMESH_Mesh& aMesh,
|
||||
const TopoDS_Shape& aShape,
|
||||
@ -257,6 +266,18 @@ bool NETGENPlugin_NETGEN_3D::getSurfaceElements(
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Part of Compute: adding already meshed elements
|
||||
* into netgen structure
|
||||
*
|
||||
* @param aMesh Global mesh
|
||||
* @param aShape Shape associated with the mesh
|
||||
* @param nodeVec Mapping between nodes mesh id and netgen structure id
|
||||
* @param ngLib Wrapper on netgen lib
|
||||
* @param helper helper assocaited to the mesh
|
||||
* @param Netgen_NbOfNodes Number of nodes in netge structure
|
||||
* @return true if there was some error
|
||||
*/
|
||||
|
||||
bool NETGENPlugin_NETGEN_3D::computeFillNgMesh(
|
||||
SMESH_Mesh& aMesh,
|
||||
@ -388,6 +409,16 @@ bool NETGENPlugin_NETGEN_3D::computeFillNgMesh(
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Part of Compute: Setting the netgen parameters from the Hypothesis
|
||||
*
|
||||
* @param aMesh Global mesh
|
||||
* @param ngLib Wrapper on netgen lib
|
||||
* @param occgeo Mapping between nodes mesh id and netgen structure id
|
||||
* @param helper helper assocaited to the mesh
|
||||
* @param endWith end step of netgen
|
||||
* @return true if there was some error
|
||||
*/
|
||||
bool NETGENPlugin_NETGEN_3D::computePrepareParam(
|
||||
SMESH_Mesh& aMesh,
|
||||
NETGENPlugin_NetgenLibWrapper &ngLib,
|
||||
@ -451,6 +482,17 @@ bool NETGENPlugin_NETGEN_3D::computePrepareParam(
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Part of Compute: call to the netgen mesher
|
||||
*
|
||||
* @param occgeo netgen geometry structure
|
||||
* @param nodeVec Mapping between nodes mesh id and netgen structure id
|
||||
* @param ngMesh netgen mesh structure
|
||||
* @param ngLib Wrapper on netgen lib
|
||||
* @param startWith starting step of netgen
|
||||
* @param endWith end step of netgen
|
||||
* @return true if there was some error
|
||||
*/
|
||||
bool NETGENPlugin_NETGEN_3D::computeRunMesher(
|
||||
netgen::OCCGeometry &occgeo,
|
||||
vector< const SMDS_MeshNode* > &nodeVec,
|
||||
@ -509,6 +551,15 @@ bool NETGENPlugin_NETGEN_3D::computeRunMesher(
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Part of Compute: Adding new element created by mesher to SMESH_Mesh
|
||||
*
|
||||
* @param nodeVec Mapping between nodes mesh id and netgen structure id
|
||||
* @param ngLib Wrapper on netgen lib
|
||||
* @param helper tool associated to the mesh to add element
|
||||
* @param Netgen_NbOfNodes Number of nodes in netgen structure
|
||||
* @return true if there was some error
|
||||
*/
|
||||
bool NETGENPlugin_NETGEN_3D::computeFillMesh(
|
||||
vector< const SMDS_MeshNode* > &nodeVec,
|
||||
NETGENPlugin_NetgenLibWrapper &ngLib,
|
||||
@ -555,6 +606,14 @@ bool NETGENPlugin_NETGEN_3D::computeFillMesh(
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Compute mesh associate to shape
|
||||
*
|
||||
* @param aMesh The mesh
|
||||
* @param aShape The shape
|
||||
* @return true fi there are some error
|
||||
*/
|
||||
bool NETGENPlugin_NETGEN_3D::Compute(
|
||||
SMESH_Mesh& aMesh,
|
||||
const TopoDS_Shape& aShape)
|
||||
|
@ -82,7 +82,7 @@ using namespace nglib;
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
* Constructor
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
@ -94,7 +94,7 @@ NETGENPlugin_NETGEN_3D_Remote::NETGENPlugin_NETGEN_3D_Remote(int hypId, SMESH_Ge
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
* Destructor
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
@ -102,7 +102,12 @@ NETGENPlugin_NETGEN_3D_Remote::~NETGENPlugin_NETGEN_3D_Remote()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Fill the structure netgen_param with the information from the hypothesis
|
||||
*
|
||||
* @param hyp the hypothesis
|
||||
* @param aParams the netgen_param structure
|
||||
*/
|
||||
void NETGENPlugin_NETGEN_3D_Remote::fillParameters(const NETGENPlugin_Hypothesis* hyp, netgen_params &aParams)
|
||||
{
|
||||
aParams.maxh = hyp->GetMaxSize();
|
||||
@ -136,7 +141,15 @@ void NETGENPlugin_NETGEN_3D_Remote::fillParameters(const NETGENPlugin_Hypothesis
|
||||
#endif
|
||||
}
|
||||
|
||||
// write in a binary file the orientation for each 2D element of the mesh
|
||||
//
|
||||
|
||||
/**
|
||||
* @brief write in a binary file the orientation for each surface element of the mesh
|
||||
*
|
||||
* @param aMesh The mesh
|
||||
* @param aShape the shape associated to the mesh
|
||||
* @param output_file name of the binary file
|
||||
*/
|
||||
void NETGENPlugin_NETGEN_3D_Remote::exportElementOrientation(SMESH_Mesh& aMesh,
|
||||
const TopoDS_Shape& aShape,
|
||||
const std::string output_file)
|
||||
@ -195,7 +208,13 @@ void NETGENPlugin_NETGEN_3D_Remote::exportElementOrientation(SMESH_Mesh& aMesh,
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Compute mesh associate to shape
|
||||
*
|
||||
* @param aMesh The mesh
|
||||
* @param aShape The shape
|
||||
* @return true fi there are some error
|
||||
*/
|
||||
bool NETGENPlugin_NETGEN_3D_Remote::Compute(SMESH_Mesh& aMesh,
|
||||
const TopoDS_Shape& aShape)
|
||||
{
|
||||
@ -351,7 +370,11 @@ bool NETGENPlugin_NETGEN_3D_Remote::Compute(SMESH_Mesh& aMesh,
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Assign submeshes to compute
|
||||
*
|
||||
* @param aSubMesh submesh to add
|
||||
*/
|
||||
void NETGENPlugin_NETGEN_3D_Remote::setSubMeshesToCompute(SMESH_subMesh * aSubMesh)
|
||||
{
|
||||
SMESH_MeshLocker myLocker(aSubMesh->GetFather());
|
||||
|
@ -76,19 +76,19 @@ using namespace nglib;
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
* Constructor
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
NETGENPlugin_NETGEN_3D_SA::NETGENPlugin_NETGEN_3D_SA()
|
||||
: NETGENPlugin_NETGEN_3D(0, _gen=new SMESH_Gen())
|
||||
: NETGENPlugin_NETGEN_3D(0, new SMESH_Gen())
|
||||
{
|
||||
_name = "NETGEN_3D_SA";
|
||||
}
|
||||
|
||||
//=============================================================================
|
||||
/*!
|
||||
*
|
||||
* Destructor
|
||||
*/
|
||||
//=============================================================================
|
||||
|
||||
@ -98,15 +98,18 @@ NETGENPlugin_NETGEN_3D_SA::~NETGENPlugin_NETGEN_3D_SA()
|
||||
delete _gen;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
/**
|
||||
* @brief fill plugin hypothesis from the netgen_params structure
|
||||
*
|
||||
* @param aParams the structure
|
||||
* @param gen SMESH_Gen associate with the SA
|
||||
*/
|
||||
|
||||
void NETGENPlugin_NETGEN_3D_SA::fillHyp(netgen_params aParams, SMESH_Gen* gen)
|
||||
void NETGENPlugin_NETGEN_3D_SA::fillHyp(netgen_params aParams)
|
||||
{
|
||||
if(_gen)
|
||||
std::cout << "_gen is set" << std::endl;
|
||||
if(aParams.has_netgen_param){
|
||||
NETGENPlugin_Hypothesis * hypParameters = new NETGENPlugin_Hypothesis(0, gen);
|
||||
NETGENPlugin_Hypothesis * hypParameters = new NETGENPlugin_Hypothesis(0, GetGen());
|
||||
|
||||
hypParameters->SetMaxSize(aParams.maxh);
|
||||
hypParameters->SetMinSize(aParams.minh);
|
||||
@ -134,12 +137,22 @@ void NETGENPlugin_NETGEN_3D_SA::fillHyp(netgen_params aParams, SMESH_Gen* gen)
|
||||
_hypParameters = dynamic_cast< const NETGENPlugin_Hypothesis *> (hypParameters);
|
||||
}
|
||||
if(aParams.has_maxelementvolume_hyp){
|
||||
_hypMaxElementVolume = new StdMeshers_MaxElementVolume(1, gen);
|
||||
_hypMaxElementVolume = new StdMeshers_MaxElementVolume(1, GetGen());
|
||||
_maxElementVolume = aParams.maxElementVolume;
|
||||
}
|
||||
// TODO: Handle viscous layer
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Write a binary file containing information on the elements/nodes
|
||||
* created by the mesher
|
||||
*
|
||||
* @param nodeVec mapping between the mesh id and the netgen structure id
|
||||
* @param ngLib Wrapper on netgen library
|
||||
* @param new_element_file Name of the output file
|
||||
* @param Netgen_NbOfNodes Number of nodes in the netgen structure
|
||||
* @return true if there are some error
|
||||
*/
|
||||
bool NETGENPlugin_NETGEN_3D_SA::computeFillNewElementFile(
|
||||
std::vector< const SMDS_MeshNode* > &nodeVec,
|
||||
NETGENPlugin_NetgenLibWrapper &ngLib,
|
||||
@ -190,9 +203,22 @@ bool NETGENPlugin_NETGEN_3D_SA::computeFillNewElementFile(
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
bool NETGENPlugin_NETGEN_3D_SA::Compute(TopoDS_Shape &aShape, SMESH_Mesh& aMesh, netgen_params& aParams,
|
||||
std::string new_element_file, bool output_mesh)
|
||||
/**
|
||||
* @brief Compute mesh associated to shape
|
||||
*
|
||||
* @param aShape the shape
|
||||
* @param aMesh the mesh
|
||||
* @param aParams netgen_params structure
|
||||
* @param new_element_file Name of the file containing new element
|
||||
* @param output_mesh Name of the output mesh (if empty it will not be written)
|
||||
* @return true if there are some error
|
||||
*/
|
||||
bool NETGENPlugin_NETGEN_3D_SA::Compute(
|
||||
TopoDS_Shape &aShape,
|
||||
SMESH_Mesh& aMesh,
|
||||
netgen_params& aParams,
|
||||
std::string new_element_file,
|
||||
bool output_mesh)
|
||||
{
|
||||
// vector of nodes in which node index == netgen ID
|
||||
vector< const SMDS_MeshNode* > nodeVec;
|
||||
@ -222,6 +248,18 @@ bool NETGENPlugin_NETGEN_3D_SA::Compute(TopoDS_Shape &aShape, SMESH_Mesh& aMesh,
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Running the mesher on the given files
|
||||
*
|
||||
* @param input_mesh_file Mesh file (containing 2D elements)
|
||||
* @param shape_file Shape file (BREP or STEP format)
|
||||
* @param hypo_file Ascii file containing the netgen parameters
|
||||
* @param element_orientation_file Binary file containing the orientation of surface elemnts
|
||||
* @param new_element_file output file containing info the elements created by the mesher
|
||||
* @param output_mesh_file output mesh file (if empty it will not be created)
|
||||
* @return int
|
||||
*/
|
||||
int NETGENPlugin_NETGEN_3D_SA::run(const std::string input_mesh_file,
|
||||
const std::string shape_file,
|
||||
const std::string hypo_file,
|
||||
@ -231,10 +269,8 @@ int NETGENPlugin_NETGEN_3D_SA::run(const std::string input_mesh_file,
|
||||
{
|
||||
|
||||
_element_orientation_file = element_orientation_file;
|
||||
// Importing mesh
|
||||
SMESH_Gen gen;
|
||||
|
||||
std::unique_ptr<SMESH_Mesh> myMesh(gen.CreateMesh(false));
|
||||
std::unique_ptr<SMESH_Mesh> myMesh(_gen->CreateMesh(false));
|
||||
|
||||
importMesh(input_mesh_file, *myMesh);
|
||||
|
||||
@ -246,7 +282,7 @@ int NETGENPlugin_NETGEN_3D_SA::run(const std::string input_mesh_file,
|
||||
netgen_params myParams;
|
||||
|
||||
importNetgenParams(hypo_file, myParams);
|
||||
fillHyp(myParams, &gen);
|
||||
fillHyp(myParams);
|
||||
|
||||
MESSAGE("Meshing with netgen3d");
|
||||
int ret = Compute(myShape, *myMesh, myParams,
|
||||
@ -267,7 +303,19 @@ int NETGENPlugin_NETGEN_3D_SA::run(const std::string input_mesh_file,
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Compute the list of already meshed Surface elements and info
|
||||
* on their orientation and if they are internal
|
||||
*
|
||||
* @param aMesh Global Mesh
|
||||
* @param aShape Shape associated to the mesh
|
||||
* @param proxyMesh pointer to mesh used fo find the elements
|
||||
* @param internals information on internal sub shapes
|
||||
* @param helper helper associated to the mesh
|
||||
* @param listElements map of surface element associated with
|
||||
* their orientation and internal status
|
||||
* @return true if their was some error
|
||||
*/
|
||||
bool NETGENPlugin_NETGEN_3D_SA::getSurfaceElements(
|
||||
SMESH_Mesh& aMesh,
|
||||
const TopoDS_Shape& aShape,
|
||||
|
@ -38,7 +38,6 @@
|
||||
class NETGENPlugin_NetgenLibWrapper;
|
||||
class netgen_params;
|
||||
class SMDS_MeshNode;
|
||||
class SMESH_Gen;
|
||||
|
||||
using namespace std;
|
||||
|
||||
@ -48,7 +47,7 @@ class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_3D_SA: public NETGENPlugin_NETGEN_
|
||||
NETGENPlugin_NETGEN_3D_SA();
|
||||
virtual ~NETGENPlugin_NETGEN_3D_SA();
|
||||
|
||||
void fillHyp(netgen_params aParams, SMESH_Gen* gen);
|
||||
void fillHyp(netgen_params aParams);
|
||||
bool Compute(TopoDS_Shape &aShape, SMESH_Mesh& aMesh, netgen_params& aParams,
|
||||
std::string new_element_file, bool output_mesh);
|
||||
|
||||
@ -77,8 +76,6 @@ class NETGENPLUGIN_EXPORT NETGENPlugin_NETGEN_3D_SA: public NETGENPlugin_NETGEN_
|
||||
) override;
|
||||
|
||||
std::string _element_orientation_file="";
|
||||
SMESH_Gen *_gen=nullptr;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user