Memosa-FVM  0.2
SourceDiscretizationene< X > Class Template Reference

#include <SourceDiscretizationene.h>

Inheritance diagram for SourceDiscretizationene< X >:
Collaboration diagram for SourceDiscretizationene< X >:

Public Types

typedef NumTypeTraits< X >
::T_Scalar 
T_Scalar
 
typedef Vector< T_Scalar, 3 > VectorT3
 
typedef Array< VectorT3VectorT3Array
 
typedef Gradient< VectorT3VGradType
 
typedef Array< Gradient
< VectorT3 > > 
VGradArray
 
typedef Array< T_ScalarTArray
 
typedef Array< X > XArray
 

Public Member Functions

 SourceDiscretizationene (const MeshList &meshes, const GeomFields &geomFields, Field &varField, const Field &velocityField, Field &muField, Field &dissipationField, Field &densityField, Field &sourcekField, const Field &gradientField)
 
void discretize (const Mesh &mesh, MultiFieldMatrix &mfmatrix, MultiField &xField, MultiField &rField)
 
- Public Member Functions inherited from Discretization
 Discretization (const MeshList &meshes)
 
virtual ~Discretization ()
 
 DEFINE_TYPENAME ("Discretization")
 

Private Attributes

const MeshList _meshes
 
const GeomFields_geomFields
 
Field_varField
 
const Field_velocityField
 
Field_muField
 
Field_dissipationField
 
Field_densityField
 
Field_sourcekField
 
const Field_gradientField
 

Additional Inherited Members

- Protected Attributes inherited from Discretization
const MeshList_meshes
 

Detailed Description

template<class X>
class SourceDiscretizationene< X >

Definition at line 22 of file SourceDiscretizationene.h.

Member Typedef Documentation

template<class X >
typedef NumTypeTraits<X>::T_Scalar SourceDiscretizationene< X >::T_Scalar

Definition at line 25 of file SourceDiscretizationene.h.

template<class X >
typedef Array<T_Scalar> SourceDiscretizationene< X >::TArray

Definition at line 31 of file SourceDiscretizationene.h.

template<class X >
typedef Vector<T_Scalar,3> SourceDiscretizationene< X >::VectorT3

Definition at line 27 of file SourceDiscretizationene.h.

template<class X >
typedef Array<VectorT3> SourceDiscretizationene< X >::VectorT3Array

Definition at line 28 of file SourceDiscretizationene.h.

template<class X >
typedef Array<Gradient<VectorT3> > SourceDiscretizationene< X >::VGradArray

Definition at line 30 of file SourceDiscretizationene.h.

template<class X >
typedef Gradient<VectorT3> SourceDiscretizationene< X >::VGradType

Definition at line 29 of file SourceDiscretizationene.h.

template<class X >
typedef Array<X> SourceDiscretizationene< X >::XArray

Definition at line 32 of file SourceDiscretizationene.h.

Constructor & Destructor Documentation

template<class X >
SourceDiscretizationene< X >::SourceDiscretizationene ( const MeshList meshes,
const GeomFields geomFields,
Field varField,
const Field velocityField,
Field muField,
Field dissipationField,
Field densityField,
Field sourcekField,
const Field gradientField 
)
inline

Definition at line 35 of file SourceDiscretizationene.h.

43  :
44 
45  Discretization(meshes),
46  _geomFields(geomFields),
47  _varField(varField),
48  _velocityField(velocityField),
49  _muField(muField),
50  _dissipationField(dissipationField),
51  _densityField(densityField),
52  _sourcekField(sourcekField),
53  _gradientField(gradientField)
54 
55  {}
Discretization(const MeshList &meshes)

Member Function Documentation

template<class X >
void SourceDiscretizationene< X >::discretize ( const Mesh mesh,
MultiFieldMatrix mfmatrix,
MultiField xField,
MultiField rField 
)
inlinevirtual

Implements Discretization.

Definition at line 56 of file SourceDiscretizationene.h.

References SourceDiscretizationene< X >::_densityField, SourceDiscretizationene< X >::_dissipationField, SourceDiscretizationene< X >::_geomFields, SourceDiscretizationene< X >::_gradientField, SourceDiscretizationene< X >::_muField, SourceDiscretizationene< X >::_sourcekField, SourceDiscretizationene< X >::_varField, Mesh::getCells(), StorageSite::getCount(), and GeomFields::volume.

58  {
59 
60 
61  const StorageSite& cells = mesh.getCells();
62  const MultiField::ArrayIndex cVarIndex(&_varField,&cells);
63  const TArray& cellVolume = dynamic_cast<const TArray&>(_geomFields.volume[cells]);
64 
65  const VGradArray& vGrad =
66  dynamic_cast<const VGradArray&>(_gradientField[cells]);
67 
68  const TArray& muCell =
69  dynamic_cast<TArray&>(_muField[cells]);
70 
71  const TArray& eCell =
72  dynamic_cast<TArray&>(_dissipationField[cells]);
73 
74  const TArray & rhoCell =
75  dynamic_cast<const TArray&>(_densityField[cells]);
76 
77  TArray & sourceCell =
78  dynamic_cast<TArray&>(_sourcekField[cells]);
79 
80 
81  TArray& rCell =
82  dynamic_cast<XArray&>(rField[cVarIndex]);
83 
84 
85  const int nCells = cells.getCount();
86 
87 
88  for(int n=0; n<nCells; n++)
89  {
90  const VGradType& vg = vGrad[n];
91  VGradType vgSquare = vGrad[n];
92  T_Scalar rhoe = eCell[n]*rhoCell[n];
93  T_Scalar sum = 0;
94 
95  for(int i=0;i<3;i++)
96  {
97  for(int j=0;j<3;j++)
98 
99  {
100 
101  T_Scalar x = vg[i][j]*vg[i][j]+vg[i][j]*vg[j][i] ;
102  sum += x;
103 
104  //vgSquare[i][j] = vg[i][j]*vg[i][j]+vg[i][j]*vg[j][i] ;
105  //sum += vgSquare[i][j];
106  }
107  }
108 /*
109  cout << "sum" << sum << endl;
110  cout << "muCell" << muCell[n] << endl;
111  cout << "rhoe" << rhoCell[n] << endl;
112  cout << "epsilon" << eCell[n] << endl;
113  */
114 
115  sourceCell[n] = sum*muCell[n]-rhoe;
116  //cout << "rsource" << sourceCell[n]*cellVolume[n] << endl;
117  rCell[n] +=sourceCell[n]*cellVolume[n];
118  }
119 }
NumTypeTraits< X >::T_Scalar T_Scalar
Gradient< VectorT3 > VGradType
Array< Gradient< VectorT3 > > VGradArray
pair< const Field *, const StorageSite * > ArrayIndex
Definition: MultiField.h:21
const StorageSite & getCells() const
Definition: Mesh.h:109
Field volume
Definition: GeomFields.h:26
int getCount() const
Definition: StorageSite.h:39

Member Data Documentation

template<class X >
Field& SourceDiscretizationene< X >::_densityField
private

Definition at line 127 of file SourceDiscretizationene.h.

Referenced by SourceDiscretizationene< X >::discretize().

template<class X >
Field& SourceDiscretizationene< X >::_dissipationField
private

Definition at line 126 of file SourceDiscretizationene.h.

Referenced by SourceDiscretizationene< X >::discretize().

template<class X >
const GeomFields& SourceDiscretizationene< X >::_geomFields
private

Definition at line 122 of file SourceDiscretizationene.h.

Referenced by SourceDiscretizationene< X >::discretize().

template<class X >
const Field& SourceDiscretizationene< X >::_gradientField
private

Definition at line 129 of file SourceDiscretizationene.h.

Referenced by SourceDiscretizationene< X >::discretize().

template<class X >
const MeshList SourceDiscretizationene< X >::_meshes
private

Definition at line 121 of file SourceDiscretizationene.h.

template<class X >
Field& SourceDiscretizationene< X >::_muField
private

Definition at line 125 of file SourceDiscretizationene.h.

Referenced by SourceDiscretizationene< X >::discretize().

template<class X >
Field& SourceDiscretizationene< X >::_sourcekField
private

Definition at line 128 of file SourceDiscretizationene.h.

Referenced by SourceDiscretizationene< X >::discretize().

template<class X >
Field& SourceDiscretizationene< X >::_varField
private

Definition at line 123 of file SourceDiscretizationene.h.

Referenced by SourceDiscretizationene< X >::discretize().

template<class X >
const Field& SourceDiscretizationene< X >::_velocityField
private

Definition at line 124 of file SourceDiscretizationene.h.


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