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

#include <Underrelaxer.h>

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

Public Types

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

Public Member Functions

 Underrelaxer (const MeshList &meshes, Field &varField, const T_Scalar urf)
 
void discretize (const Mesh &mesh, MultiFieldMatrix &mfmatrix, MultiField &, MultiField &)
 
- Public Member Functions inherited from Discretization
 Discretization (const MeshList &meshes)
 
virtual ~Discretization ()
 
 DEFINE_TYPENAME ("Discretization")
 

Private Attributes

const Field_varField
 
const T_Scalar _urf
 

Additional Inherited Members

- Protected Attributes inherited from Discretization
const MeshList_meshes
 

Detailed Description

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

Definition at line 18 of file Underrelaxer.h.

Member Typedef Documentation

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

Definition at line 24 of file Underrelaxer.h.

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

Definition at line 25 of file Underrelaxer.h.

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

Definition at line 22 of file Underrelaxer.h.

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

Definition at line 29 of file Underrelaxer.h.

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

Definition at line 28 of file Underrelaxer.h.

Constructor & Destructor Documentation

template<class X , class Diag , class OffDiag >
Underrelaxer< X, Diag, OffDiag >::Underrelaxer ( const MeshList meshes,
Field varField,
const T_Scalar  urf 
)
inline

Definition at line 31 of file Underrelaxer.h.

33  :
34  Discretization(meshes),
35  _varField(varField),
36  _urf(urf)
37  {}
Discretization(const MeshList &meshes)
const Field & _varField
Definition: Underrelaxer.h:55
const T_Scalar _urf
Definition: Underrelaxer.h:56

Member Function Documentation

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

Implements Discretization.

Definition at line 39 of file Underrelaxer.h.

References Underrelaxer< X, Diag, OffDiag >::_urf, Underrelaxer< X, Diag, OffDiag >::_varField, Mesh::getCells(), CRMatrix< T_Diag, T_OffDiag, X >::getDiag(), MultiFieldMatrix::getMatrix(), and StorageSite::getSelfCount().

41  {
42  const StorageSite& cells = mesh.getCells();
43 
44  const MultiField::ArrayIndex cIndex(&_varField,&cells);
45  CCMatrix& matrix = dynamic_cast<CCMatrix&>(mfmatrix.getMatrix(cIndex,cIndex));
46  DiagArray& diag = matrix.getDiag();
47  const int nCells = cells.getSelfCount();
48 
49  for(int c=0; c<nCells; c++)
50  {
51  diag[c] /= _urf;
52  }
53  }
Matrix & getMatrix(const Index &rowIndex, const Index &colIndex)
int getSelfCount() const
Definition: StorageSite.h:40
CRMatrix< Diag, OffDiag, X > CCMatrix
Definition: Underrelaxer.h:24
pair< const Field *, const StorageSite * > ArrayIndex
Definition: MultiField.h:21
CCMatrix::DiagArray DiagArray
Definition: Underrelaxer.h:25
const StorageSite & getCells() const
Definition: Mesh.h:109
const Field & _varField
Definition: Underrelaxer.h:55
const T_Scalar _urf
Definition: Underrelaxer.h:56

Member Data Documentation

template<class X , class Diag , class OffDiag >
const T_Scalar Underrelaxer< X, Diag, OffDiag >::_urf
private

Definition at line 56 of file Underrelaxer.h.

Referenced by Underrelaxer< X, Diag, OffDiag >::discretize().

template<class X , class Diag , class OffDiag >
const Field& Underrelaxer< X, Diag, OffDiag >::_varField
private

Definition at line 55 of file Underrelaxer.h.

Referenced by Underrelaxer< X, Diag, OffDiag >::discretize().


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