PPL Logo

resultsRefineClient Class Reference

Inheritance diagram for resultsRefineClient:

Inheritance graph
[legend]
Collaboration diagram for resultsRefineClient:

Collaboration graph
[legend]

Public Member Functions

 resultsRefineClient (refineResults *res_)
void split (int tri, int side, int node, double frac)
 This triangle of our chunk is being split along this edge.
void split (int tri, int side, int node, double frac, int flag)
 resultsRefineClient (refineResults *res_, FEM_Refine_Operation_Data *data_)
void split (int tri, int A, int B, int C, int D, int _new, double frac, int flag, int origEdgeB, int newEdge1B, int newEdge2B)

Private Attributes

refineResultsres
refineResultsres
FEM_Refine_Operation_Datadata

Detailed Description

Definition at line 128 of file refine.C.


Constructor & Destructor Documentation

resultsRefineClient::resultsRefineClient ( refineResults res_  )  [inline]

Definition at line 131 of file refine.C.

resultsRefineClient::resultsRefineClient ( refineResults res_,
FEM_Refine_Operation_Data data_ 
) [inline]

Definition at line 120 of file refine.C.


Member Function Documentation

void resultsRefineClient::split ( int  triNo,
int  edgeOfTri,
int  movingNode,
double  frac 
) [inline, virtual]

This triangle of our chunk is being split along this edge.

For our purposes, edges are numbered 0 (connecting nodes 0 and 1), 1 (connecting 1 and 2), and 2 (connecting 2 and 0).

Taking as A and B the (triangle-order) nodes of the splitting edge:

C C / \ /|\ / \ / | \ / \ => / | \ / \ / | \ / \ /old | new\ B --------- A B --- D --- A

The original triangle's node A should be replaced by D; while a new triangle should be inserted with nodes CAD.

The new node D's location should equal A*(1-frac)+B*frac. For a simple splitter, frac will always be 0.5.

If nodes A and B are shared with some other processor, that processor will also receive a "split" call for the same edge. If nodes A and B are shared by some other local triangle, that triangle will immediately receive a "split" call for the same edge.

flag denotes the properties of the new node added by the split 0x1 - node is on the chunk boundary 0x2 - since split will be called twice for each new node, this bit shows whether it is the first time or not

Client's responsibilities: -Add the new node D. Since both sides of a shared local edge will receive a "split" call, you must ensure the node is not added twice. -Update connectivity for source triangle -Add new triangle.

Implements refineClient.

Definition at line 132 of file refine.C.

References refineResults::add(), and res.

Here is the call graph for this function:

void resultsRefineClient::split ( int  tri,
int  side,
int  node,
double  frac,
int  flag 
) [inline, virtual]

Implements refineClient.

Definition at line 140 of file refine.C.

References refineResults::add(), and res.

Here is the call graph for this function:

void resultsRefineClient::split ( int  tri,
int  A,
int  B,
int  C,
int  D,
int  _new,
double  frac,
int  flag,
int  origEdgeB,
int  newEdge1B,
int  newEdge2B 
) [inline, virtual]

Reimplemented from refineClient.

Definition at line 130 of file refine.C.

References refineResults::add(), refineResults::createRefineData(), PUP::d, data, FEM_Modify_IDXL(), and res.

Here is the call graph for this function:


Field Documentation

Definition at line 129 of file refine.C.

Referenced by split().

Definition at line 117 of file refine.C.

Definition at line 118 of file refine.C.

Referenced by split().


The documentation for this class was generated from the following files:

Generated on Mon Sep 21 08:29:39 2020 for Charm++ by  doxygen 1.5.5