pfs.h File Reference

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
#define PFS_SUCCESS   1
#define PFS_ITERATION_END   0
#define PFS_NO_SURFACE_DEFINED   -1
#define PFS_NON_MANIFOLD_EDGE   -2
#define PFS_INVERSE_INCIDENCE   -3
#define PFS_NON_MANIFOLD_VERTEX   -4
int pfs_iter
int pfs_node
void * pfsRInitSurf (int maxnodes, int maxelems)
void pfsRActivateSurf (void *surf)
void pfsRFreeSurf (void *surf)
int pfsRAddNode (double x, double y, double z)
int pfsRAddElem (int v0, int v1, int v2)
int pfsRCompleteSurf (void)
void pfsRSolveSurfPar (int maxnumiter)
void pfsCompleteParSpace (void)
int pfsRItr3dBoundBox (double *xmin, double *xmax, double *ymin, double *ymax, double *zmin, double *zmax)
int pfsRItrParBoundBox (double *umin, double *umax, double *vmin, double *vmax)
int pfsRItrFirstElem (void)
int pfsRItrNextElem (void)
int pfsRItrFirst3dElem (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
int pfsRItrNext3dElem (double xmin, double xmax, double ymin, double ymax, double zmin, double zmax)
int pfsRItrFirstParElem (double umin, double umax, double vmin, double vmax)
int pfsRItrNextParElem (double umin, double umax, double vmin, double vmax)
void pfsRSetCurrElem (void *elem)
int pfsRGetElem (double x, double y, double z, void **elem)
int pfsRGetLoopElem (double x, double y, double z, void **elem)
int pfsRItrElemNode (int *id)
void pfsRItrElemCenter (double *x, double *y, double *z)
void pfsRItrElemNormal (double *nx, double *ny, double *nz)
void pfsRItrElem3dBox (double *xmin, double *ymin, double *zmin, double *xmax, double *ymax, double *zmax)
void pfsRItrElemParBox (double *umin, double *vmin, double *umax, double *vmax)
int pfsRItrNumNodes (void)
void pfsRItrNodeCoords (int id, double *x, double *y, double *z)
void pfsRItrNodeNormal (int id, double *nx, double *ny, double *nz)
void pfsRItrNodeJacobian (int id, double *xdu, double *ydu, double *zdu, double *xdv, double *ydv, double *zdv)
void pfsRItrNodeParVals (int id, double *u, double *v)
int pfsRItrNumLoops (void)
int pfsRItrFirstLoopNode (int loop_id, int *id)
int pfsRItrNextLoopNode (int loop_id, int ref_id, int *id)
int pfsRProjectOn (double x, double y, double z, double *u, double *v)
int pfsRGetJacobian (double u, double v, double *xdu, double *ydu, double *zdu, double *xdv, double *ydv, double *zdv, double *xdw, double *ydw, double *zdw)
int pfsREval (double u, double v, double *x, double *y, double *z)
int pfsRShot (void *init_elem, double x0, double y0, double z0, double u_shot, double v_shot, double len, void **end_elem, double *x1, double *y1, double *z1)


Define Documentation

#define PFS_INVERSE_INCIDENCE   -3

Definition at line 159 of file pfs.h.

Referenced by pfsAddAdjNode().

#define PFS_ITERATION_END   0

Definition at line 156 of file pfs.h.

Referenced by pfsREval(), pfsRGetElem(), pfsRGetJacobian(), pfsRGetLoopElem(), pfsRItrElemNode(), pfsRItrFirst3dElem(), pfsRItrFirstElem(), pfsRItrFirstLoopNode(), pfsRItrFirstParElem(), pfsRItrNext3dElem(), pfsRItrNextElem(), pfsRItrNextLoopNode(), pfsRItrNextParElem(), and pfsRProjectOn().

#define PFS_NO_SURFACE_DEFINED   -1

Definition at line 157 of file pfs.h.

Referenced by pfsRAddNode(), and pfsRCompleteSurf().

#define PFS_NON_MANIFOLD_EDGE   -2

Definition at line 158 of file pfs.h.

Referenced by pfsAddAdjNode().

#define PFS_NON_MANIFOLD_VERTEX   -4

Definition at line 160 of file pfs.h.

Referenced by pfsOrderBdryNodeAdj().

#define PFS_SUCCESS   1

Definition at line 155 of file pfs.h.

Referenced by pfsAddAdjNode(), pfsBuildNodeAdj(), pfsIsParPtInside(), pfsIsParPtOnBound(), pfsOrderAllBdryNodeAdj(), pfsOrderBdryNodeAdj(), pfsRCompleteSurf(), pfsRItrElemNode(), pfsRItrFirst3dElem(), pfsRItrFirstElem(), pfsRItrFirstLoopNode(), pfsRItrFirstParElem(), pfsRItrNext3dElem(), pfsRItrNextElem(), pfsRItrNextLoopNode(), pfsRItrNextParElem(), and pfsSnapParPtToBound().


Function Documentation

void pfsCompleteParSpace ( void   ) 

---------------------------------------------------------------

void pfsCompleteParSpace( void )

This function finishes up definition of surface parametric values of all nodes of the mesh in current active surface. First it normalizes the parametric coordinates of all nodes of surface. The normalization is such that the minimum parametric value is zero and the maximum is one. In the normalization, the same scaling factor is applyed to both u and v parametric coordinates. Then, it computes the bounding box parametric components for each element in the current mesh and creates the R-tree of elements indexed by parametric bounding box. Finally, it computes an average Jacobian (mapping derivatives) for each node in the current mesh. Each node jacobian is computed as an average of the Jacobians of the adjacent elements.

Definition at line 4086 of file pfs.c.

References pfsComputeElemParBoundBoxes(), pfsNodeJacobians(), and pfsNormalizeParVals().

Here is the call graph for this function:

void pfsRActivateSurf ( void *  surf  ) 

---------------------------------------------------------------

void pfsRActivateSurf( void *surf )

surf - pointer to the surface data to activate (in)

This function sets the given surface mesh (given by its pointer) as the current active one. All node and element data are inserted in the current active surface mesh. All iteration traversal of surface data is performed in the current active surface mesh.

Definition at line 3889 of file pfs.c.

int pfsRAddElem ( int  v0,
int  v1,
int  v2 
)

---------------------------------------------------------------

void pfsRAddElem( int vt0, int vt1, int vt2 )

vt0 - index of first element node (in) vt1 - index of second element node (in) vt2 - index of third element node (in)

This function inserts of a new element (face) in the database of the current active surface. The elements are stored in a R-tree indexed by the 3D bounding boxe of each element. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status.

Definition at line 3957 of file pfs.c.

References PfsElem::inc, PfsElem::maxparbox, PfsElem::minparbox, PfsSurf::numelems, pfsElem3dBoundBox(), pfsElemCenter(), pfsElemLocalGradients(), pfsElemNormal(), PFSGeoSurfPar::u, and PFSGeoSurfPar::v.

Here is the call graph for this function:

int pfsRAddNode ( double  x,
double  y,
double  z 
)

---------------------------------------------------------------

int pfsRAddNode( double x, double y, double z )

x, y, z - node coordinates (in)

This function inserts a new node in the database of the current active surface. If the current number of inserted nodes is equal to the current maximum number of nodes, the function doubles the maximum number of nodes and reallocates the node vector list. The function returns an index of the created node. This index ranges from 0 to the number of nodes - 1.

Definition at line 3922 of file pfs.c.

References PfsNode::adj_head, PfsNode::AtA, PfsNode::coord, PfsNode::degree, PfsSurf::maxnodes, NODE_INTERIOR, PfsSurf::nodelist, PfsSurf::numnodes, PfsNode::par, PFS_NO_SURFACE_DEFINED, PfsNode::type, PFSGeoSurfPar::u, PFSGeoSurfPar::v, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.

int pfsRCompleteSurf ( void   ) 

---------------------------------------------------------------

int pfsRCompleteSurf( void )

This functions finishes up the creation of the data structure of the current active surface mesh. It does the following:

Definition at line 3985 of file pfs.c.

References PFS_NO_SURFACE_DEFINED, PFS_SUCCESS, pfsBuildLoopList(), pfsBuildNodeAdj(), pfsBuildSolOrderVec(), pfsClassifyNodes(), pfsCompute3dBoundBox(), pfsComputeParBoundBox(), pfsConfMapCoefficients(), pfsFindRefElem(), pfsInitParams(), pfsNodeNormals(), pfsOrderAllBdryNodeAdj(), and pfsRFreeSurf().

Here is the call graph for this function:

int pfsREval ( double  u,
double  v,
double *  x,
double *  y,
double *  z 
)

---------------------------------------------------------------

int pfsREval( double u, double v, double *x, double *y, double *z )

u, v - parametric values of point (in) x, y, z - components of cartesian points (out)

This function returns the components of the cartesian points indicated by its parametric values. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status.

Definition at line 4685 of file pfs.c.

References pfs3dPntCurElem(), PFS_ITERATION_END, pfsIsParPtInside(), pfsIsParPtOnBound(), pfsRItrFirstParElem(), pfsRItrNextParElem(), PFSGeoSurfPar::u, and PFSGeoSurfPar::v.

Here is the call graph for this function:

void pfsRFreeSurf ( void *  surf  ) 

---------------------------------------------------------------

void pfsRFreeSurf( void *surf )

surf - pointer to the surface mesh data to delete (in)

This function releases the memory used by the given surface.

Definition at line 3901 of file pfs.c.

References pfsDelElemList(), pfsDelNodeList(), and pfsDelSolOrderVec().

Here is the call graph for this function:

int pfsRGetElem ( double  x,
double  y,
double  z,
void **  elem 
)

---------------------------------------------------------------

void pfsRGetElem( double x, double y, double z, void **elem )

x, y, z - global point coordinates (in) elem - pointer to corresponding pfs element (out)

This function returns a true state if a pfs element is found for a given point, otherwise it returns a false status.

Definition at line 4300 of file pfs.c.

References PFS_ITERATION_END, pfsParPntCurElem(), pfsRItrFirstElem(), and pfsRItrNextElem().

Here is the call graph for this function:

int pfsRGetJacobian ( double  u,
double  v,
double *  xdu,
double *  ydu,
double *  zdu,
double *  xdv,
double *  ydv,
double *  zdv,
double *  xdw,
double *  ydw,
double *  zdw 
)

---------------------------------------------------------------

int pfsRGetJacobian( double u, double v, double *xdu, double *ydu, double *zdu, double *xdv, double *ydv, double *zdv, double *xdw, double *ydw, double *zdw )

u, v - parametric values of point (in) xdu, ydu, zdu - components of point jacobian matrix (out) xdv, ydv, zdv - components of point jacobian matrix (out) xdw, ydw, zdw - components of the normal vector of (out) element face where is the point

This function returns the components of the point jacobian matrix of the point indicated by its parametric values. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status.

Definition at line 4634 of file pfs.c.

References PFS_ITERATION_END, pfsIsParPtInside(), pfsIsParPtOnBound(), pfsParDerivCurElem(), pfsRItrFirstParElem(), pfsRItrNextParElem(), PFSGeoSurfPar::u, and PFSGeoSurfPar::v.

Here is the call graph for this function:

int pfsRGetLoopElem ( double  x,
double  y,
double  z,
void **  elem 
)

--------------------------------------------------------------- /* Esta função retorna o elemento de um loop externo mais próximo ao ponto dado pelas coordenadas xyz

Definition at line 4324 of file pfs.c.

References PfsNode::adj_head, PfsSurf::nodelist, PFS_ITERATION_END, pfsRItrElemCenter(), pfsRItrFirstLoopNode(), pfsRItrNextLoopNode(), and pfsRItrNumLoops().

Here is the call graph for this function:

void* pfsRInitSurf ( int  maxnodes,
int  maxelems 
)

---------------------------------------------------------------

void *pfsRInitSurf( int maxnodes, int maxelems )

maxnodes - maximum number of nodes of new mesh (in) maxelems - maximum number of elements of new mesh (in)

This function allocates the global list vectors of nodal and element data for a new mesh. The return value is a pointer to the created surface data structure.

Definition at line 3841 of file pfs.c.

References PfsSurf::box_umin, PfsSurf::box_vmin, PfsSurf::box_xmin, PfsSurf::box_ymin, PfsSurf::box_zmin, PfsSurf::elm2d_tree, PfsSurf::elm3d_tree, PfsSurf::looplist, PfsSurf::maxnodes, PfsSurf::nodelist, PfsSurf::numelems, PfsSurf::numloops, PfsSurf::numnodes, PFSRtreeCreate(), PfsSurf::ref_elem, PfsSurf::ref_node, and PfsSurf::sol_order.

Here is the call graph for this function:

int pfsRItr3dBoundBox ( double *  xmin,
double *  xmax,
double *  ymin,
double *  ymax,
double *  zmin,
double *  zmax 
)

---------------------------------------------------------------

int pfsRItr3dBoundBox( double *xmin, double *xmax, double *ymin, double *ymax, double *zmin, double *zmax )

xmin, xmax ymin, ymax zmin, zmax - returned bounding box (out)

This function returns the 3D bounding box of the current active surface mesh. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status. If a pointer parameter is null, the corresponding bounding box limit is not returned.

Definition at line 4104 of file pfs.c.

References PfsSurf::box_xmax, PfsSurf::box_xmin, PfsSurf::box_ymax, PfsSurf::box_ymin, PfsSurf::box_zmax, PfsSurf::box_zmin, and PfsSurf::numnodes.

void pfsRItrElem3dBox ( double *  xmin,
double *  ymin,
double *  zmin,
double *  xmax,
double *  ymax,
double *  zmax 
)

---------------------------------------------------------------

void pfsRItrElem3dBox( double *xmin, double *ymin, double *zmin, double *xmax, double *ymax, double *zmax )

xmin, ymin, zmin - minimal components of element 3d bounding box (out) xmax, ymax, zmax - maximum components of element 3d bounding box (out)

This function returns the components of the 3d bounding box of current element (face) being traversed.

Definition at line 4417 of file pfs.c.

References PfsElem::max3dbox, PfsElem::min3dbox, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.

void pfsRItrElemCenter ( double *  x,
double *  y,
double *  z 
)

---------------------------------------------------------------

void pfsRItrElemCenter( double *x, double *y, double *z )

x, y, z - coordinates of element center (out)

This function returns the coordinates of the center of current element (face) being traversed.

Definition at line 4387 of file pfs.c.

References PfsElem::center, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.

int pfsRItrElemNode ( int *  id  ) 

---------------------------------------------------------------

int pfsRItrElemNode( int *id )

id - index of current node of element (out)

This function iterates on the nodes of the current element (face) being traversed. It returns the index of the current node of the current element. If there is no element in the database, if there is no active surface, if there is no other element to traverse, or if there is no more nodes in the element, the function returns an end of iteration status. Otherwise, it returns a success status.

Definition at line 4367 of file pfs.c.

References cur_elemnode, PfsElem::inc, PfsSurf::numnodes, PFS_ITERATION_END, and PFS_SUCCESS.

void pfsRItrElemNormal ( double *  nx,
double *  ny,
double *  nz 
)

---------------------------------------------------------------

void pfsRItrElemNormal( double *nx, double *ny, double *nz )

nx, ny, nz - components of element normal vector (out)

This function returns the components of the normal vector of current element (face) being traversed.

Definition at line 4402 of file pfs.c.

References PfsElem::normal, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.

void pfsRItrElemParBox ( double *  umin,
double *  vmin,
double *  umax,
double *  vmax 
)

---------------------------------------------------------------

void pfsRItrElemParBox( double *umin, double *vmin, double *umax, double *vmax )

umin, vmin - minimal components of element parametric bounding box (out) umax, vmax - maximum components of element parametric bounding box (out)

This function returns the components of the parametric bounding box of current element (face) being traversed.

Definition at line 4436 of file pfs.c.

References PfsElem::maxparbox, PfsElem::minparbox, PfsSurf::numnodes, PFSGeoSurfPar::u, and PFSGeoSurfPar::v.

int pfsRItrFirst3dElem ( double  xmin,
double  xmax,
double  ymin,
double  ymax,
double  zmin,
double  zmax 
)

---------------------------------------------------------------

int pfsRItrFirst3dElem( double xmin, double xmax, double ymin, double ymax, double zmin, double zmax ) xmin, xmax ymin, ymax zmin, zmax - bounding box for search (in)

This function starts an iteration for traversal of elements (faces) within a given bounding box. It sets up the first element in the database within the bounding box as the current one for traversal. If there is no element in the database within the bounding box, or if there is no active surface, the function returns an end of iteration status. Otherwise, it returns a success status.

Definition at line 4187 of file pfs.c.

References cur_elemnode, PfsSurf::elm3d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, PFSRtreeInitSearchBox(), and PFSRtreeSearchBox().

Here is the call graph for this function:

int pfsRItrFirstElem ( void   ) 

---------------------------------------------------------------

int pfsRItrFirstElem( void )

This function starts an iteration for traversal of elements (faces). It sets up the first element in the database as the current one for traversal. If there is no element in the database, or if there is no active surface, the function returns an end of iteration status. Otherwise, it returns a success status.

Definition at line 4139 of file pfs.c.

References cur_elemnode, PfsSurf::elm3d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, PFSRtreeInitTraverse(), and PFSRtreeTraverse().

Here is the call graph for this function:

int pfsRItrFirstLoopNode ( int  loop_id,
int *  id 
)

---------------------------------------------------------------

int pfsItrFirstLoopNode( int loop_id, int *id )

loop_id - index of target loop (in) id - index of first loop node (out)

This function starts an iteration for traversal of loop nodes. It returns the id of the first of a loop given by its id (loop_id). If there is no element in the database, or if there is no active surface, the function returns an end of iteration status. Otherwise, it returns a success status.

Definition at line 4524 of file pfs.c.

References PfsSurf::looplist, PfsSurf::numelems, PfsSurf::numloops, PfsSurf::numnodes, PFS_ITERATION_END, and PFS_SUCCESS.

int pfsRItrFirstParElem ( double  umin,
double  umax,
double  vmin,
double  vmax 
)

---------------------------------------------------------------

int pfsRItrFirstParElem( double umin, double umax, double vmin, double vmax ) umin, umax vmin, vmax - parametric bounding box for search (in)

This function starts an iteration for traversal of elements (faces) within a given parametric bounding box. It sets up the first element in the database within the parametric bounding box as the current one for traversal. If there is no element in the database within the bounding box, or if there is no active surface, the function returns an end of iteration status. Otherwise, it returns a success status.

Definition at line 4239 of file pfs.c.

References cur_elemnode, PfsSurf::elm2d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, PFSRtreeInitSearchBox(), and PFSRtreeSearchBox().

Here is the call graph for this function:

int pfsRItrNext3dElem ( double  xmin,
double  xmax,
double  ymin,
double  ymax,
double  zmin,
double  zmax 
)

---------------------------------------------------------------

int pfsRItrNext3dElem( double xmin, double xmax, double ymin, double ymax, double zmin, double zmax ) xmin, xmax ymin, ymax zmin, zmax - bounding box for search (in)

This function continues an iteration for traversal of elements (faces) within a given bounding box. It sets up the next element in the database within the bounding box as the current one for traversal. If there is no other element in the database within the bounding box, the function returns an end of iteration status. Otherwise, it returns a success status.

Definition at line 4214 of file pfs.c.

References cur_elemnode, PfsSurf::elm3d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, and PFSRtreeSearchBox().

Here is the call graph for this function:

int pfsRItrNextElem ( void   ) 

---------------------------------------------------------------

int pfsRItrNextElem( void )

This function continues an iteration for traversal of elements (faces). It sets up the next element in the database as the current one for traversal. If there is no element in the database, if there is no active surface, or if there is no other element to traverse, the function returns an end of iteration status. Otherwise, it returns a success status.

Definition at line 4164 of file pfs.c.

References cur_elemnode, PfsSurf::elm3d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, and PFSRtreeTraverse().

Here is the call graph for this function:

int pfsRItrNextLoopNode ( int  loop_id,
int  ref_id,
int *  id 
)

---------------------------------------------------------------

int pfsItrNextLoopNode( int loop_id, int ref_id, int *id )

loop_id - index of target loop (in) ref_id - index of reference loop node (in) id - index of next loop node (out)

This function returns the id of the next boundary node after a given reference boundary node along a loop. If the loop of the given node is the surface outside loop, the returned node is the next one when traversing the surface boundary loop in counter-clockwise order when looking the surface from the side pointed to by the surface normals. If the loop is not the outside one, the traversal is done in clockwise order. If there is no element in the database, if there is no active surface, or if the given reference node is not a boundary node, the function returns an end of iteration status. Otherwise, it returns a success status.

Definition at line 4537 of file pfs.c.

References PfsNode::adj_head, PfsSurf::looplist, NODE_BOUNDARY, PfsSurf::nodelist, PfsSurf::numelems, PfsSurf::numloops, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, and PfsNode::type.

int pfsRItrNextParElem ( double  umin,
double  umax,
double  vmin,
double  vmax 
)

---------------------------------------------------------------

int pfsRItrNextParElem( double umin, double umax, double vmin, double vmax ) umin, umax vmin, vmax - parametric bounding box for search (in)

This function continues an iteration for traversal of elements (faces) within a given bounding box. It sets up the next element in the database within the parametric bounding box as the current one for traversal. If there is no other element in the database within the bounding box, the function returns an end of iteration status. Otherwise, it returns a success status.

Definition at line 4265 of file pfs.c.

References cur_elemnode, PfsSurf::elm2d_tree, PfsSurf::numelems, PfsSurf::numnodes, PFS_ITERATION_END, PFS_SUCCESS, and PFSRtreeSearchBox().

Here is the call graph for this function:

void pfsRItrNodeCoords ( int  id,
double *  x,
double *  y,
double *  z 
)

---------------------------------------------------------------

void pfsRItrNodeCoords( int id, double *x, double *y, double *z )

id - index of target node (in) x, y, z - coordinates of node (out)

This function returns the coordinates of the node indicated by its index.

Definition at line 4463 of file pfs.c.

References PfsNode::coord, PfsSurf::nodelist, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.

void pfsRItrNodeJacobian ( int  id,
double *  xdu,
double *  ydu,
double *  zdu,
double *  xdv,
double *  ydv,
double *  zdv 
)

---------------------------------------------------------------

void pfsRItrNodeJacobian( int id, double *xdu, double *ydu, double *zdu, double *xdv, double *ydv, double *zdv )

id - index of target node (in) xdu, ydu, zdu - components of node jacobian matrix (out) xdv, ydv, zdv - components of node jacobian matrix (out)

This function returns the components of the nodal jacobian matrix of the node indicated by its index.

Definition at line 4487 of file pfs.c.

References PfsNode::ddu, PfsNode::ddv, PfsSurf::nodelist, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.

void pfsRItrNodeNormal ( int  id,
double *  nx,
double *  ny,
double *  nz 
)

---------------------------------------------------------------

void pfsRItrNodeNormal( int id, double *nx, double *ny, double *nz )

id - index of target node (in) nx, ny, nz - components of node normal vector (out)

This function returns the components of the normal vector of the node indicated by its index.

Definition at line 4475 of file pfs.c.

References PfsSurf::nodelist, PfsNode::normal, PfsSurf::numnodes, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.

void pfsRItrNodeParVals ( int  id,
double *  u,
double *  v 
)

---------------------------------------------------------------

void pfsRItrNodeParVals( int id, double *u, double *v )

id - index of target node (in) u, v - parametric values of node (out)

This function returns the surface parametric values of the node indicated by its index.

Definition at line 4503 of file pfs.c.

References PfsSurf::nodelist, PfsSurf::numnodes, PfsNode::par, PFSGeoSurfPar::u, and PFSGeoSurfPar::v.

int pfsRItrNumLoops ( void   ) 

---------------------------------------------------------------

int pfsItrNumLoops( void )

This function returns the total number of loops (connected boundary portion) of current active surface mesh.

Definition at line 4514 of file pfs.c.

References PfsSurf::numloops.

int pfsRItrNumNodes ( void   ) 

---------------------------------------------------------------

int pfsRItrNumNodes( void )

This function returns the total number of nodes of current active surface mesh.

Definition at line 4453 of file pfs.c.

References PfsSurf::numnodes.

int pfsRItrParBoundBox ( double *  umin,
double *  umax,
double *  vmin,
double *  vmax 
)

---------------------------------------------------------------

int pfsRItrParBoundBox( double *umin, double *umax, double *vmin, double *vmax )

umin, umax vmin, vmax - returned parametric bounding box (out)

This function returns the parametric bounding box of the current active surface mesh. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status. If a pointer parameter is null, the corresponding bounding box limit is not returned.

Definition at line 4123 of file pfs.c.

References PfsSurf::box_umax, PfsSurf::box_umin, PfsSurf::box_vmax, PfsSurf::box_vmin, and PfsSurf::numnodes.

int pfsRProjectOn ( double  x,
double  y,
double  z,
double *  u,
double *  v 
)

---------------------------------------------------------------

int pfsRProjectOn( double x, double y, double z, double *u, double *v )

x, y, z - coordinates of point (in) u, v - parametric values of point (out)

This function returns the surface parametric values of the point indicated by its coordinates. If there is no active surface it returns a false (0) status, otherwise it returns a true (1) status.

Definition at line 4559 of file pfs.c.

References PFS_ITERATION_END, pfsDistPntCurElem(), pfsParPntCurElem(), pfsRItrFirst3dElem(), pfsRItrNext3dElem(), TOLER, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.

Here is the call graph for this function:

void pfsRSetCurrElem ( void *  elem  ) 

---------------------------------------------------------------

void pfsRSetCurrElem( void *elem )

elem - pointer to target element (in)

This function sets up the given target element as the current element for consulting data.

Definition at line 4289 of file pfs.c.

References cur_elemnode.

int pfsRShot ( void *  init_elem,
double  x0,
double  y0,
double  z0,
double  u_shot,
double  v_shot,
double  len,
void **  end_elem,
double *  x1,
double *  y1,
double *  z1 
)

Esta função calcula a posição final de um tiro no espaço cartesiano navegando através do espaço paramétrico.

Parameters:
init_elem (in) elemento a partir do qual foi dado o tiro
x0,y0,z0 (in) posição inicial do tiro no espaço cartesiano
u_shot,v_shot (in) direção do tiro no espaço paramétrico
len (in) comprimento do caminho que deve ser percorrido no espaço cartesiano
end_elem (out) elemento onde parou o tiro
x1,y1,z1 (out) posição final do tiro no espaço cartesiano

Definition at line 4751 of file pfs.c.

References FACE, FREE_FACE, PfsElem::inc, LOOP, NODE_BOUNDARY, PfsSurf::nodelist, pfs3dPntCurElem(), pfs_node, pfsChkProxElemEdge(), pfsParPntCurElemAttract(), pfsRSetCurrElem(), pfsShotSolve(), TOLER, PfsNode::type, PFSGeoPoint::x, PFSGeoPoint::y, and PFSGeoPoint::z.

Here is the call graph for this function:

void pfsRSolveSurfPar ( int  maxnumiter  ) 

---------------------------------------------------------------

void pfsRSolveSurfPar( int maxnumiter )

maxnumiter - maximum number of iterations (in)

This function computes by a Gauss-Seidel iterative scheme the surface parametric values of all nodes of the mesh in current active surface. It is assumed that the parametric values of all nodes have been initialized. If the given parameter for maximum number of iterations is null, the solution iterates until convergence is achieved (within a specified tolerance).

Definition at line 4053 of file pfs.c.

References pfsComputeParBoundBox(), and pfsSolveSurfPar1Pass().

Here is the call graph for this function:


Variable Documentation

int pfs_iter

Definition at line 162 of file pfs.h.

Referenced by DisplacementVelocity().

int pfs_node

Definition at line 163 of file pfs.h.

Referenced by DisplacementVelocity(), pfsEdgeShot(), pfsFaceShot(), pfsNodeShot(), pfsRShot(), and pfsUpdateShotLen().


Generated on Tue Oct 23 11:24:37 2007 for Relax by  doxygen 1.5.3