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

#include <FluxJacobianMatrix.h>

Inheritance diagram for FluxJacobianMatrix< OffDiag, X >:
Collaboration diagram for FluxJacobianMatrix< OffDiag, X >:

Public Types

typedef Array< OffDiag > OffDiagArray
 
typedef Array< X > XArray
 

Public Member Functions

 FluxJacobianMatrix (const CRConnectivity &conn)
 
virtual ~FluxJacobianMatrix ()
 
 DEFINE_TYPENAME ("FluxJacobianMatrix<"+NumTypeTraits< OffDiag >::getTypeName()+","+NumTypeTraits< X >::getTypeName()+">")
 
virtual void multiply (IContainer &yB, const IContainer &xB) const
 
virtual void transpose ()
 
virtual void multiplyAndAdd (IContainer &yB, const IContainer &xB) const
 
void setCoeffL (const int f, const OffDiag &c)
 
void setCoeffR (const int f, const OffDiag &c)
 
const OffDiag & getCoeffL (const int f) const
 
const OffDiag & getCoeffR (const int f) const
 
const CRConnectivitygetConnectivity () const
 
virtual void initAssembly ()
 
- Public Member Functions inherited from Matrix
 Matrix ()
 
virtual ~Matrix ()
 
 DEFINE_TYPENAME ("Matrix")
 
virtual shared_ptr< ArrayBasequadProduct (const IContainer &xB) const
 
virtual void forwardGS (IContainer &xB, IContainer &bB, IContainer &residual) const
 
virtual void reverseGS (IContainer &xB, IContainer &bB, IContainer &residual) const
 
virtual void Jacobi (IContainer &xnew, const IContainer &xold, const IContainer &b) const
 
virtual void iluSolve (IContainer &xB, const IContainer &bB, const IContainer &residual) const
 
virtual void spikeSolve (IContainer &xB, const IContainer &bB, const IContainer &residual, const SpikeStorage &spike_storage) const
 
virtual void solveBoundary (IContainer &xB, IContainer &bB, IContainer &residual) const
 
virtual void computeResidual (const IContainer &xB, const IContainer &bB, IContainer &residual) const
 
virtual int createCoarsening (IContainer &coarseIndex, const int groupSize, const double weighRatioThreshold)
 
virtual void eliminateBoundaryEquations (IContainer &xB)
 
virtual void printRow (const int nr) const
 
virtual void * getDiagData () const
 
virtual void * getOffDiagData () const
 
virtual int getDiagDataSize () const
 
virtual int getOffDiagDataSize () const
 
virtual shared_ptr< MatrixcreateMergeMatrix (const LinearSystemMerger &mergeLS)
 
virtual void setFlatMatrix (Matrix &fmg) const
 
virtual shared_ptr
< CRConnectivity
createCoarseConnectivity (const IContainer &coarseIndex, const CRConnectivity &coarseToFine, const StorageSite &coarseRowSite, const StorageSite &coarseColSite)
 
virtual shared_ptr< MatrixcreateCoarseMatrix (const IContainer &coarseIndex, const CRConnectivity &coarseToFine, const CRConnectivity &coarseConnectivity)
 
virtual bool isInvertible ()
 

Private Attributes

const CRConnectivity_conn
 
Array< OffDiag > _coeffL
 
Array< OffDiag > _coeffR
 

Detailed Description

template<class OffDiag, class X>
class FluxJacobianMatrix< OffDiag, X >

Definition at line 14 of file FluxJacobianMatrix.h.

Member Typedef Documentation

template<class OffDiag , class X >
typedef Array<OffDiag> FluxJacobianMatrix< OffDiag, X >::OffDiagArray

Definition at line 17 of file FluxJacobianMatrix.h.

template<class OffDiag , class X >
typedef Array<X> FluxJacobianMatrix< OffDiag, X >::XArray

Definition at line 18 of file FluxJacobianMatrix.h.

Constructor & Destructor Documentation

template<class OffDiag , class X >
FluxJacobianMatrix< OffDiag, X >::FluxJacobianMatrix ( const CRConnectivity conn)
inline

Definition at line 20 of file FluxJacobianMatrix.h.

20  :
21  Matrix(),
22  _conn(conn),
25  {}
const CRConnectivity & _conn
Matrix()
Definition: Matrix.cpp:8
Array< OffDiag > _coeffL
Array< OffDiag > _coeffR
int getRowDim() const
template<class OffDiag , class X >
virtual FluxJacobianMatrix< OffDiag, X >::~FluxJacobianMatrix ( )
inlinevirtual

Definition at line 28 of file FluxJacobianMatrix.h.

28 {}

Member Function Documentation

template<class OffDiag , class X >
FluxJacobianMatrix< OffDiag, X >::DEFINE_TYPENAME ( "FluxJacobianMatrix<"+NumTypeTraits< OffDiag >::getTypeName()+","+NumTypeTraits< X >::getTypeName()+">"  )
template<class OffDiag , class X >
const OffDiag& FluxJacobianMatrix< OffDiag, X >::getCoeffL ( const int  f) const
inline

Definition at line 70 of file FluxJacobianMatrix.h.

References FluxJacobianMatrix< OffDiag, X >::_coeffL.

70 {return _coeffL[f];}
Array< OffDiag > _coeffL
template<class OffDiag , class X >
const OffDiag& FluxJacobianMatrix< OffDiag, X >::getCoeffR ( const int  f) const
inline

Definition at line 71 of file FluxJacobianMatrix.h.

References FluxJacobianMatrix< OffDiag, X >::_coeffR.

71 {return _coeffR[f];}
Array< OffDiag > _coeffR
template<class OffDiag , class X >
const CRConnectivity& FluxJacobianMatrix< OffDiag, X >::getConnectivity ( ) const
inlinevirtual

Reimplemented from Matrix.

Definition at line 73 of file FluxJacobianMatrix.h.

References FluxJacobianMatrix< OffDiag, X >::_conn.

73 {return _conn;}
const CRConnectivity & _conn
template<class OffDiag , class X >
virtual void FluxJacobianMatrix< OffDiag, X >::initAssembly ( )
inlinevirtual

Implements Matrix.

Definition at line 75 of file FluxJacobianMatrix.h.

References FluxJacobianMatrix< OffDiag, X >::_coeffL, FluxJacobianMatrix< OffDiag, X >::_coeffR, and Array< T >::zero().

76  {
77  _coeffL.zero();
78  _coeffR.zero();
79  }
virtual void zero()
Definition: Array.h:281
Array< OffDiag > _coeffL
Array< OffDiag > _coeffR
template<class OffDiag , class X >
virtual void FluxJacobianMatrix< OffDiag, X >::multiply ( IContainer yB,
const IContainer xB 
) const
inlinevirtual

Reimplemented from Matrix.

Definition at line 35 of file FluxJacobianMatrix.h.

References FluxJacobianMatrix< OffDiag, X >::_coeffL, FluxJacobianMatrix< OffDiag, X >::_coeffR, FluxJacobianMatrix< OffDiag, X >::_conn, and CRConnectivity::getRowDim().

36  {
37  XArray& y = dynamic_cast<XArray&>(yB);
38  const XArray& x = dynamic_cast<const XArray&>(xB);
39 
40  const int nRows = _conn.getRowDim();
41  for(int nr=0; nr<nRows; nr++)
42  {
43  const int c0=_conn(nr,0);
44  const int c1=_conn(nr,1);
45 
46  y[nr] = _coeffL[nr]*x[c0] + _coeffR[nr]*x[c1];
47  }
48  }
const CRConnectivity & _conn
Array< OffDiag > _coeffL
Array< OffDiag > _coeffR
int getRowDim() const
template<class OffDiag , class X >
virtual void FluxJacobianMatrix< OffDiag, X >::multiplyAndAdd ( IContainer yB,
const IContainer xB 
) const
inlinevirtual

Reimplemented from Matrix.

Definition at line 52 of file FluxJacobianMatrix.h.

References FluxJacobianMatrix< OffDiag, X >::_coeffL, FluxJacobianMatrix< OffDiag, X >::_coeffR, FluxJacobianMatrix< OffDiag, X >::_conn, and CRConnectivity::getRowDim().

53  {
54  XArray& y = dynamic_cast<XArray&>(yB);
55  const XArray& x = dynamic_cast<const XArray&>(xB);
56 
57  const int nRows = _conn.getRowDim();
58  for(int nr=0; nr<nRows; nr++)
59  {
60  const int c0=_conn(nr,0);
61  const int c1=_conn(nr,1);
62 
63  y[nr] += _coeffL[nr]*x[c0] + _coeffR[nr]*x[c1];
64  }
65  }
const CRConnectivity & _conn
Array< OffDiag > _coeffL
Array< OffDiag > _coeffR
int getRowDim() const
template<class OffDiag , class X >
virtual void FluxJacobianMatrix< OffDiag, X >::transpose ( )
inlinevirtual

Reimplemented from Matrix.

Definition at line 50 of file FluxJacobianMatrix.h.

50 {}

Member Data Documentation


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