template<class X, class Diag, class OffDiag>
class LinearizeDielectric< X, Diag, OffDiag >
Definition at line 24 of file LinearizeDielectric.h.
template<class X , class Diag , class OffDiag >
Definition at line 49 of file LinearizeDielectric.h.
References LinearizeDielectric< X, Diag, OffDiag >::_dielectric_constant, LinearizeDielectric< X, Diag, OffDiag >::_dielectric_thickness, LinearizeDielectric< X, Diag, OffDiag >::_geomFields, LinearizeDielectric< X, Diag, OffDiag >::_varField, GeomFields::areaMag, GeomFields::coordinate, Mesh::getCellCells(), Mesh::getCells(), CRMatrix< T_Diag, T_OffDiag, X >::getCoeff(), CRConnectivity::getCount(), CRMatrix< T_Diag, T_OffDiag, X >::getDiag(), MultiFieldMatrix::getMatrix(), Mesh::getParentFaceGroupSite(), StorageSite::getSelfCount(), harmonicAverage(), and mag().
57 const TArray& faceAreaMag =
60 const XArray& xCell =
dynamic_cast<const XArray&
>(xField[cVarIndex]);
70 XArray& rCell =
dynamic_cast<XArray&
>(rField[cVarIndex]);
76 for (
int c=0; c<nCells; c++)
79 const int nb = cellCells.
getCount(c);
81 throw CException(
"invalid connectivity in shellMesh");
88 rCell[c0] += src*volume;
91 for (
int i=0; i<nb; i++){
93 const int c1 = cellCells(c,i);
95 OffDiag& offdiag = matrix.getCoeff(c0, c1);
97 VectorT3 ds=cellCentroid[c1]-cellCentroid[c0];
104 const X dFlux = diffCoeff*(xCell[c1]-xCell[c0]);
110 diag[c0] -= diffCoeff;
int getCount(const int i) const
Matrix & getMatrix(const Index &rowIndex, const Index &colIndex)
T harmonicAverage(const T &x0, const T &x1)
const GeomFields & _geomFields
const StorageSite & getParentFaceGroupSite() const
CCMatrix::DiagArray DiagArray
NumTypeTraits< X >::T_Scalar T_Scalar
T mag(const Vector< T, 3 > &a)
const Field & _dielectric_constant
const T_Scalar _dielectric_thickness
pair< const Field *, const StorageSite * > ArrayIndex
CRMatrix< Diag, OffDiag, X > CCMatrix
const CRConnectivity & getCellCells() const
const StorageSite & getCells() const