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

#include <CollisionTermDiscretization.h>

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

Public Types

typedef NumTypeTraits< X >
::T_Scalar 
T_Scalar
 
typedef CRMatrix< Diag,
OffDiag, X > 
CCMatrix
 
typedef CCMatrix::DiagArray DiagArray
 
typedef CCMatrix::PairWiseAssembler CCAssembler
 
typedef Array< X > XArray
 
typedef Array< T_ScalarTArray
 

Public Member Functions

 CollisionTermDiscretization (const MeshList &meshes, const GeomFields &geomFields, const Field &varField, const Field &sourceField, const Field &collisionFrequency)
 
void discretize (const Mesh &mesh, MultiFieldMatrix &mfmatrix, MultiField &, MultiField &rField)
 
- Public Member Functions inherited from Discretization
 Discretization (const MeshList &meshes)
 
virtual ~Discretization ()
 
 DEFINE_TYPENAME ("Discretization")
 

Private Attributes

const GeomFields_geomFields
 
const Field_varField
 
const Field_sourceField
 
const Field_collisionFrequency
 

Additional Inherited Members

- Protected Attributes inherited from Discretization
const MeshList_meshes
 

Detailed Description

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

Definition at line 19 of file CollisionTermDiscretization.h.

Member Typedef Documentation

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

Definition at line 27 of file CollisionTermDiscretization.h.

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

Definition at line 25 of file CollisionTermDiscretization.h.

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

Definition at line 26 of file CollisionTermDiscretization.h.

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

Definition at line 23 of file CollisionTermDiscretization.h.

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

Definition at line 30 of file CollisionTermDiscretization.h.

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

Definition at line 29 of file CollisionTermDiscretization.h.

Constructor & Destructor Documentation

template<class X , class Diag , class OffDiag >
CollisionTermDiscretization< X, Diag, OffDiag >::CollisionTermDiscretization ( const MeshList meshes,
const GeomFields geomFields,
const Field varField,
const Field sourceField,
const Field collisionFrequency 
)
inline

Definition at line 32 of file CollisionTermDiscretization.h.

36  :
37  Discretization(meshes),
38  _geomFields(geomFields),
39  _varField(varField),
40  _sourceField(sourceField),
41  _collisionFrequency(collisionFrequency)
42  {}
Discretization(const MeshList &meshes)

Member Function Documentation

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

Implements Discretization.

Definition at line 45 of file CollisionTermDiscretization.h.

References CollisionTermDiscretization< X, Diag, OffDiag >::_collisionFrequency, CollisionTermDiscretization< X, Diag, OffDiag >::_geomFields, CollisionTermDiscretization< X, Diag, OffDiag >::_sourceField, CollisionTermDiscretization< X, Diag, OffDiag >::_varField, Mesh::getCells(), CRMatrix< T_Diag, T_OffDiag, X >::getDiag(), MultiFieldMatrix::getMatrix(), StorageSite::getSelfCount(), and GeomFields::volume.

47  {
48  const StorageSite& cells = mesh.getCells();
49 
50  const TArray& cellVolume = dynamic_cast<const TArray&>(_geomFields.volume[cells]);
51 
52  const XArray& source = dynamic_cast<const XArray&>(_sourceField[cells]);
53 
54  const MultiField::ArrayIndex cVarIndex(&_varField, &cells);
55  CCMatrix& matrix = dynamic_cast<CCMatrix&>(mfmatrix.getMatrix(cVarIndex,cVarIndex));
56  DiagArray& diag = matrix.getDiag();
57 
58  const XArray& x = dynamic_cast<const XArray&>(_varField[cells]);
59  TArray& rCell = dynamic_cast<TArray&>(rField[cVarIndex]);
60 
61  const XArray& nue = dynamic_cast<const XArray&>(_collisionFrequency[cells]);
62  const int nCells = cells.getSelfCount(); //getSelfCount()
63 
64  //cout << nue[0] << " " << nue[100] << " " << nue[50] << endl ;
65  for(int c=0; c<nCells; c++)
66  {
67  rCell[c] -= cellVolume[c]*nue[c]*(x[c]-source[c]);
68  diag[c]-=cellVolume[c]*nue[c];
69  }
70 
71  }
CRMatrix< Diag, OffDiag, X > CCMatrix
Matrix & getMatrix(const Index &rowIndex, const Index &colIndex)
int getSelfCount() const
Definition: StorageSite.h:40
pair< const Field *, const StorageSite * > ArrayIndex
Definition: MultiField.h:21
const StorageSite & getCells() const
Definition: Mesh.h:109
Field volume
Definition: GeomFields.h:26

Member Data Documentation

template<class X , class Diag , class OffDiag >
const Field& CollisionTermDiscretization< X, Diag, OffDiag >::_collisionFrequency
private
template<class X , class Diag , class OffDiag >
const GeomFields& CollisionTermDiscretization< X, Diag, OffDiag >::_geomFields
private
template<class X , class Diag , class OffDiag >
const Field& CollisionTermDiscretization< X, Diag, OffDiag >::_sourceField
private
template<class X , class Diag , class OffDiag >
const Field& CollisionTermDiscretization< X, Diag, OffDiag >::_varField
private

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