Memosa-FVM  0.2
CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler Class Reference

#include <CRMatrix.h>

Collaboration diagram for CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler:

Public Member Functions

 PairWiseAssembler (Array< OffDiag > &coeffs, const Array< Vector< int, 2 > > &pairToCol)
 
OffDiaggetCoeff01 (const int np)
 
OffDiaggetCoeff10 (const int np)
 
void addCoeffsSymmetric (const int np, const OffDiag &c)
 
void addCoeffs (const int np, const OffDiag &c01, const OffDiag &c10)
 
void addCoeff01 (const int np, const OffDiag &c01)
 
void addCoeff10 (const int np, const OffDiag &c10)
 

Private Attributes

Array< OffDiag > & _coeffs
 
const Array< Vector< int, 2 > > & _pairToCol
 

Detailed Description

template<class T_Diag, class T_OffDiag, class X>
class CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler

Embedded class used for easy (ie. no search) access to matrix entries for the special case of face based finite volume discretizations. Works in conjunction with a pairwise access mapping provided by CRConnectivity

Definition at line 117 of file CRMatrix.h.

Constructor & Destructor Documentation

template<class T_Diag, class T_OffDiag, class X>
CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::PairWiseAssembler ( Array< OffDiag > &  coeffs,
const Array< Vector< int, 2 > > &  pairToCol 
)
inline

Definition at line 120 of file CRMatrix.h.

121  :
122  _coeffs(coeffs),
123  _pairToCol(pairToCol)
124  {}
const Array< Vector< int, 2 > > & _pairToCol
Definition: CRMatrix.h:159
Array< OffDiag > & _coeffs
Definition: CRMatrix.h:158

Member Function Documentation

template<class T_Diag, class T_OffDiag, class X>
void CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::addCoeff01 ( const int  np,
const OffDiag c01 
)
inline

Definition at line 148 of file CRMatrix.h.

References CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_coeffs, and CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_pairToCol.

149  {
150  _coeffs[_pairToCol[np][0]] += c01;
151  }
const Array< Vector< int, 2 > > & _pairToCol
Definition: CRMatrix.h:159
Array< OffDiag > & _coeffs
Definition: CRMatrix.h:158
template<class T_Diag, class T_OffDiag, class X>
void CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::addCoeff10 ( const int  np,
const OffDiag c10 
)
inline

Definition at line 153 of file CRMatrix.h.

References CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_coeffs, and CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_pairToCol.

154  {
155  _coeffs[_pairToCol[np][1]] += c10;
156  }
const Array< Vector< int, 2 > > & _pairToCol
Definition: CRMatrix.h:159
Array< OffDiag > & _coeffs
Definition: CRMatrix.h:158
template<class T_Diag, class T_OffDiag, class X>
void CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::addCoeffs ( const int  np,
const OffDiag c01,
const OffDiag c10 
)
inline

Definition at line 142 of file CRMatrix.h.

References CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_coeffs, and CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_pairToCol.

143  {
144  _coeffs[_pairToCol[np][0]] += c01;
145  _coeffs[_pairToCol[np][1]] += c10;
146  }
const Array< Vector< int, 2 > > & _pairToCol
Definition: CRMatrix.h:159
Array< OffDiag > & _coeffs
Definition: CRMatrix.h:158
template<class T_Diag, class T_OffDiag, class X>
void CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::addCoeffsSymmetric ( const int  np,
const OffDiag c 
)
inline

Definition at line 136 of file CRMatrix.h.

References CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_coeffs, and CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_pairToCol.

137  {
138  _coeffs[_pairToCol[np][0]] += c;
139  _coeffs[_pairToCol[np][1]] += c;
140  }
const Array< Vector< int, 2 > > & _pairToCol
Definition: CRMatrix.h:159
Array< OffDiag > & _coeffs
Definition: CRMatrix.h:158
template<class T_Diag, class T_OffDiag, class X>
OffDiag& CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::getCoeff01 ( const int  np)
inline

Definition at line 126 of file CRMatrix.h.

References CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_coeffs, and CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_pairToCol.

Referenced by BaseGenericPhononBCS< X, Diag, OffDiag >::applyDirichletBC(), BaseGenericKineticBCS< X, Diag, OffDiag >::applyDirichletBC(), BaseGenericBCS< Vector< T, N >, DiagonalTensor< T, N >, T >::applyDirichletBC(), BaseGenericPhononBCS< X, Diag, OffDiag >::applyExtrapolationBC(), BaseGenericKineticBCS< X, Diag, OffDiag >::applyExtrapolationBC(), BaseGenericBCS< Vector< T, N >, DiagonalTensor< T, N >, T >::applyExtrapolationBC(), BaseGenericKineticBCS< X, Diag, OffDiag >::applyInterfaceBC(), StructureBCS< X, Diag, OffDiag >::applyInterfaceBC(), PlateBCS< X, Diag, OffDiag >::applyInterfaceBC(), BaseGenericBCS< Vector< T, N >, DiagonalTensor< T, N >, T >::applyInterfaceBC(), BatteryPC_BCS< X, Diag, OffDiag >::applySingleEquationDirichletBC(), GenericBCS< X, Diag, OffDiag >::applySymmetryBC(), GenericBCS< Vector< T, N >, DiagonalTensor< T, N >, T >::applySymmetryBC(), GenericBCS< Vector< T, N >, DiagonalTensor< T, N >, DiagonalTensor< T, N > >::applySymmetryBC(), GenericBCS< Vector< T, N >, SquareTensor< T, N >, SquareTensor< T, N > >::applySymmetryBC(), DriftDiscretization< X, Diag, OffDiag >::discretize(), GenericIBDiscretization< X, Diag, OffDiag >::discretize(), PhononConvectionDiscretization< X, Diag, OffDiag >::discretize(), ConvectionDiscretization< X, Diag, OffDiag >::discretize(), GenericKineticIBDiscretization< X, Diag, OffDiag >::discretize(), ConvectionDiscretization_Kmodel< X, Diag, OffDiag >::discretize(), ElecDiffusionDiscretization< X, Diag, OffDiag >::discretize(), DiffusionDiscretization< X, Diag, OffDiag >::discretize(), BatteryPCDiffusionDiscretization< X, Diag, OffDiag >::discretize(), StructureSourceDiscretization< T, Diag, OffDiag >::discretizeFaces(), StructurePlasticDiscretization< T, Diag, OffDiag >::discretizeFaces(), and PlateSourceDiscretization< T, Diag, OffDiag >::discretizeFaces().

127  {
128  return _coeffs[_pairToCol[np][0]];
129  }
const Array< Vector< int, 2 > > & _pairToCol
Definition: CRMatrix.h:159
Array< OffDiag > & _coeffs
Definition: CRMatrix.h:158
template<class T_Diag, class T_OffDiag, class X>
OffDiag& CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::getCoeff10 ( const int  np)
inline

Definition at line 131 of file CRMatrix.h.

References CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_coeffs, and CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::_pairToCol.

Referenced by BaseGenericPhononBCS< X, Diag, OffDiag >::applyDirichletBC(), BaseGenericKineticBCS< X, Diag, OffDiag >::applyDirichletBC(), BaseGenericBCS< Vector< T, N >, DiagonalTensor< T, N >, T >::applyDirichletBC(), BaseGenericPhononBCS< X, Diag, OffDiag >::applyExtrapolationBC(), BaseGenericKineticBCS< X, Diag, OffDiag >::applyExtrapolationBC(), BaseGenericBCS< Vector< T, N >, DiagonalTensor< T, N >, T >::applyExtrapolationBC(), BaseGenericKineticBCS< X, Diag, OffDiag >::applyInterfaceBC(), StructureBCS< X, Diag, OffDiag >::applyInterfaceBC(), PlateBCS< X, Diag, OffDiag >::applyInterfaceBC(), BaseGenericBCS< Vector< T, N >, DiagonalTensor< T, N >, T >::applyInterfaceBC(), BatteryPC_BCS< X, Diag, OffDiag >::applySingleEquationDirichletBC(), StructureBCS< X, Diag, OffDiag >::applySymmetryBC(), PlateBCS< X, Diag, OffDiag >::applySymmetryBC(), GenericBCS< X, Diag, OffDiag >::applySymmetryBC(), GenericBCS< Vector< T, N >, DiagonalTensor< T, N >, T >::applySymmetryBC(), GenericBCS< Vector< T, N >, DiagonalTensor< T, N >, DiagonalTensor< T, N > >::applySymmetryBC(), GenericBCS< Vector< T, N >, SquareTensor< T, N >, SquareTensor< T, N > >::applySymmetryBC(), StructureBCS< X, Diag, OffDiag >::applyZeroDerivativeBC(), PlateBCS< X, Diag, OffDiag >::applyZeroDerivativeBC(), DriftDiscretization< X, Diag, OffDiag >::discretize(), GenericIBDiscretization< X, Diag, OffDiag >::discretize(), PhononConvectionDiscretization< X, Diag, OffDiag >::discretize(), ConvectionDiscretization< X, Diag, OffDiag >::discretize(), GenericKineticIBDiscretization< X, Diag, OffDiag >::discretize(), ConvectionDiscretization_Kmodel< X, Diag, OffDiag >::discretize(), ElecDiffusionDiscretization< X, Diag, OffDiag >::discretize(), DiffusionDiscretization< X, Diag, OffDiag >::discretize(), BatteryPCDiffusionDiscretization< X, Diag, OffDiag >::discretize(), WallDiscretization< X, Diag, OffDiag >::discretize(), StructureSourceDiscretization< T, Diag, OffDiag >::discretizeFaces(), StructurePlasticDiscretization< T, Diag, OffDiag >::discretizeFaces(), and PlateSourceDiscretization< T, Diag, OffDiag >::discretizeFaces().

132  {
133  return _coeffs[_pairToCol[np][1]];
134  }
const Array< Vector< int, 2 > > & _pairToCol
Definition: CRMatrix.h:159
Array< OffDiag > & _coeffs
Definition: CRMatrix.h:158

Member Data Documentation


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