Implements Discretization.
Definition at line 59 of file ConvectionDiscretization_Kmodel.h.
References ConvectionDiscretization_Kmodel< X, Diag, OffDiag >::_cx, ConvectionDiscretization_Kmodel< X, Diag, OffDiag >::_cy, ConvectionDiscretization_Kmodel< X, Diag, OffDiag >::_cz, ConvectionDiscretization_Kmodel< X, Diag, OffDiag >::_geomFields, ConvectionDiscretization_Kmodel< X, Diag, OffDiag >::_useCentralDifference, ConvectionDiscretization_Kmodel< X, Diag, OffDiag >::_varField, GeomFields::area, Mesh::getAllFaceCells(), Mesh::getCells(), CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::getCoeff01(), CRMatrix< T_Diag, T_OffDiag, X >::PairWiseAssembler::getCoeff10(), StorageSite::getCount(), CRMatrix< T_Diag, T_OffDiag, X >::getDiag(), Mesh::getFaces(), MultiFieldMatrix::getMatrix(), CRMatrix< T_Diag, T_OffDiag, X >::getPairWiseAssembler(), GeomFields::gridFlux, Field::hasArray(), GeomFields::ibType, Mesh::IBTYPE_BOUNDARY, and Mesh::IBTYPE_FLUID.
   77     CCAssembler& assembler = matrix.getPairWiseAssembler(faceCells);
 
   80     const XArray& xCell = 
dynamic_cast<const XArray&
>(xField[cVarIndex]);
 
   81     XArray& rCell = 
dynamic_cast<XArray&
>(rField[cVarIndex]);
 
   97         shared_ptr<TArray> gridFluxPtr(
new TArray(nFaces));
 
   98         TArray& gridFlux = *gridFluxPtr;
 
  101         for(
int f=0; f<nFaces; f++)
 
  103             const int c0 = faceCells(f,0);
 
  104             const int c1 = faceCells(f,1);
 
  106             const T_Scalar faceCFlux = faceArea[f][0]*
_cx+faceArea[f][1]*
_cy+faceArea[f][2]*
_cz - gridFlux[f]; 
 
  112                 varFlux = faceCFlux*xCell[c0];
 
  113                 diag[c0] -= faceCFlux;
 
  114                 assembler.getCoeff10(f) += faceCFlux;
 
  118                 varFlux = faceCFlux*xCell[c1];
 
  119                 diag[c1] += faceCFlux;
 
  120                 assembler.getCoeff01(f)-= faceCFlux;
 
  123             rCell[c0] -= varFlux;
 
  124             rCell[c1] += varFlux;
 
  130         for(
int f=0; f<nFaces; f++)
 
  132               const int c0 = faceCells(f,0);
 
  133               const int c1 = faceCells(f,1);
 
  134               const T_Scalar faceCFlux = faceArea[f][0]*
_cx+faceArea[f][1]*
_cy+faceArea[f][2]*
_cz;
 
  142               X varFlux =0.5*faceCFlux*(xCell[c0] + xCell[c1]);
 
  144               rCell[c0] -= varFlux;
 
  145               rCell[c1] += varFlux;
 
  154                   diag[c0] -= 0.5*faceCFlux;
 
  155                   assembler.getCoeff10(f) -= 0.5*faceCFlux;
 
  156                   diag[c1] += 0.5*faceCFlux;
 
  157                   assembler.getCoeff01(f) += 0.5*faceCFlux;
 
  165                       diag[c0] -= faceCFlux;
 
  166                       assembler.getCoeff10(f) += faceCFlux;
 
  170                       diag[c1] += faceCFlux;
 
  171                       assembler.getCoeff01(f)-= faceCFlux;
 
  177           for(
int f=0; f<nFaces; f++)
 
  179               const int c0 = faceCells(f,0);
 
  180               const int c1 = faceCells(f,1);
 
  181               const T_Scalar faceCFlux = faceArea[f][0]*
_cx+faceArea[f][1]*
_cy+faceArea[f][2]*
_cz;
 
  189                   varFlux = faceCFlux*xCell[c0];
 
  190                   diag[c0] -= faceCFlux;
 
  191                   assembler.getCoeff10(f) += faceCFlux;
 
  195                   varFlux = faceCFlux*xCell[c1];
 
  196                   diag[c1] += faceCFlux;
 
  197                   assembler.getCoeff01(f)-= faceCFlux;
 
  200               rCell[c0] -= varFlux;
 
  201               rCell[c1] += varFlux;
 
Matrix & getMatrix(const Index &rowIndex, const Index &colIndex)
bool hasArray(const StorageSite &s) const 
NumTypeTraits< X >::T_Scalar T_Scalar
CCMatrix::PairWiseAssembler CCAssembler
const CRConnectivity & getAllFaceCells() const 
pair< const Field *, const StorageSite * > ArrayIndex
const StorageSite & getFaces() const 
const StorageSite & getCells() const 
const GeomFields & _geomFields
CCMatrix::DiagArray DiagArray
const bool _useCentralDifference
CRMatrix< Diag, OffDiag, X > CCMatrix