Memosa-FVM  0.2
SourceDiscretizationdissi< X, Diag, OffDiag > Class Template Reference

#include <SourceDiscretizationdissi.h>

Inheritance diagram for SourceDiscretizationdissi< X, Diag, OffDiag >:
Collaboration diagram for SourceDiscretizationdissi< X, Diag, OffDiag >:

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
 
typedef CRMatrix< Diag,
OffDiag, X > 
CCMatrix
 
typedef CCMatrix::DiagArray DiagArray
 
typedef CCMatrix::PairWiseAssembler CCAssembler
 

Public Member Functions

 SourceDiscretizationdissi (const MeshList &meshes, const GeomFields &geomFields, Field &varField, const Field &velocityField, Field &muField, Field &energyField, Field &densityField, Field &sourcedField, Field &sourcecField, Field &sourcepField, const Field &gradientField)
 
KeModelOptions< T_Scalar > & getOptions ()
 
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_energyField
 
Field_densityField
 
Field_sourcedField
 
Field_sourcecField
 
Field_sourcepField
 
const Field_gradientField
 
KeModelOptions< T_Scalar_options
 

Additional Inherited Members

- Protected Attributes inherited from Discretization
const MeshList_meshes
 

Detailed Description

template<class X, class Diag, class OffDiag>
class SourceDiscretizationdissi< X, Diag, OffDiag >

Definition at line 22 of file SourceDiscretizationdissi.h.

Member Typedef Documentation

template<class X , class Diag , class OffDiag >
typedef CCMatrix::PairWiseAssembler SourceDiscretizationdissi< X, Diag, OffDiag >::CCAssembler

Definition at line 35 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
typedef CRMatrix<Diag,OffDiag,X> SourceDiscretizationdissi< X, Diag, OffDiag >::CCMatrix

Definition at line 33 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
typedef CCMatrix::DiagArray SourceDiscretizationdissi< X, Diag, OffDiag >::DiagArray

Definition at line 34 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
typedef NumTypeTraits<X>::T_Scalar SourceDiscretizationdissi< X, Diag, OffDiag >::T_Scalar

Definition at line 25 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
typedef Array<T_Scalar> SourceDiscretizationdissi< X, Diag, OffDiag >::TArray

Definition at line 31 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
typedef Vector<T_Scalar,3> SourceDiscretizationdissi< X, Diag, OffDiag >::VectorT3

Definition at line 27 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
typedef Array<VectorT3> SourceDiscretizationdissi< X, Diag, OffDiag >::VectorT3Array

Definition at line 28 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
typedef Array<Gradient<VectorT3> > SourceDiscretizationdissi< X, Diag, OffDiag >::VGradArray

Definition at line 30 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
typedef Gradient<VectorT3> SourceDiscretizationdissi< X, Diag, OffDiag >::VGradType

Definition at line 29 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
typedef Array<X> SourceDiscretizationdissi< X, Diag, OffDiag >::XArray

Definition at line 32 of file SourceDiscretizationdissi.h.

Constructor & Destructor Documentation

template<class X , class Diag , class OffDiag >
SourceDiscretizationdissi< X, Diag, OffDiag >::SourceDiscretizationdissi ( const MeshList meshes,
const GeomFields geomFields,
Field varField,
const Field velocityField,
Field muField,
Field energyField,
Field densityField,
Field sourcedField,
Field sourcecField,
Field sourcepField,
const Field gradientField 
)
inline

Definition at line 38 of file SourceDiscretizationdissi.h.

48  :
49 
50  Discretization(meshes),
51  _geomFields(geomFields),
52  _varField(varField),
53  _velocityField(velocityField),
54  _muField(muField),
55  _energyField(energyField),
56  _densityField(densityField),
57  _sourcedField(sourcedField),
58  _sourcecField(sourcecField),
59  _sourcepField(sourcepField),
60 
61  _gradientField(gradientField)
62 
63  {}
Discretization(const MeshList &meshes)

Member Function Documentation

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

Implements Discretization.

Definition at line 67 of file SourceDiscretizationdissi.h.

References SourceDiscretizationdissi< X, Diag, OffDiag >::_densityField, SourceDiscretizationdissi< X, Diag, OffDiag >::_energyField, SourceDiscretizationdissi< X, Diag, OffDiag >::_geomFields, SourceDiscretizationdissi< X, Diag, OffDiag >::_gradientField, SourceDiscretizationdissi< X, Diag, OffDiag >::_muField, SourceDiscretizationdissi< X, Diag, OffDiag >::_options, SourceDiscretizationdissi< X, Diag, OffDiag >::_sourcecField, SourceDiscretizationdissi< X, Diag, OffDiag >::_sourcedField, SourceDiscretizationdissi< X, Diag, OffDiag >::_sourcepField, SourceDiscretizationdissi< X, Diag, OffDiag >::_varField, KeModelOptions< T >::c1mu, KeModelOptions< T >::c2mu, Mesh::getCells(), StorageSite::getCount(), CRMatrix< T_Diag, T_OffDiag, X >::getDiag(), MultiFieldMatrix::getMatrix(), and GeomFields::volume.

69  {
70 
71 
72  const StorageSite& cells = mesh.getCells();
73  const MultiField::ArrayIndex cVarIndex(&_varField,&cells);
74 
75  const VGradArray& vGrad =
76  dynamic_cast<const VGradArray&>(_gradientField[cells]);
77 
78  const TArray& muCell =
79  dynamic_cast<const TArray&>(_muField[cells]);
80 
81  const TArray& eCell =
82  dynamic_cast<const TArray&>(_varField[cells]);
83 
84  const TArray& kCell =
85  dynamic_cast<const TArray&>(_energyField[cells]);
86 
87  const TArray & rhoCell =
88  dynamic_cast<const TArray&>(_densityField[cells]);
89 
90  TArray& sourceCell =
91  dynamic_cast<TArray&>(_sourcedField[cells]);
92 
93  TArray& sourcecCell =
94  dynamic_cast<TArray&>(_sourcecField[cells]);
95 
96  TArray& sourcepCell =
97  dynamic_cast<TArray&>(_sourcepField[cells]);
98 
99 
100 
101 
102  TArray& rCell =
103  dynamic_cast<XArray&>(rField[cVarIndex]);
104 
105 
106  const int nCells = cells.getCount();
107  const TArray& cellVolume = dynamic_cast<const TArray&>(_geomFields.volume[cells]);
108 
109  CCMatrix& matrix = dynamic_cast<CCMatrix&>(mfmatrix.getMatrix(cVarIndex,cVarIndex));
110 
111  DiagArray& diag = matrix.getDiag();
112  T_Scalar two(2.0);
113  T_Scalar C1mu = _options.c1mu;
114  T_Scalar C2mu = _options.c2mu;
115  for(int n=0; n<nCells; n++)
116  {
117  const VGradType& vg = vGrad[n];
118  VGradType vgSquare = vGrad[n];
119  T_Scalar sourcecoeff1 = (muCell[n]*eCell[n]*C1mu)/kCell[n];
120  T_Scalar sourcecoeff2 = (C2mu*pow(eCell[n],two)*rhoCell[n])/kCell[n];
121  T_Scalar dsc1 = (muCell[n]*C1mu)/kCell[n];
122  T_Scalar dsc2 = (C2mu*2*eCell[n]*rhoCell[n])/kCell[n];
123 
124  T_Scalar sum = 0;
125 
126  for(int i=0;i<3;i++)
127  {
128  for(int j=0;j<3;j++)
129  {
130  T_Scalar x = vg[i][j]*vg[i][j]+vg[i][j]*vg[j][i] ;
131  sum += x;
132  //vgSquare[i][j] = vg[i][j]*vg[i][j]+vg[i][j]*vg[j][i] ;
133  // sum += vgSquare[i][j];
134 
135  }
136  }
137 
138  sourceCell[n] = sum*sourcecoeff1-sourcecoeff2;
139  T_Scalar ds = sum*dsc1-dsc2;
140 
141  sourcecCell[n] = sourceCell[n]- ds*eCell[n];
142  sourcepCell[n] = ds;
143  rCell[n] +=sourcecCell[n]*cellVolume[n];
144  diag[n] -=cellVolume[n]*sourcepCell[n];
145 
146  }
147 
148 }
KeModelOptions< T_Scalar > _options
Matrix & getMatrix(const Index &rowIndex, const Index &colIndex)
NumTypeTraits< X >::T_Scalar T_Scalar
CRMatrix< Diag, OffDiag, X > CCMatrix
pair< const Field *, const StorageSite * > ArrayIndex
Definition: MultiField.h:21
const StorageSite & getCells() const
Definition: Mesh.h:109
Field volume
Definition: GeomFields.h:26
double c2mu
Definition: KeBC.h:66
double c1mu
Definition: KeBC.h:67
Array< Gradient< VectorT3 > > VGradArray
int getCount() const
Definition: StorageSite.h:39
template<class X , class Diag , class OffDiag >
KeModelOptions<T_Scalar>& SourceDiscretizationdissi< X, Diag, OffDiag >::getOptions ( )
inline

Definition at line 64 of file SourceDiscretizationdissi.h.

References SourceDiscretizationdissi< X, Diag, OffDiag >::_options.

64 {return _options;}
KeModelOptions< T_Scalar > _options

Member Data Documentation

template<class X , class Diag , class OffDiag >
Field& SourceDiscretizationdissi< X, Diag, OffDiag >::_densityField
private
template<class X , class Diag , class OffDiag >
Field& SourceDiscretizationdissi< X, Diag, OffDiag >::_energyField
private
template<class X , class Diag , class OffDiag >
const GeomFields& SourceDiscretizationdissi< X, Diag, OffDiag >::_geomFields
private
template<class X , class Diag , class OffDiag >
const Field& SourceDiscretizationdissi< X, Diag, OffDiag >::_gradientField
private
template<class X , class Diag , class OffDiag >
const MeshList SourceDiscretizationdissi< X, Diag, OffDiag >::_meshes
private

Definition at line 151 of file SourceDiscretizationdissi.h.

template<class X , class Diag , class OffDiag >
Field& SourceDiscretizationdissi< X, Diag, OffDiag >::_muField
private
template<class X , class Diag , class OffDiag >
KeModelOptions<T_Scalar> SourceDiscretizationdissi< X, Diag, OffDiag >::_options
private
template<class X , class Diag , class OffDiag >
Field& SourceDiscretizationdissi< X, Diag, OffDiag >::_sourcecField
private
template<class X , class Diag , class OffDiag >
Field& SourceDiscretizationdissi< X, Diag, OffDiag >::_sourcedField
private
template<class X , class Diag , class OffDiag >
Field& SourceDiscretizationdissi< X, Diag, OffDiag >::_sourcepField
private
template<class X , class Diag , class OffDiag >
Field& SourceDiscretizationdissi< X, Diag, OffDiag >::_varField
private
template<class X , class Diag , class OffDiag >
const Field& SourceDiscretizationdissi< X, Diag, OffDiag >::_velocityField
private

Definition at line 154 of file SourceDiscretizationdissi.h.


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