Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions doc/doxygen/Doxyfile.in
Original file line number Diff line number Diff line change
Expand Up @@ -1736,7 +1736,7 @@ MAN_LINKS = NO
# captures the structure of the code including all documentation.
# The default value is: NO.

GENERATE_XML = NO
GENERATE_XML = YES

# The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
Expand Down Expand Up @@ -1880,7 +1880,7 @@ INCLUDE_FILE_PATTERNS =
# recursively expanded use the := operator instead of the = operator.
# This tag requires that the tag ENABLE_PREPROCESSING is set to YES.

PREDEFINED = USE_ELAS USE_SCOTCH USE_VTK ENABLE_TESTING
PREDEFINED = USE_ELAS USE_SCOTCH USE_VTK ENABLE_TESTING LIBMMG3D_EXPORT

# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
Expand Down
4 changes: 2 additions & 2 deletions src/mmg3d/analys_3d.c
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@
#include "libmmg3d_private.h"

/**
* \param mesh pointer towarad the mesh structure.
* \param mesh pointer towards the mesh structure.
*
* Set all boundary triangles to required and add a tag to detect that they are
* not realy required.
* not really required.
*
*/
void MMG3D_set_reqBoundaries(MMG5_pMesh mesh) {
Expand Down
2 changes: 1 addition & 1 deletion src/mmg3d/boulep_3d.c
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ int MMG5_boulenm(MMG5_pMesh mesh,MMG5_int start,int ip,int iface,
* \param start tetra index.
* \param ip point index.
* \param t computed tangent vector.
* \return 0 when more than two NOM points are attached to ip, 1 if sucess.
* \return 0 when more than two NOM points are attached to ip, 1 if success.
*
* Travel the ball of the internal non manifold point ip in tetra start
* and calculate the tangent vector to the underlying curve.
Expand Down
63 changes: 31 additions & 32 deletions src/mmg3d/colver_3d.c
Original file line number Diff line number Diff line change
Expand Up @@ -236,19 +236,16 @@ MMG5_int MMG3D_unfold_shell(MMG5_pMesh mesh,MMG5_int start,MMG5_int end, MMG5_i
/**
* \param mesh pointer to the mesh structure.
* \param k index of the starting tetra.
* \param iface local index of the starting face in the tetra \a k.
* \param ideg local index of the starting edge in the face \a iface.
* \param lists surfacic ball of p.
* \param ilists number of elements in the surfacic ball of p.
* \param iface local index of starting face in the tetra \a k.
* \param iedg local index of starting edge in the face \a iface (local num).
* \param lists surfacic ball of point \a np.
* \param ilists number of elements in the surfacic ball of point \a np.
*
* \return 0 if the check of the topology fails, 1 if success, -1 if the
* function fails.
*
* Topological check on the surface ball of np and nq in collapsing np->nq ;
* iface = boundary face on which lie edge iedg - in local face num. (pq, or
* ia in local tet notation). See the Mmg Google
* Drive/Documentation/mmg3d/topchkcol_bdy3D.pdf for a picture of the
* configuration.
* Topological checks of surfacic ball of \a np and \a nq in collapsing
* \a np over \a nq.
*
*/
static int
Expand Down Expand Up @@ -496,33 +493,35 @@ int MMG3D_get_shellEdgeTag(MMG5_pMesh mesh,MMG5_int start, int8_t ia,uint16_t *
/**
* \param mesh pointer to the mesh structure.
* \param met pointer to the metric structure.
* \param k index of element in which we collapse.
* \param iface face through wich we perform the collapse
* \param iedg edge to collapse (in local face num)
* \param listv pointer to the list of the tetra in the ball of \a p0.
* \param ilistv number of tetra in the ball of \a p0.
* \param lists pointer to the surfacic ball of \a p0.
* \param ilists number of tetra in the surfacic ball of \a p0.
* \param refmin reference of one of the two subdomains in presence
* \param refplus reference of the other subdomain in presence
* \param k index of element from which collapse occurs.
* \param iface face through which collapse is performed.
* \param iedg edge to collapse (in local face num).
* \param listv pointer to the list of tetra in ball of \a p0.
* \param ilistv number of tetra in ball of \a p0.
* \param lists pointer to surfacic ball of \a p0.
* \param ilists number of tetra in surfacic ball of \a p0.
* \param refmin reference of one of the two subdomains in presence.
* \param refplus reference of the other subdomain in presence.
* \param typchk typchk type of checking permformed for edge length
* (hmax or MMG3D_LLONG criterion).
* \param isnm 1 if edge is non-manifold
* \param isnmint 1 if ip is an internal non manifold point;
* \param isnm 1 if edge is non-manifold.
* \param isnmint 1 if ip is an internal non manifold point.
*
* \return ilistv if success, 0 if the point cannot be collapsed, -1 if fail.
*
* Check whether collapse ip -> iq could be performed, ip boundary point;
* 'mechanical' tests (positive jacobian) are not performed here ;
* iface = boundary face on which lie edge iedg - in local face num.
* (pq, or ia in local tet notation).
* If isnm is 1, the collapse occurs along an external MG_NOM edge.
* If isnmint is 1, ip is an internal non manifold point and dont have normals.
* In this last case, \a lists, \a ilists \a refmin, \a refplus and \a isnm
* variables aren't used (we neither have a surfacic ball nor "positive" and
* "negative" volumes)
* Check whether collapse point \a ip over \a iq could be performed, where
* \a ip is a boundary point.
*
* \remark we don't check edge lengths.
* 'Mechanical' tests (positive jacobian) are not performed here.
*
* If \a isnm is 1, the collapse occurs along an external MG_NOM edge.
*
* If \a isnmint is 1, ip is an internal non manifold point and does not have
* normals. In this last case, \a lists, \a ilists \a refmin, \a refplus and
* \a isnm variables aren't used (we neither have a surfacic ball nor
* "positive" and "negative" volumes)
*
* \remark edge lengths are not checked.
*/
int MMG5_chkcol_bdy(MMG5_pMesh mesh,MMG5_pSol met,MMG5_int k,int8_t iface,
int8_t iedg,int64_t *listv,int ilistv,MMG5_int *lists,int ilists,
Expand Down Expand Up @@ -605,7 +604,7 @@ int MMG5_chkcol_bdy(MMG5_pMesh mesh,MMG5_pSol met,MMG5_int k,int8_t iface,
}

if ( nbbdy == 4 ) {
/* Only one element in the domain: we don't want to delete it */
/* Only one element in the domain: it cannot be deleted */
return 0;
}
else if ( nbbdy == 3 ) {
Expand All @@ -632,7 +631,7 @@ int MMG5_chkcol_bdy(MMG5_pMesh mesh,MMG5_pSol met,MMG5_int k,int8_t iface,

/* Avoid surface crimping: check that the collapse doesn't merge 3
* bdy edge along a non bdy face: we have to check the edge of each
* shell because some MG_BDY tags may be missings due to the creation
* shell because some MG_BDY tags may be missing due to the creation
* of an xtetra during a previous collapse */
if ( (!pt->xt) || !(pxt->ftag[i] & MG_BDY) ) {
uint16_t tag0,tag1,tag2;
Expand Down
12 changes: 6 additions & 6 deletions src/mmg3d/hash_3d.c
Original file line number Diff line number Diff line change
Expand Up @@ -1538,7 +1538,7 @@ int MMG5_bdryTria(MMG5_pMesh mesh, MMG5_int ntmesh) {
* \param mesh pointer to the mesh structure.
* \return 1 if success, 0 otherwise.
*
* - Remove double triangles from tria array.
* - Remove duplicate triangles from tria array.
*
* - Remove triangles that do not belong to a boundary (non opnbdy mode) from
* tria array.
Expand All @@ -1547,13 +1547,13 @@ int MMG5_bdryTria(MMG5_pMesh mesh, MMG5_int ntmesh) {
* Count the number of faces in mesh and compare this number to the number of
* given triangles.
*
* - If the founded number exceed the given one, add the missing
* - If found number exceeds given one, add the missing
* boundary triangles (call to MMG5_bdryTria). Do nothing otherwise.
*
* - Fill the adjacency relationship between prisms and tetra (fill adjapr with
* a negative value to mark this special faces).
*
* - Set to required the triangles at interface betwen prisms and tet.
* - Set triangles at interface betwen prisms and tet to required.
*
*/
int MMG5_chkBdryTria(MMG5_pMesh mesh) {
Expand Down Expand Up @@ -1585,11 +1585,11 @@ int MMG5_chkBdryTria(MMG5_pMesh mesh) {

/**
* \param mesh pointer to the mesh structure.
* \param ntmesh number of boundary triangles in the mesh.
* \param ntpres number of preserved boundaries in the mesh.
* \param ntmesh number of boundary triangles.
* \param ntpres number of preserved boundaries (open boundary mode).
* \return 0 if failed, 1 if success.
*
* Step 1 of MMG5_chkBdryTria : scan the mesh and count the boundaries
* Step 1 of MMG5_chkBdryTria : scan the mesh and count the boundaries.
*
*/
int MMG5_chkBdryTria_countBoundaries(MMG5_pMesh mesh, MMG5_int *ntmesh, MMG5_int *ntpres) {
Expand Down
8 changes: 4 additions & 4 deletions src/mmg3d/mmg3d1.c
Original file line number Diff line number Diff line change
Expand Up @@ -883,8 +883,8 @@ MMG5_int MMG5_movtet(MMG5_pMesh mesh,MMG5_pSol met, MMG3D_pPROctree PROctree,
/**
* \param mesh pointer to the mesh structure.
* \param met pointer to the metric structure.
* \param typchk type of checking permformed for edge length (hmin or LSHORT criterion).
* \return a negative value in case of failure, number of collapsed points otherwise.
* \param typchk type of edge length criterion (hmin or LSHORT criterion).
* \return negative value in case of failure, number of collapsed points otherwise.
*
* Attempt to collapse short edges.
*
Expand All @@ -904,7 +904,7 @@ static MMG5_int MMG5_coltet(MMG5_pMesh mesh,MMG5_pSol met,int8_t typchk) {
int16_t isnmint;

int8_t i,j,ip,iq;
int ier, bsret; // function return values/error codes
int ier, bsret;

nc = nnm = 0;

Expand Down Expand Up @@ -935,7 +935,7 @@ static MMG5_int MMG5_coltet(MMG5_pMesh mesh,MMG5_pSol met,int8_t typchk) {

if ( p0->flag == base ) {
/* I think that we can't pass here because we break the loop when base
* is setted and just after we increment it */
* is set and just after we increment it */
assert(0);
continue;
}
Expand Down
2 changes: 1 addition & 1 deletion src/mmg3d/mmg3d1_delone.c
Original file line number Diff line number Diff line change
Expand Up @@ -948,7 +948,7 @@ int MMG5_optet(MMG5_pMesh mesh, MMG5_pSol met,MMG3D_pPROctree PROctree) {
* \param mesh pointer to the mesh structure.
* \param met pointer to the metric structure.
* \param PROctree pointer to the PROctree structure.
* \param permNodGlob if provided, strore the global permutation of nodes
* \param permNodGlob if provided, store the global permutation of nodes
* \return 0 if failed, 1 otherwise.
*
* Analyze tetrahedra and split long / collapse short, according to
Expand Down
17 changes: 13 additions & 4 deletions src/mmg3d/tools_3d.c
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,18 @@ inline int MMG5_directsurfball(MMG5_pMesh mesh, MMG5_int ip, MMG5_int *list, int
return 2;
}

/** If need be, reorder the surfacic ball of point ip, so that its first element has
edge (p,q) (nump,q = global num) as edge MMG5_iprv2[ip] of face iface.
return 2 = orientation reversed, 1 otherwise */
/**
* \param mesh pointer to mesh structure.
* \param nump point to collapse (global num).
* \param numq point receiving collapse (global num).
* \param list pointer to surfacic ball of \a nump.
* \param ilist number of elements in surfacic ball.
* \return 2 if ball reordered, 1 otherwise.
*
* Reorder surfacic ball of point \a ip, so that its first element has
* edge \a (p,q) as edge \a MMG5_iprv2[ip] of face \a iface.
*
*/
int MMG5_startedgsurfball(MMG5_pMesh mesh,MMG5_int nump,MMG5_int numq,MMG5_int *list,int ilist) {
MMG5_pTetra pt;
int l;
Expand All @@ -105,7 +114,7 @@ int MMG5_startedgsurfball(MMG5_pMesh mesh,MMG5_int nump,MMG5_int numq,MMG5_int *

ipt = MMG5_idirinv[iface][ip]; // index of ip in face iface
ipt = MMG5_inxt2[ipt]; // next index in this face
ipt = MMG5_idir[iface][ipt]; // index of this point in local num of tetra
ipt = MMG5_idir[iface][ipt]; // index of this point in local num of tetra

if(pt->v[ipt] == numq) return 1;

Expand Down
Loading