Rocstar  1.0
Rocstar multiphysics simulation application
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Algebraic_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: Algebraic_Metrics_3.h,v 1.5 2008/12/06 08:45:23 mtcampbe Exp $
24 
29 #ifndef __ALGEBRAIC_METRICS_3_H__
30 #define __ALGEBRAIC_METRICS_3_H__
31 
32 #include "Metric.h"
33 
35 
37 
42 class Alg_Metric_Base_3 : public Metric {
43  friend std::ostream & operator<<(std::ostream &,
44  const Alg_Metric_Base_3 &);
45 public:
46 
49 
51 
55  virtual ~Alg_Metric_Base_3() {}
56 
58 
62  virtual void initialize(Vector_3<double> n[], int type);
63 
64  virtual void initialize(Element_node_enumerator & ene);
65 
67  virtual double maxValue() const { return 1.0; }
68 
70  virtual double minValue() const { return 0.0; }
71 
72 protected:
73 
75 
78  double compute_size(double ref_voume=1.) const;
79 
81  double compute_shape() const;
82 
84  double compute_skew() const;
85 
86 protected:
87  double alpha[8];
88  J_Matrix A[8];
89  Matrix L[8];
90  int type_;
91 };
92 
95 public:
96 
99 
101 
104  virtual void compute(double atts[]) const;
105 };
106 
109 public:
110 
112 
115  explicit Size_Metric_3(double r_vol) { ref_vol=r_vol; }
116 
118 
121  virtual void compute(double atts[]) const;
122 
123 private:
124  double ref_vol;
125 };
126 
129 public:
130 
132 
135  explicit Size_Shape_Metric_3(double r_vol) { ref_vol=r_vol; }
136 
138 
141  virtual void compute(double atts[]) const;
142 
143 private:
144  double ref_vol;
145 };
146 
149 public:
150 
153 
155 
158  virtual void compute(double atts[]) const;
159 };
160 
163 public:
164 
166 
169  explicit Size_Skew_Metric_3(double r_vol) { ref_vol=r_vol; }
170 
172 
175  virtual void compute(double atts[]) const;
176 
177 private:
178  double ref_vol;
179 };
180 
182 
183 #endif
184 
185 
186 
187 
188 
189 
double compute_size(double ref_voume=1.) const
Compute the size metric.
virtual void compute(double atts[]) const
Calculate the metric value on this element.
An adaptor for enumerating node IDs of an element.
friend std::ostream & operator<<(std::ostream &, const Alg_Metric_Base_3 &)
virtual void compute(double atts[]) const
Calculate the metric value on this element.
virtual void compute(double atts[]) const
Calculate the metric value on this element.
virtual void compute(double atts[]) const
Calculate the metric value on this element.
Size_Skew_Metric_3(double r_vol)
Construct a 3D Size-Skew metric.
3D Size-Shape Metric Class
Metric Base Class.
Definition: Metric.h:48
double compute_skew() const
Compute the skew metric.
Size_Metric_3(double r_vol)
Construct a 3D Size metric.
3D Shape Metric Class
Shape_Metric_3()
Construct a 3D Shape metric.
3D Algebraic Metric Base Class
virtual void initialize(Vector_3< double > n[], int type)
Initialize a 3D Algebraic Metric.
3D Size-Skew Metric Class
3D Size Metric Class
Alg_Metric_Base_3()
Constructor.
const NT & n
#define MOP_END_NAMESPACE
Definition: mopbasic.h:29
virtual ~Alg_Metric_Base_3()
Virtual Destructor.
3D Skew Metric Class
virtual void compute(double atts[]) const
Calculate the metric value on this element.
Skew_Metric_3()
Construc a 3D Skew Metric.
#define MOP_BEGIN_NAMESPACE
Definition: mopbasic.h:28
double compute_shape() const
Compute the shape metric.
Size_Shape_Metric_3(double r_vol)
Construct a 3D Size-Shape metric.
The Metric Base Class, from which algebraic and geometric metric clases are derived.
virtual double maxValue() const
The maximum value for this metric.
virtual double minValue() const
The minimum value for this metric.