Mesh Oriented datABase  (version 5.4.1)
Array-based unstructured mesh datastructure
moab::EdgeSizeEvaluator Class Reference

#include <EdgeSizeEvaluator.hpp>

+ Inheritance diagram for moab::EdgeSizeEvaluator:
+ Collaboration diagram for moab::EdgeSizeEvaluator:

Public Member Functions

 EdgeSizeEvaluator ()
 Construct an evaluator.
virtual ~EdgeSizeEvaluator ()
 Destruction is virtual so subclasses may clean up after refinement.
virtual bool evaluate_edge (const double *p0, const void *t0, double *p1, void *t1, const double *p2, const void *t2)=0
void set_tag_manager (RefinerTagManager *tmgr)
RefinerTagManagerget_tag_manager ()

Protected Attributes

RefinerTagManagertag_manager

Detailed Description

This is an abstract class that embodies the rule used during edge-based mesh refinement to decide whether an edge should be subdivided or not. Subclasses must implement the pure virtual evaluate_edge() function.

Author:
David Thompson
Date:
19 November 2007

Definition at line 34 of file EdgeSizeEvaluator.hpp.


Constructor & Destructor Documentation

Construct an evaluator.

Definition at line 12 of file EdgeSizeEvaluator.cpp.

References tag_manager.

{
    this->tag_manager = 0;
}

Destruction is virtual so subclasses may clean up after refinement.

Definition at line 18 of file EdgeSizeEvaluator.cpp.

{}

Member Function Documentation

bool moab::EdgeSizeEvaluator::evaluate_edge ( const double *  p0,
const void *  t0,
double *  p1,
void *  t1,
const double *  p2,
const void *  t2 
) [pure virtual]

The arguments p0, p1, and p2 are all pointers to arrays of 6 doubles each while the arguments t0, t1, and t2 are all pointers to arrays of tag data defined at the corresponding point. While the endpoints p0 and p2 are immutable, the mid-edge point coordinates p1 and tag data t1 may be altered by evaluate_edge(). Altered values will be ignored if evaluate_edge() returns false. Be careful to ensure that all calls to evaluate_edge() perform identical modifications given identical input values!

A list of tags passed in t0, t1, and t2 is stored in the vertex_tags member. The vertex_size member stores the total length of data associated with each pointer (in bytes). Subclasses may access vertex_tags and vertexSize directly; the refiner uses public methods to populate vertex_tags before evaluate_edge() is called.

Implemented in moab::EdgeSizeSimpleImplicit.

Referenced by moab::SimplexTemplateRefiner::refine_1_simplex(), moab::SimplexTemplateRefiner::refine_2_simplex(), and moab::SimplexTemplateRefiner::refine_3_simplex().

Definition at line 47 of file EdgeSizeEvaluator.hpp.

References tag_manager.

Referenced by moab::EntityRefiner::prepare().

    {
        this->tag_manager = tmgr;
    }

Member Data Documentation

List of all members.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines