Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RFC_Window_overlay Class Reference

A window is a collection of panes. More...

#include <RFC_Window_overlay.h>

Inheritance diagram for RFC_Window_overlay:
Collaboration diagram for RFC_Window_overlay:

Classes

class  Feature_0
 
struct  Feature_1
 

Public Types

typedef RFC_Window_overlay Self
 
typedef RFC_Window_derived
< RFC_Pane_overlay
Base
 
typedef Vertex_overlay Vertex
 
typedef Halfedge_overlay Halfedge
 
typedef Facet_overlay Facet
 
typedef std::list< Feature_0Feature_list_0
 
typedef std::list< Feature_1Feature_list_1
 
- Public Types inherited from RFC_Window_base
typedef RFC_Window_base Self
 
typedef COM::Window Base
 
typedef COM::Attribute Attribute
 
typedef RFC_Pane_base Pane
 
typedef std::map< int, Pane * > Pane_set
 

Public Member Functions

 RFC_Window_overlay (COM::Window *b, int color, const char *pre=NULL)
 
virtual ~RFC_Window_overlay ()
 
bool is_same_node (Vertex *v1, Vertex *v2)
 Check whether given two vertices correspond to the same physical point. More...
 
void create_overlay_data ()
 
void delete_overlay_data ()
 
void determine_counterparts ()
 
void unmark_alledges ()
 
const Halfedgeget_an_unmarked_halfedge () const
 
Halfedgeget_an_unmarked_halfedge ()
 
void evaluate_normals ()
 
void reduce_coordinates_to_all ()
 
void print_features ()
 Dump out the 0- and 1-features in Tecplot format into files <name>f0.plt, <name>f1.plt, respectively. More...
 
void detect_features ()
 The main entry of feature detection. More...
 
bool snap_on_features () const
 
Feature_list_0flist_0 ()
 
Feature_list_1flist_1 ()
 
const Feature_list_0flist_0 () const
 
const Feature_list_1flist_1 () const
 
void remove_feature_1 (Feature_1 &f)
 Remove a false strong curve. More...
 
Feature_list_0::iterator remove_feature_0 (Feature_list_0::iterator i)
 Remove the given 0-feature from the list. More...
 
- Public Member Functions inherited from RFC_Window_derived< RFC_Pane_overlay >
const Panepane (const int pid) const
 Get a reference to the pane with give id pid. More...
 
Panepane (const int pid)
 
std::pair< Pane *, int > get_primary (Pane *p, int vid)
 Get a handle to the primary copy of a node contained in the pane p with local id vid. More...
 
std::pair< const Pane *, int > get_primary (const Pane *p, int vid) const
 
void panes (std::vector< Pane * > &ps)
 Get a vector of local panes contained in the window. More...
 
void panes (std::vector< const Pane * > &ps) const
 
- Public Member Functions inherited from RFC_Window_base
 RFC_Window_base (Base *b, int c, MPI_Comm)
 Construct an object with base b and color c. More...
 
virtual ~RFC_Window_base ()
 Default destructor. More...
 
std::string name () const
 The name of the window. More...
 
const RFC_Pane_basepane (const int pid) const
 
RFC_Pane_basepane (const int pid)
 
const COM::Window * base () const
 Get a reference to the base COM::Window object. More...
 
int color () const
 The color of the window for overlay or for data transfer (BLUE or GREEN). More...
 
int size_of_nodes () const
 Get the total number of nodes contained the window. More...
 
int size_of_faces () const
 Get the total number of faces contained the window. More...
 
int size_of_primary_nodes () const
 Get the total number of nodes contained the window. More...
 
Bbox_3 get_bounding_box () const
 Get the bounding box of the window. More...
 
int size_of_panes () const
 Number of local panes in the window. More...
 
const Attributeattribute (const char *f) const
 Retrieve an attribute object from the base using the attribute name. More...
 
void export_window (RFC_Window_base *) const
 
void write_tec_ascii (const char *prefix) const
 Ouptut a mesh in Tecplot format. More...
 
void write_tec_sub (const char *prefix) const
 Ouptut a subdivision of a mesh in Tecplot format. More...
 
void new_sdv_attributes (const std::string &wname) const
 New attributes. More...
 
void read_sdv (const char *prefix, const char *format=NULL)
 Read in local panes in native binary format or using Rocin. More...
 
void write_sdv (const char *prefix, const char *format=NULL) const
 Write out panes in native binary format or using Rocout. More...
 
void build_pc_tables ()
 Build the pane connectivity table. More...
 

Protected Member Functions

void reduce_normals_to_all (MPI_Op)
 
Vector_3 get_tangent (const Halfedge *h)
 
float comp_angle_defect (Vertex *v)
 Compute the angle defect of a vertex. More...
 
float cos_face_angle (Halfedge *h, Halfedge *hopp)
 Compute the cosine of the face angle (dihedral angle) at an edge. More...
 
float cos_edge_angle (const Halfedge *h1, const Halfedge *h2)
 Compute the cosine of the edge angle at a vertex between two incident feature edges. More...
 
float cos_edge_angle (const Feature_1 &f1, Feature_1::const_iterator it, bool isloop)
 Compute the cosine of the edge angle at a vertex in a given feature curve. More...
 
bool is_strong_ad (Vertex *v)
 Determine whether a vertex is strong (either theta-strong or relatively strong) in angle defect. More...
 
bool is_rstrong_ea (const Feature_1 &f1, Feature_1::const_iterator hprev, Feature_1::const_iterator hnext, float cos_ea, bool isloop)
 Determine whether a vertex is relatively strong in edge angle within a give feature. More...
 
bool check_false_strong_1 (Feature_1 &)
 Determine whether a curve is false strong. More...
 
void subdiv_feature_curve (const Feature_1 &f1, Feature_list_1 &new_flist, int &dropped)
 Subdivide a feature curve by splitting it at 0-features. More...
 
void merge_features_1 (Vertex *v, Feature_1 &f1, Feature_1 &f2)
 Merge two feature curves into one at vertex v. More...
 
void identify_features_0 ()
 Identify the 0-features. More...
 
- Protected Member Functions inherited from RFC_Window_derived< RFC_Pane_overlay >
 RFC_Window_derived (COM::Window *b, int c, MPI_Comm comm)
 A constructor. More...
 
virtual ~RFC_Window_derived ()
 A destructor. More...
 
void init ()
 

Private Member Functions

void init_feature_parameters ()
 Read in the control file for feature detection. More...
 
void set_feature_0 (Vertex *v) const
 
void set_on_feature (Vertex *v) const
 
bool is_feature_0 (const Vertex *v) const
 
bool is_on_feature (const Vertex *v) const
 
bool is_feature_1 (const Halfedge *h) const
 
void unset_strong_edge (Halfedge *h) const
 
void dump_strong_edges (const std::vector< std::pair< float, Halfedge * > > &, const std::vector< std::pair< float, Halfedge * > > &)
 Dump out the strong edges in Tecplot format into file <name>s1.plt. More...
 
void normalize (Vector_3 &v)
 Miscellaneous Helpers. More...
 

Private Attributes

float _cos_uf
 
float _cos_lf
 
float _rf
 
float _cos_weakend
 
float _ud
 
float _ld
 
float _rd
 
float _cos_ue
 
float _cos_le
 
float _re
 
int _min_1f_len
 
int verb
 
std::string out_pre
 
Feature_list_0 _f_list_0
 
Feature_list_1 _f_list_1
 
std::map< Vertex *, int > _f0_ranks
 
bool _long_falseness_check
 
bool _strong_ended
 
bool _snap_on_features
 

Static Private Attributes

static const float r2d =180./3.1415926535
 
static HDS_accessor< Tag_trueacc
 

Additional Inherited Members

- Protected Types inherited from RFC_Window_derived< RFC_Pane_overlay >
typedef RFC_Window_derived
< RFC_Pane_overlay
Self
 
typedef RFC_Window_base Base
 
typedef RFC_Pane_overlay Pane
 
- Protected Types inherited from RFC_Window_base
enum  { SDV_BINARY, SDV_HDF, SDV_CGNS }
 
- Static Protected Member Functions inherited from RFC_Window_base
static std::string get_sdv_fname (const char *prefix, int pane_id, const int format=SDV_BINARY)
 
static const char * get_prefix_base (const char *prefix)
 
static int get_sdv_format (const char *format)
 
- Protected Attributes inherited from RFC_Window_base
Base_base
 A reference to its base COM::Window object. More...
 
Pane_set _pane_set
 The set of panes contained in the window. More...
 
int _verbose
 
int _color
 
MAP::Pane_communicator _map_comm
 
- Static Protected Attributes inherited from RFC_Window_base
static const char * _bufwin_prefix = "buf_"
 

Detailed Description

A window is a collection of panes.

Definition at line 328 of file RFC_Window_overlay.h.

Member Typedef Documentation

Definition at line 331 of file RFC_Window_overlay.h.

Definition at line 334 of file RFC_Window_overlay.h.

Definition at line 333 of file RFC_Window_overlay.h.

Definition at line 330 of file RFC_Window_overlay.h.

Definition at line 332 of file RFC_Window_overlay.h.

Constructor & Destructor Documentation

RFC_Window_overlay ( COM::Window *  b,
int  color,
const char *  pre = NULL 
)

Definition at line 68 of file RFC_Window_overlay.C.

References RFC_Window_base::build_pc_tables(), determine_counterparts(), init_feature_parameters(), and RFC_Window_derived< RFC_Pane_overlay >::panes().

70  : Base(b, color, MPI_COMM_SELF), out_pre(pre?pre:""),
71  _long_falseness_check(true) {
73  vector< Pane*> pns; panes(pns);
74  vector< Pane*>::iterator pit=pns.begin(), piend=pns.end();
75  for ( ; pit != piend; ++pit) {
76  (*pit)->_window = this;
77  (*pit)->build_hds(); // Create the DCEL data structure
78  }
79 
80  // Preprocess pane connectivity.
81  std::cout << "Building pane connectivity..." << std::flush;
82 
84 
85  // Determine the counterpart for border edges of all panes.
87 
88  std::cout << "Done" << std::endl;
89 }
here we put it at the!beginning of the common block The point to point and collective!routines know about but MPI_TYPE_STRUCT as yet does not!MPI_STATUS_IGNORE and MPI_STATUSES_IGNORE are similar objects!Until the underlying MPI library implements the C version of these are declared as arrays of MPI_STATUS_SIZE!The types and are OPTIONAL!Their values are zero if they are not available Note that!using these reduces the portability of MPI_IO INTEGER MPI_BOTTOM INTEGER MPI_DOUBLE_PRECISION INTEGER MPI_LOGICAL INTEGER MPI_2REAL INTEGER MPI_2DOUBLE_COMPLEX INTEGER MPI_LB INTEGER MPI_WTIME_IS_GLOBAL INTEGER MPI_COMM_SELF
void build_pc_tables()
Build the pane connectivity table.
int color() const
The color of the window for overlay or for data transfer (BLUE or GREEN).
void panes(std::vector< Pane * > &ps)
Get a vector of local panes contained in the window.
RFC_Window_derived< RFC_Pane_overlay > Base
void init_feature_parameters()
Read in the control file for feature detection.

Here is the call graph for this function:

~RFC_Window_overlay ( )
virtual

Definition at line 90 of file RFC_Window_overlay.C.

90 {}

Member Function Documentation

void normalize ( Vector_3 v)
inlineprivate

Miscellaneous Helpers.

Definition at line 471 of file RFC_Window_overlay.h.

References sqrt().

Referenced by evaluate_normals().

472  { if (v != Vector_3(0,0,0)) v = v / std::sqrt( v*v); }
SURF::Vector_3< Real > Vector_3
Definition: rfc_basic.h:42
double sqrt(double d)
Definition: double.h:73

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

float _cos_le
private

Definition at line 476 of file RFC_Window_overlay.h.

float _cos_lf
private

Definition at line 474 of file RFC_Window_overlay.h.

float _cos_ue
private

Definition at line 476 of file RFC_Window_overlay.h.

float _cos_uf
private

Definition at line 474 of file RFC_Window_overlay.h.

float _cos_weakend
private

Definition at line 474 of file RFC_Window_overlay.h.

std::map<Vertex*,int> _f0_ranks
private

Definition at line 483 of file RFC_Window_overlay.h.

Feature_list_0 _f_list_0
private

Definition at line 481 of file RFC_Window_overlay.h.

Referenced by evaluate_normals(), and flist_0().

Feature_list_1 _f_list_1
private

Definition at line 482 of file RFC_Window_overlay.h.

Referenced by evaluate_normals(), and flist_1().

float _ld
private

Definition at line 475 of file RFC_Window_overlay.h.

bool _long_falseness_check
private

Definition at line 484 of file RFC_Window_overlay.h.

int _min_1f_len
private

Definition at line 477 of file RFC_Window_overlay.h.

float _rd
private

Definition at line 475 of file RFC_Window_overlay.h.

float _re
private

Definition at line 476 of file RFC_Window_overlay.h.

float _rf
private

Definition at line 474 of file RFC_Window_overlay.h.

bool _snap_on_features
private

Definition at line 487 of file RFC_Window_overlay.h.

Referenced by snap_on_features().

bool _strong_ended
private

Definition at line 485 of file RFC_Window_overlay.h.

float _ud
private

Definition at line 475 of file RFC_Window_overlay.h.

HDS_accessor< Tag_true > acc
staticprivate

Definition at line 490 of file RFC_Window_overlay.h.

Referenced by evaluate_normals(), and reduce_coordinates_to_all().

std::string out_pre
private

Definition at line 480 of file RFC_Window_overlay.h.

const float r2d =180./3.1415926535
staticprivate

Definition at line 489 of file RFC_Window_overlay.h.

int verb
private

Definition at line 478 of file RFC_Window_overlay.h.


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