Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Pane_boundary.h
Go to the documentation of this file.
1 /* *******************************************************************
2  * Rocstar Simulation Suite *
3  * Copyright@2015, Illinois Rocstar LLC. All rights reserved. *
4  * *
5  * Illinois Rocstar LLC *
6  * Champaign, IL *
7  * www.illinoisrocstar.com *
8  * sales@illinoisrocstar.com *
9  * *
10  * License: See LICENSE file in top level of distribution package or *
11  * http://opensource.org/licenses/NCSA *
12  *********************************************************************/
13 /* *******************************************************************
14  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, *
15  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES *
16  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND *
17  * NONINFRINGEMENT. IN NO EVENT SHALL THE CONTRIBUTORS OR *
18  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER *
19  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, *
20  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE *
21  * USE OR OTHER DEALINGS WITH THE SOFTWARE. *
22  *********************************************************************/
23 // $Id: Pane_boundary.h,v 1.17 2008/12/06 08:43:20 mtcampbe Exp $
24 
28 /* Author: Xiangmin Jiao
29  * Date: Aug. 26, 2002
30  */
31 
32 #ifndef _PANE_BOUNDARIES_H_
33 #define _PANE_BOUNDARIES_H_
34 
35 #include "roccom_devel.h"
36 #include "mapbasic.h"
37 #include "Simple_manifold_2.h"
38 #include <vector>
39 
41 
43 public:
44  typedef int Node_ID;
45  typedef int Element_ID;
46  typedef std::pair<Node_ID, Node_ID> Node_pair;
47 
49  Pane_boundary( const COM::Pane *p) : _pane(*p),_pm(NULL) {}
50 
53  : _pane(*pm->pane()),_pm(pm) {}
54 
56  void determine_border_nodes( std::vector<bool> &is_border,
57  std::vector<bool> &is_isolated,
58  std::vector<Facet_ID > *b=NULL,
59  int ghost_level=0) throw(int);
60 
62  double min_squared_edge_len( const std::vector<Facet_ID > &) throw(int);
63 
67  static void determine_borders( const COM::Attribute *mesh,
68  COM::Attribute *isborder,
69  int ghost_level=0);
70 
71 protected:
78  void determine_border_nodes_3( std::vector<bool> &is_border,
79  std::vector<Facet_ID > *b,
80  int ghost_level) throw(int);
81 
83  void determine_isolated_nodes( std::vector<bool> &is_isolated,
84  int ghost_level) throw(int);
85 
86 private:
87  const COM::Pane &_pane;
88  const Simple_manifold_2 *const _pm; // Manifold for determing border nodes
89 };
90 
92 
93 #endif /* _PANE_BOUNDARIES_H_ */
94 
95 
96 
97 
98 
99 
const COM::Pane & _pane
Definition: Pane_boundary.h:87
#define MAP_END_NAMESPACE
Definition: mapbasic.h:29
A Pane object contains a mesh, pane attribute, and field variables.
Definition: Pane.h:43
An Attribute object is a data member of a window.
Definition: Attribute.h:51
void determine_border_nodes(std::vector< bool > &is_border, std::vector< bool > &is_isolated, std::vector< Facet_ID > *b=NULL, int ghost_level=0)
Determine the border nodes (excluding isolated nodes)
Definition: Pane_boundary.C:37
std::pair< Node_ID, Node_ID > Node_pair
Definition: Pane_boundary.h:46
Pane_boundary(const COM::Pane *p)
Constructors.
Definition: Pane_boundary.h:49
Pane_boundary(const Simple_manifold_2 *pm)
Constructors.
Definition: Pane_boundary.h:52
void determine_isolated_nodes(std::vector< bool > &is_isolated, int ghost_level)
Determine the isolated nodes (i.e. not belonging to any element)
Provides a data structure accessing nodes, elements, and edges in a pane, in a manner similar to the ...
void determine_border_nodes_3(std::vector< bool > &is_border, std::vector< Facet_ID > *b, int ghost_level)
Determine the border nodes for a 3-D mesh.
static void determine_borders(const COM::Attribute *mesh, COM::Attribute *isborder, int ghost_level=0)
Determine the nodes at pane boundaries of a given mesh.
const Simple_manifold_2 *const _pm
Definition: Pane_boundary.h:88
The ID of a facet (edge in 2D and face in 3D) encodes an element ID and the local facet&#39;s ID internal...
#define MAP_BEGIN_NAMESPACE
Definition: mapbasic.h:28
double min_squared_edge_len(const std::vector< Facet_ID > &)
Compute the minimum squared edge length of given edges.