#include <CMLSweeper.hpp>
Inheritance diagram for CMLSweeper:

Public Member Functions | |
Constructor/Destructor | |
| CMLSweeper (CMLSurfEval *trg_surf=NULL, CML::OutputMsg msg_level=CML::STANDARD) | |
| A class constructor with an optional parameter. | |
| virtual | ~CMLSweeper () |
| A virtual destructor for the class. | |
Mesh input | |
| bool | set_boundary_mesh (int num_points, double *const points, int num_quads, int *const quads, int num_src_quads, int num_tgt_quads=0, int *const point_ids=NULL) |
| Set the boundary mesh for the sweeper, 1-to-1 case. | |
| bool | set_boundary_mesh (int num_points, double *const points, int num_quads, int *const quads, int num_src_surfs, int *const num_src_quads_array, int num_tgt_quads=0, int *const point_ids=NULL) |
| Set the boundary mesh for the sweeper, many-to-1 case. | |
Core mesher | |
| bool | generate_mesh (int &num_points_out, int &num_hexes) |
| Generate the swept hexahedral mesh for the volume. | |
Mesh output | |
| bool | get_mesh (int num_points_out, double *const points, int num_hexes, int *const hexes) |
| Retrieve the generated hexahedral mesh. | |
| int | get_points_buf (int buf_size, double *const points, int start_index=0) |
| Retrieve the generated points one buffer at a time. | |
| int | get_hexes_buf (int buf_size, int *const hexes, int start_index=0) |
| Retrieve the generated hexahedra one buffer at a time. | |
Algorithm properties | |
| void | set_sweep_option (CML::SweepFlag value) |
| Set the sweep-option. | |
| CML::SweepFlag | get_sweep_option () |
| Get the state of the sweep-option. | |
| void | set_target_smooth_option (bool smooth_target) |
| Set the target smoothing option. | |
| bool | get_target_smooth_option (void) |
| Get the target smoothing option. | |
| int | number_target_hexes () const |
| Get the number of hexahedral elements at the target surface. | |
| int | number_target_points () const |
| Get the number of points on the target surface. | |
Message output control | |
| virtual CML::OutputMsg | get_msg_level () const |
| Get the value of the message level flag. | |
| virtual void | set_msg_level (CML::OutputMsg level) |
| Set the value of the message level flag. | |
| virtual void | open_log_file (const char *filename, bool append=false) |
| Open a log file to record algorithm output. | |
| virtual void | close_log_file () |
| Close an open log file. | |
| virtual void | set_message_handler (CubitMessageHandler *h) |
| Use an alternate output message handler. | |
| virtual void | set_progress_handler (CMLProgress *h) |
| Use an alternate progress handler. | |
CAMAL version | |
| virtual int | get_major_version () const |
| Returns the major version number. | |
| virtual int | get_minor_version () const |
| Returns the minor version number. | |
| virtual int | get_subminor_version () const |
| Returns the subminor version (patch) number. | |
| virtual int | get_allint_version () const |
| Returns version number as one integer. | |
| virtual const char * | get_version_string () |
| Returns version number as a string. | |
Mesher properties | |
| virtual void | set_sizing_function (CML::SizingType type, double size1=-1.0, double size2=-1.0) |
| Set a sizing function and its parameters. | |
The sweeper accepts quadrilateral meshes for one or more source surfaces. Linking surfaces are also represented by quadrilateral meshes. The target surface my be a quadrilateral mesh (topolocially similar to the sum of the source meshes) or a CMLSurfEval object. If a target surface evaluator class is present, then the surface meshes are projected to the target surface in the sweeping process.
| CMLSweeper::CMLSweeper | ( | CMLSurfEval * | trg_surf = NULL, |
|
| CML::OutputMsg | msg_level = CML::STANDARD | |||
| ) |
A class constructor with an optional parameter.
| trg_surf | An optional pointer to the CMLSurfEval object that describes the geometry of the target surface. If the target quadrilaterals are input, no target surface geometry object is needed. | |
| msg_level | An enumerated value that controls the amount of output. The default value is CML::STANDARD. A value of CML::NONE causes the mesher to suppress all output. |
| virtual void CMLSweeper::close_log_file | ( | ) | [virtual] |
| bool CMLSweeper::generate_mesh | ( | int & | num_points_out, | |
| int & | num_hexes | |||
| ) |
Generate the swept hexahedral mesh for the volume.
| num_points_out | The total number of points generated including the input points. | |
| num_hexes | The number of hexedra (brick elements) generated |
| int CMLSweeper::get_hexes_buf | ( | int | buf_size, | |
| int *const | hexes, | |||
| int | start_index = 0 | |||
| ) |
Retrieve the generated hexahedra one buffer at a time.
| buf_size | The length of the hexes buffer array. | |
| hexes | The output buffer for hexahedra. A maximum of buf_size/8 hexahedra will be copied to this buffer. The hexahedron connectivity is described in get_mesh(). | |
| start_index | The index of the first output hexahedron. |
| bool CMLSweeper::get_mesh | ( | int | num_points_out, | |
| double *const | points, | |||
| int | num_hexes, | |||
| int *const | hexes | |||
| ) |
Retrieve the generated hexahedral mesh.
| num_points_out | The number of points to retrieve. This should be the same number returned by generate_mesh(). | |
| points | An array of points in the generated mesh (array size = 3 * num_points_out.) The first three array values are the x, y and z coordinates of the first point. The next three are for the second point, then the third, etc. | |
| num_hexes | The number of hexahedra to retrieve. This should be the same number returned by generate_mesh(). | |
| hexes | An array defining the connectivity of the generated mesh (array size = 8 * num_hexes.) The first four array values are the indices in the points array of the first hexhedron's front-face corner points and are entered in a counter-clockwise direction viewed from outside the hexahedron. The second four values describes the first hexhedron's back-face corner points. Corresponding points of the front and back faces form edges of the hexahedron. For example, the first corner of the front-face (index 0) and the first corner of the back face (index 4) form an edge of the hexahedron. The second eight values are the connectivity of the second hexahedron, etc. Indices range from 0 to num_points_out - 1 since the points array is zero-based. |
| virtual CML::OutputMsg CMLSweeper::get_msg_level | ( | ) | const [virtual] |
Get the value of the message level flag.
Implements CMLMesher.
| int CMLSweeper::get_points_buf | ( | int | buf_size, | |
| double *const | points, | |||
| int | start_index = 0 | |||
| ) |
Retrieve the generated points one buffer at a time.
| buf_size | The length of the points array. | |
| points | The output buffer for points. A maximum of buf_size/3 points will be copied to this buffer. The points ordering is described in get_mesh(). | |
| start_index | The index of the first output point. |
| int CMLSweeper::number_target_hexes | ( | ) | const |
Get the number of hexahedral elements at the target surface.
| int CMLSweeper::number_target_points | ( | ) | const |
Get the number of points on the target surface.
| virtual void CMLSweeper::open_log_file | ( | const char * | filename, | |
| bool | append = false | |||
| ) | [virtual] |
Open a log file to record algorithm output.
| filename | The log file name | |
| append | Appends to the file filename if it exists |
Implements CMLMesher.
| bool CMLSweeper::set_boundary_mesh | ( | int | num_points, | |
| double *const | points, | |||
| int | num_quads, | |||
| int *const | quads, | |||
| int | num_src_surfs, | |||
| int *const | num_src_quads_array, | |||
| int | num_tgt_quads = 0, |
|||
| int *const | point_ids = NULL | |||
| ) |
Set the boundary mesh for the sweeper, many-to-1 case.
| num_points | The number of points in the surface meshes (sources, linking and optional target.) | |
| points | An array of points (array size = 3 * num_points.) The first three array values are the x, y and z coordinates of the first point. The next three are for the second point, then the third, etc. | |
| num_quads | The number of quadrilaterals on the surface of the volume | |
| quads | An array defining the connectivity of the surface mesh (array size = 4 * num_quads.) The first four array values are the indices in the points array of the first quadrilateral's corner points on the first source surface. The second four describes the second quadrilateral on the first source surface, then the third, etc. The quadrilaterals of the first source surface are followed by the quadrilaterals on the second source surface, then the third surface, etc. The indices are entered in a counter-clockwise direction when viewed from outside the volume. Indices range from 0 to num_points_in - 1 since the points array is zero-based. The source surface quadrilaterals are listed first, grouped by surface. These are followed by all linking quadrilaterals and optionally by the target surface quadrilaterals. | |
| num_src_surfs | The number of source surfaces. | |
| num_src_quads_array | The number of quadrilaterals on each source surface (array size = num_src_surfs.) | |
| num_tgt_quads | The number of quadrilaterals on the target surface. It is zero if the target is not entered but is calculated. If given, the number of target quadrilaterals must be equal to the sum of the all quadrilaterals on the source surfaces. | |
| point_ids | An optional array whose values are the user's identifiers for the points (array size = num_points_in.) Messages generated by the sweeper use this array to translate from internal point identifiers to user identifiers. |
| bool CMLSweeper::set_boundary_mesh | ( | int | num_points, | |
| double *const | points, | |||
| int | num_quads, | |||
| int *const | quads, | |||
| int | num_src_quads, | |||
| int | num_tgt_quads = 0, |
|||
| int *const | point_ids = NULL | |||
| ) |
Set the boundary mesh for the sweeper, 1-to-1 case.
| num_points | The number of points in the surface meshes (source, linking and optional target.) | |
| points | An array of points (array size = 3 * num_points.) The first three array values are the x, y and z coordinates of the first point. The next three are for the second point, then the third, etc. | |
| num_quads | The number of quadrilaterals on the surface of the volume. | |
| quads | An array defining the connectivity of the surface mesh (array size = 4 * num_quads.) The first four array values are the indices in the points array of the first quadrilateral's corner points. The second four describes the second quadrilateral, then the third, etc. The indices are entered in a counter-clockwise direction when viewed from outside the volume. Indices range from 0 to num_points_in - 1 since the points array is zero-based. | |
| num_src_quads | The number of quadrilaterals on the source surface. | |
| num_tgt_quads | The number of quadrilateralss on the target surface. It is zero if the target is not entered but is calculated. If given, the number of target quadrilaterals must be equal to the number of source quadrilaterals. | |
| point_ids | An optional array whose values are the user's identifiers for the points (array size = num_points_in.) Messages generated by the sweeper use this array to translate from internal point identifiers to user identifiers. |
| virtual void CMLSweeper::set_message_handler | ( | CubitMessageHandler * | h | ) | [virtual] |
Use an alternate output message handler.
| h | A pointer to a message handler derived from CubitMessageHandler. |
Implements CMLMesher.
| virtual void CMLSweeper::set_msg_level | ( | CML::OutputMsg | level | ) | [virtual] |
Set the value of the message level flag.
| level | The value of the message level is an enumerated constant. The default value is CML::STANDARD and generates minimal output. A value of CML::VERBOSE generates more output, and a value of CML::DEBUG generates output helpful to developers. A value of CML::NONE causes the mesher to suppress all output. |
Implements CMLMesher.
| virtual void CMLSweeper::set_progress_handler | ( | CMLProgress * | h | ) | [virtual] |
Use an alternate progress handler.
| h | A pointer to a progress hander derived from CMLProgress. |
Implements CMLMesher.
| virtual void CMLSweeper::set_sizing_function | ( | CML::SizingType | type, | |
| double | size1 = -1.0, |
|||
| double | size2 = -1.0 | |||
| ) | [virtual] |
Set a sizing function and its parameters.
| type | The enum of sizing function for the triangle mesher or paver. | |
| size1 | The constant size for CONSTANT_SIZING function and the minimum size for all others. | |
| size2 | The maximum size for all sizing functions. |
Implements CMLMesher.
| void CMLSweeper::set_sweep_option | ( | CML::SweepFlag | value | ) |
Set the sweep-option.
The sweep-option governs how the sweeper smooths between layers.
| value | One of the enumerated values of the SweepFlag. The default value is CML::AUTO. Using this option, the algorithm will chose between smart error distribution or residual error distribution between swept layers. The choice of methods depends on the similarity in shape, curvature and area of the source and target surface, |
| void CMLSweeper::set_target_smooth_option | ( | bool | smooth_target | ) |
Set the target smoothing option.
The target smooth option governs how the sweeper smooths the mesh on the target surface.
| smooth_target | true or false. The default falue is true. If the target surface is not meshed, the sweeper projects the source mesh to the target. If the target smooth option is true, the mesh on the target will then be smoothed to improve element quality. If the target smooth option is false, no smoothing is done after the initial projection to the target. |
CAMAL 5.2-0 documentation created on 1 Jun 2010
Comments to csimsoft.com