5 #ifndef _PHONONCOLLISIONDISCRETIZATION_H_
6 #define _PHONONCOLLISIONDISCRETIZATION_H_
18 template<
class X,
class Diag,
class OffDiag>
34 const Field& varField,
35 const Field& sourceField,
59 TArray& rCell =
dynamic_cast<TArray&
>(rField[cVarIndex]);
63 for(
int c=0; c<nCells; c++)
65 rCell[c] -= cellVolume[c]*(x[c]-source[c])/
_tau;
66 diag[c]-=cellVolume[c]/
_tau;
Matrix & getMatrix(const Index &rowIndex, const Index &colIndex)
PhononCollisionDiscretization(const MeshList &meshes, const GeomFields &geomFields, const Field &varField, const Field &sourceField, const X tau)
const GeomFields & _geomFields
Array< Diag > & getDiag()
pair< const Field *, const StorageSite * > ArrayIndex
const Field & _sourceField
CRMatrix< Diag, OffDiag, X > CCMatrix
CCMatrix::DiagArray DiagArray
const StorageSite & getCells() const
NumTypeTraits< X >::T_Scalar T_Scalar
CCMatrix::PairWiseAssembler CCAssembler
vector< Mesh * > MeshList
void discretize(const Mesh &mesh, MultiFieldMatrix &mfmatrix, MultiField &, MultiField &rField)