Memosa-FVM  0.2
Gradient< T > Class Template Reference

#include <Gradient.h>

Collaboration diagram for Gradient< T >:

Public Types

typedef Gradient< T > This_T
 
typedef NumTypeTraits< T >
::T_Scalar 
T_Scalar
 
typedef NumTypeTraits< T >
::T_BuiltIn 
T_BuiltIn
 
typedef Vector< T_Scalar, 3 > Coord
 

Public Member Functions

T & operator[] (int n)
 
const T & operator[] (int n) const
 
Gradientoperator= (const T_Scalar &o)
 
Gradientoperator= (const Gradient &o)
 
void accumulate (const Coord &wt, const T &v)
 
Gradientoperator+= (const Gradient &o)
 
Gradientoperator-= (const Gradient &o)
 
Gradient operator- () const
 
Gradientoperator*= (const T_Scalar &s)
 
Gradientoperator*= (const Gradient &o)
 
operator*= (const Coord &v)
 
Gradientoperator/= (const T_Scalar &s)
 
Gradientoperator/= (const Gradient &o)
 
void zero ()
 
void print (ostream &os) const
 
mag2 () const
 
bool operator< (const double tolerance) const
 

Static Public Member Functions

static string getTypeName ()
 
static int getDimension ()
 
static void getShape (int *shp)
 
static int getDataSize ()
 
static void accumulateOneNorm (Gradient &sum, const Gradient &v)
 
static void accumulateDotProduct (Gradient &sum, const Gradient &v0, const Gradient &v1)
 
static void reduceSum (T_Scalar &sum, const This_T &x)
 
static void safeDivide (Gradient &x, const Gradient &y)
 
static void normalize (Gradient &x, const Gradient &y)
 
static void setMax (Gradient &x, const Gradient &y)
 
static Gradient getZero ()
 
static void write (FILE *fp, const Gradient &x)
 

Private Attributes

_data [3]
 

Detailed Description

template<class T>
class Gradient< T >

Definition at line 12 of file Gradient.h.

Member Typedef Documentation

template<class T>
typedef Vector<T_Scalar,3> Gradient< T >::Coord

Definition at line 19 of file Gradient.h.

template<class T>
typedef NumTypeTraits<T>::T_BuiltIn Gradient< T >::T_BuiltIn

Definition at line 17 of file Gradient.h.

template<class T>
typedef NumTypeTraits<T>::T_Scalar Gradient< T >::T_Scalar

Definition at line 16 of file Gradient.h.

template<class T>
typedef Gradient<T> Gradient< T >::This_T

Definition at line 15 of file Gradient.h.

Member Function Documentation

template<class T>
void Gradient< T >::accumulate ( const Coord wt,
const T &  v 
)
inline

Definition at line 57 of file Gradient.h.

References Gradient< T >::_data.

Referenced by GradientMatrix< T_Scalar >::computeFaceGradient(), and GradientMatrix< T_Scalar >::computeGradient().

58  {
59  for(int i=0;i<3;i++)
60  _data[i] += wt[i]*v;
61  }
T _data[3]
Definition: Gradient.h:199
template<class T>
static void Gradient< T >::accumulateDotProduct ( Gradient< T > &  sum,
const Gradient< T > &  v0,
const Gradient< T > &  v1 
)
inlinestatic

Definition at line 133 of file Gradient.h.

References Gradient< T >::_data.

134  {
135  for(int i=0; i<3; i++)
137  }
T _data[3]
Definition: Gradient.h:199
template<class T>
static void Gradient< T >::accumulateOneNorm ( Gradient< T > &  sum,
const Gradient< T > &  v 
)
inlinestatic

Definition at line 127 of file Gradient.h.

References Gradient< T >::_data.

128  {
129  for(int i=0; i<3; i++)
131  }
T _data[3]
Definition: Gradient.h:199
template<class T>
static int Gradient< T >::getDataSize ( )
inlinestatic

Definition at line 34 of file Gradient.h.

35  {
37  }
template<class T>
static int Gradient< T >::getDimension ( )
inlinestatic

Definition at line 26 of file Gradient.h.

template<class T>
static void Gradient< T >::getShape ( int *  shp)
inlinestatic

Definition at line 28 of file Gradient.h.

29  {
30  *shp = 3;
32  }
template<class T>
static string Gradient< T >::getTypeName ( )
inlinestatic

Definition at line 21 of file Gradient.h.

22  {
23  return "Gradient<" + NumTypeTraits<T>::getTypeName() + ">";
24  }
template<class T>
static Gradient Gradient< T >::getZero ( )
inlinestatic

Definition at line 162 of file Gradient.h.

References Gradient< T >::zero().

163  {
164  Gradient z;
165  z.zero();
166  return z;
167  }
void zero()
Definition: Gradient.h:122
template<class T>
T Gradient< T >::mag2 ( ) const
inline

Definition at line 186 of file Gradient.h.

References Gradient< T >::_data.

Referenced by Gradient< T >::operator<().

187  {
189  for(int i=0; i<3; i++)
190  r+=_data[i]*_data[i];
191  return r;
192  }
T _data[3]
Definition: Gradient.h:199
template<class T>
static void Gradient< T >::normalize ( Gradient< T > &  x,
const Gradient< T > &  y 
)
inlinestatic

Definition at line 151 of file Gradient.h.

References Gradient< T >::_data.

152  {
153  for(int i=0; i<3; i++)
155  }
T _data[3]
Definition: Gradient.h:199
template<class T>
Gradient& Gradient< T >::operator*= ( const T_Scalar s)
inline

Definition at line 85 of file Gradient.h.

References Gradient< T >::_data.

86  {
87  for(int i=0;i<3;i++)
88  _data[i] *= s;
89  return *this;
90  }
T _data[3]
Definition: Gradient.h:199
template<class T>
Gradient& Gradient< T >::operator*= ( const Gradient< T > &  o)
inline

Definition at line 92 of file Gradient.h.

References Gradient< T >::_data.

93  {
94  for(int i=0;i<3;i++)
95  _data[i] *= o._data[i];
96  return *this;
97  }
T _data[3]
Definition: Gradient.h:199
template<class T>
T Gradient< T >::operator*= ( const Coord v)
inline

Definition at line 99 of file Gradient.h.

References Gradient< T >::_data.

100  {
102  for(int i=0;i<3;i++)
103  r += _data[i]*v[i];
104  return r;
105  }
T _data[3]
Definition: Gradient.h:199
template<class T>
Gradient& Gradient< T >::operator+= ( const Gradient< T > &  o)
inline

Definition at line 63 of file Gradient.h.

References Gradient< T >::_data.

64  {
65  for(int i=0;i<3;i++)
66  _data[i] += o._data[i];
67  return *this;
68  }
T _data[3]
Definition: Gradient.h:199
template<class T>
Gradient Gradient< T >::operator- ( ) const
inline

Definition at line 77 of file Gradient.h.

References Gradient< T >::_data.

78  {
79  Gradient r;
80  for(int i=0;i<3;i++)
81  r._data[i] = -_data[i];
82  return r;
83  }
T _data[3]
Definition: Gradient.h:199
template<class T>
Gradient& Gradient< T >::operator-= ( const Gradient< T > &  o)
inline

Definition at line 70 of file Gradient.h.

References Gradient< T >::_data.

71  {
72  for(int i=0;i<3;i++)
73  _data[i] -= o._data[i];
74  return *this;
75  }
T _data[3]
Definition: Gradient.h:199
template<class T>
Gradient& Gradient< T >::operator/= ( const T_Scalar s)
inline

Definition at line 107 of file Gradient.h.

References Gradient< T >::_data.

108  {
109  for(int i=0;i<3;i++)
110  _data[i] /= s;
111  return *this;
112  }
T _data[3]
Definition: Gradient.h:199
template<class T>
Gradient& Gradient< T >::operator/= ( const Gradient< T > &  o)
inline

Definition at line 115 of file Gradient.h.

References Gradient< T >::_data.

116  {
117  for(int i=0;i<3;i++)
118  _data[i] /= o._data[i];
119  return *this;
120  }
T _data[3]
Definition: Gradient.h:199
template<class T>
bool Gradient< T >::operator< ( const double  tolerance) const
inline

Definition at line 194 of file Gradient.h.

References Gradient< T >::mag2().

195  {
196  return mag2() < tolerance*tolerance;
197  }
T mag2() const
Definition: Gradient.h:186
template<class T>
Gradient& Gradient< T >::operator= ( const T_Scalar o)
inline

Definition at line 43 of file Gradient.h.

References Gradient< T >::_data.

44  {
45  for(int i=0;i<3;i++)
46  _data[i] = o;
47  return *this;
48  }
T _data[3]
Definition: Gradient.h:199
template<class T>
Gradient& Gradient< T >::operator= ( const Gradient< T > &  o)
inline

Definition at line 50 of file Gradient.h.

References Gradient< T >::_data.

51  {
52  for(int i=0;i<3;i++)
53  _data[i] = o._data[i];
54  return *this;
55  }
T _data[3]
Definition: Gradient.h:199
template<class T>
T& Gradient< T >::operator[] ( int  n)
inline

Definition at line 39 of file Gradient.h.

References Gradient< T >::_data.

39 {return _data[n];}
T _data[3]
Definition: Gradient.h:199
template<class T>
const T& Gradient< T >::operator[] ( int  n) const
inline

Definition at line 40 of file Gradient.h.

References Gradient< T >::_data.

40 {return _data[n];}
T _data[3]
Definition: Gradient.h:199
template<class T>
void Gradient< T >::print ( ostream &  os) const
inline

Definition at line 169 of file Gradient.h.

References Gradient< T >::_data.

Referenced by operator<<().

170  {
171  os << "[ " ;
172  for(int i=0;i<3;i++)
173  os << _data[i] << " " ;
174  os << "]";
175  }
T _data[3]
Definition: Gradient.h:199
template<class T>
static void Gradient< T >::reduceSum ( T_Scalar sum,
const This_T x 
)
inlinestatic

Definition at line 139 of file Gradient.h.

140  {
141  for(int i=0; i<3; i++)
142  NumTypeTraits<T>::reduceSum(sum,x[i]);
143  }
template<class T>
static void Gradient< T >::safeDivide ( Gradient< T > &  x,
const Gradient< T > &  y 
)
inlinestatic

Definition at line 145 of file Gradient.h.

References Gradient< T >::_data.

146  {
147  for(int i=0; i<3; i++)
149  }
T _data[3]
Definition: Gradient.h:199
template<class T>
static void Gradient< T >::setMax ( Gradient< T > &  x,
const Gradient< T > &  y 
)
inlinestatic

Definition at line 157 of file Gradient.h.

References Gradient< T >::_data.

158  {
159  for(int i=0; i<3; i++)
161  }
T _data[3]
Definition: Gradient.h:199
template<class T>
static void Gradient< T >::write ( FILE *  fp,
const Gradient< T > &  x 
)
inlinestatic

Definition at line 177 of file Gradient.h.

References Gradient< T >::_data.

178  {
179  for(int i=0; i<3; i++)
180  {
182  fprintf(fp, " ");
183  }
184  }
T _data[3]
Definition: Gradient.h:199
template<class T>
void Gradient< T >::zero ( )
inline

Definition at line 122 of file Gradient.h.

Referenced by GradientMatrix< T_Scalar >::computeFaceGradient(), GradientMatrix< T_Scalar >::computeGradient(), and Gradient< T >::getZero().

123  {
124  for(int i=0;i<3;i++) _data[i] = NumTypeTraits<T>::getZero();
125  }

Member Data Documentation


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