Memosa-FVM  0.2
SourceDiscretization< X > Class Template Reference

#include <SourceDiscretization.h>

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

Public Types

typedef NumTypeTraits< X >
::T_Scalar 
T_Scalar
 
typedef Array< X > XArray
 
typedef Array< T_ScalarTArray
 

Public Member Functions

 SourceDiscretization (const MeshList &meshes, const GeomFields &geomFields, const Field &varField, const Field &sourceField)
 
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
 

Additional Inherited Members

- Protected Attributes inherited from Discretization
const MeshList_meshes
 

Detailed Description

template<class X>
class SourceDiscretization< X >

Definition at line 18 of file SourceDiscretization.h.

Member Typedef Documentation

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

Definition at line 22 of file SourceDiscretization.h.

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

Definition at line 26 of file SourceDiscretization.h.

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

Definition at line 24 of file SourceDiscretization.h.

Constructor & Destructor Documentation

template<class X >
SourceDiscretization< X >::SourceDiscretization ( const MeshList meshes,
const GeomFields geomFields,
const Field varField,
const Field sourceField 
)
inline

Definition at line 28 of file SourceDiscretization.h.

31  :
32  Discretization(meshes),
33  _geomFields(geomFields),
34  _varField(varField),
35  _sourceField(sourceField)
36  {}
Discretization(const MeshList &meshes)
const GeomFields & _geomFields

Member Function Documentation

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

Implements Discretization.

Definition at line 39 of file SourceDiscretization.h.

References SourceDiscretization< X >::_geomFields, SourceDiscretization< X >::_sourceField, SourceDiscretization< X >::_varField, Mesh::getCells(), StorageSite::getSelfCount(), and GeomFields::volume.

41  {
42  const StorageSite& cells = mesh.getCells();
43 
44  const TArray& cellVolume = dynamic_cast<const TArray&>(_geomFields.volume[cells]);
45 
46  const XArray& source = dynamic_cast<const XArray&>(_sourceField[cells]);
47 
48  const MultiField::ArrayIndex cVarIndex(&_varField, &cells);
49 
50  XArray& rCell = dynamic_cast<XArray&>(rField[cVarIndex]);
51 
52  const int nCells = cells.getSelfCount();
53 
54  for(int c=0; c<nCells; c++)
55  {
56  rCell[c] += cellVolume[c]*source[c];
57  }
58  }
int getSelfCount() const
Definition: StorageSite.h:40
Array< T_Scalar > TArray
const GeomFields & _geomFields
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 >
const GeomFields& SourceDiscretization< X >::_geomFields
private

Definition at line 62 of file SourceDiscretization.h.

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

template<class X >
const Field& SourceDiscretization< X >::_sourceField
private

Definition at line 64 of file SourceDiscretization.h.

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

template<class X >
const Field& SourceDiscretization< X >::_varField
private

Definition at line 63 of file SourceDiscretization.h.

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


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