Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Geometric_Metrics_3.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: Geometric_Metrics_3.h,v 1.7 2008/12/06 08:45:23 mtcampbe Exp $
24 
29 #ifndef __GEOMETRIC_METRICS_3_H__
30 #define __GEOMETRIC_METRICS_3_H__
31 
32 #include "Metric.h"
33 
34 #include "Pane.h"
35 
37 
39 
43 class Geo_Metric_Base_3 : public Metric {
44 
45 public:
46 
47  // Constructor
49 
50  virtual ~Geo_Metric_Base_3(){;}
51 
53 
57  virtual void initialize(Vector_3<double> n[], int type);
58 
60 
63  virtual void initialize(Element_node_enumerator &ene);
64 
66  virtual double maxValue() const { return 1.0; }
67 
69  virtual double minValue() const { return 0.0; }
70 
71 protected:
72 
74  void compute_angles(double& min, double& max) const;
75 
77  void compute_aspects(double& R, double& r, double& l) const;
78 
79 protected:
80  std::vector<Vector_3<double> > v;
81  int _type;
82  const COM::Pane * _ene_pane;
83  int _ene_i;
84 };
85 
88 public:
89 
92 
94 
97  virtual void compute(double atts[]) const;
98 
100  double maxValue() const;
101 
103  double minValue() const;
104 };
105 
108 public:
109 
112 
114 
121  virtual void compute(double atts[]) const;
122 
124  double maxValue() const;
125 
127  double minValue() const;
128 
130  void getAspects(double& R, double& r, double& l){
131  compute_aspects(R,r,l);
132  }
133 };
134 
136 
137 #endif
138 
139 
140 
141 
142 
143 
void compute_angles(double &min, double &max) const
Compute min and max dihedral angles.
3D Aspect Ratios Metric Class
virtual void compute(double atts[]) const
Calculate the metric value on this element.
An adaptor for enumerating node IDs of an element.
double maxValue() const
Get the maximum value for this metric.
double minValue() const
Get the minimum value for this metric.
Contains the prototypes for the Pane object.
Aspect_Metric_3()
Initialize a 3D Aspect Metric.
Vector_n max(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:354
double minValue() const
Get the minimum value for this metric.
std::vector< Vector_3< double > > v
void compute_aspects(double &R, double &r, double &l) const
Compute circumradius, inradius, and shortest edge length.
Metric Base Class.
Definition: Metric.h:48
Angle_Metric_3()
Initialize a 3D Angle Metric.
double maxValue() const
Get the maximum value for this metric.
virtual void compute(double atts[]) const
Calculate the metric value on this element.
virtual double maxValue() const
The maximum value for this metric.
const NT & n
#define MOP_END_NAMESPACE
Definition: mopbasic.h:29
virtual void initialize(Vector_3< double > n[], int type)
Initialize a 3D Geometric Metric by nodal coords and element type.
Vector_n min(const Array_n_const &v1, const Array_n_const &v2)
Definition: Vector_n.h:346
void getAspects(double &R, double &r, double &l)
Get the geometric aspects.
#define MOP_BEGIN_NAMESPACE
Definition: mopbasic.h:28
3D Max and Min Angle Metric Class
The Metric Base Class, from which algebraic and geometric metric clases are derived.
const COM::Pane * _ene_pane
3D Geometric Metric Base Class
virtual double minValue() const
The minimum value for this metric.