


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 | |
| refineResults * | res |
| refineResults * | res |
| FEM_Refine_Operation_Data * | data |
Definition at line 128 of file refine.C.
| resultsRefineClient::resultsRefineClient | ( | refineResults * | res_ | ) | [inline] |
| resultsRefineClient::resultsRefineClient | ( | refineResults * | res_, | |
| FEM_Refine_Operation_Data * | data_ | |||
| ) | [inline] |
| 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.

| 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.

| 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.

refineResults* resultsRefineClient::res [private] |
refineResults* resultsRefineClient::res [private] |
1.5.5