8.0
general documentation
cs_join.h File Reference
#include "cs_base.h"
#include "cs_join_util.h"
#include "cs_mesh.h"
+ Include dependency graph for cs_join.h:

Go to the source code of this file.

Functions

int cs_join_add (const char *sel_criteria, float fraction, float plane, int verbosity, int visualization)
 
void cs_join_set_advanced_param (int join_num, double mtf, double pmf, int tcm, int icm, int max_break, int max_sub_faces, int tml, int tmb, double tmr, double tmr_distrib)
 Set advanced parameters for the joining algorithm. More...
 
void cs_join_all (bool preprocess)
 
void cs_join_finalize (void)
 
void cs_join_mark_selected_faces (const cs_mesh_t *mesh, bool preprocess, bool b_select_flag[])
 

Function Documentation

◆ cs_join_add()

int cs_join_add ( const char *  sel_criteria,
float  fraction,
float  plane,
int  verbosity,
int  visualization 
)

Add a cs_join_t structure to the list of pending joinings.

Parameters
[in]sel_criteriaboundary face selection criteria
[in]fractionvalue of the fraction parameter
[in]planevalue of the plane parameter
[in]verbositylevel of verbosity required
[in]visualizationlevel of visualization required
Returns
number (1 to n) associated with new joining

◆ cs_join_all()

void cs_join_all ( bool  preprocess)

◆ cs_join_finalize()

void cs_join_finalize ( void  )

◆ cs_join_mark_selected_faces()

void cs_join_mark_selected_faces ( const cs_mesh_t mesh,
bool  preprocess,
bool  b_select_flag[] 
)

◆ cs_join_set_advanced_param()

void cs_join_set_advanced_param ( int  join_num,
double  mtf,
double  pmf,
int  tcm,
int  icm,
int  max_break,
int  max_sub_faces,
int  tml,
int  tmb,
double  tmr,
double  tmr_distrib 
)

Set advanced parameters for the joining algorithm.

Parameters
[in]join_numjoining operation number
[in]mtfmerge tolerance factor
[in]pmfpre-merge factor
[in]tcmtolerance computation mode
[in]icmintersection computation mode
[in]max_breakmax number of equivalences to break (merge step)
[in]max_sub_facesmax. possible number of sub-faces by splitting a face
[in]tmltree max level
[in]tmbtree max boxes
[in]tmrtree max ratio
[in]tmr_distribtree max ratio for distribution

The first set of parameters allow modifing the intersection tolerance detection and interection merge behavior:

  • mtf: merge tolerance factor, locally modifies the tolerance associated to each vertex before the merge step. The following cases apply:
    • if mtf = 0, no vertex merge
    • if mtf < 1, the vertex merge is stricter. It may increase the number of tolerance reductions and therefore define smaller subsets of vertices to merge together, possibly leading to more small edges.
    • mtf = 1 is the default
    • if mtf > 1, the vertex merging is less strict. The subset of vertices which can be merged is larger.
  • pmf: a pre-merge factor. This parameter is used to define a limit under which two vertices are merged before the merge step (tolerance limit for the pre-merge = pmf * fraction),
  • tcm: a tolerance computation mode. If its value is:
    • 1 (default), the tolerance is the minimal edge length related to a vertex, multiplied by a fraction.
    • 2, the tolerance is computed as in 1 with an additional multiplication by a coefficient equal to max(sin(e1), sin(e2), where e1 and e2 are two edges sharing a same vertex v for the tolerance is computed.
    • 11: similar to 1 but taking into account only the selected faces.
    • 12: similar to 2 but taking into account only the selected faces.
  • icm: the intersection computation mode. If its value is:
    • 1 (default), the original algorithm is used. Care should be taken to clip the intersection to an extremity.
    • 2, a new intersection algorithm is used. Caution should be used to avoid clipping the intersection to an extremity.
  • maxbrk: defines the maximum number of equivalence breaks which is enabled during the merge step,
  • max_sub_faces: defines the maximum number of sub-faces allowed when splitting a selected face.

The following parameters used in the search algorithm for face intersections between selected faces (octree-like structure). They allow modifying the memory/speed tradeoffs, and are useful in case of excess memory usage:

  • tml: the tree maximum level is the deepest level the tree can reach,
  • tmb: the tree maximum boxes is the maximum number of bounding boxes (BB) which can be linked to a leaf of the tree (not necessary true for the deepest level),
  • tmr: the tree maximum ratio. The building of the tree structure stops when the number of bounding boxes is superior to the product of tmr with the number of faces to locate. This is efficient to reduce memory consumption.